Voyant et sons
S’applique à : Robot réel
Le robot se fait comprendre avec un voyant de couleur et deux buzzers. Cette page explique comment tout cela fonctionne, ce que veut dire chaque couleur et chaque son, et quoi faire quand on les voit ou les entend.
Rien à installer, rien à lancer : tout fonctionne dès la mise sous tension.
Deux sources, un seul voyant
Deux programmes décident de ce que le robot montre :
la carte (le ratbot_controller) voit le matériel : le bouton d’arrêt, la batterie, les roues, les capteurs. Elle fonctionne toute seule, même quand le Raspberry Pi est éteint ou débranché ;
le Raspberry Pi sait ce que le robot fait : il roule, il explore, il a fini sa mission…
Mais il n’y a qu’un seul voyant. La règle qui tranche :
Important
La carte a toujours la priorité. Le Raspberry Pi ne peut colorer le voyant que lorsque la carte n’a rien de grave à dire.
Trois règles à retenir
Le son marque un changement, la lumière montre l’état. Un son se produit une fois, au moment où quelque chose arrive. La couleur, elle, se lit à n’importe quel moment.
Le voyant montre toujours la chose la plus grave. Danger d’abord, puis panne, puis absence du Raspberry Pi, et seulement ensuite ce que fait le robot.
Le rouge veut dire danger, et rien d’autre. Une mission ratée ou un obstacle n’allument jamais de rouge. Ainsi, le jour où le voyant est rouge, on sait qu’il faut regarder.
Les deux buzzers : deux rôles qui ne se mélangent jamais
le buzzer d’alarme (actif) |
le buzzer à mélodies (passif) |
|
|---|---|---|
le son |
un bip fort, strident, toujours la même note |
des notes : il joue de petites mélodies |
qui le commande |
la carte seule, jamais le Raspberry Pi |
la carte et le Raspberry Pi |
quand il sonne |
seulement pour « danger, arrête-toi » : le bouton d’arrêt a été enfoncé, ou la batterie est critique (sous 9,6 V) |
pour informer : démarrage, Raspberry Pi trouvé ou perdu, mission réussie, obstacle, batterie faible… |
rythme |
200 ms de bip chaque seconde, tant que le danger dure |
une fois, au moment où la chose arrive |
peut-on le faire taire à distance |
non, et c’est voulu : une alarme qu’on peut couper à distance n’est plus une alarme |
oui |
Un seul cas particulier : si la carte plante, le buzzer d’alarme joue
SOS en morse (· · · — — — · · ·). Voir Quand le robot plante.
Le voyant : une échelle de priorité
La carte examine la situation de haut en bas. Le premier niveau vrai gagne, tous les autres attendent.
niveau |
situation |
voyant |
qui décide |
|---|---|---|---|
1 |
bouton d’arrêt enfoncé, ou batterie critique |
rouge, clignotement rapide, et le buzzer d’alarme sonne |
la carte |
2 |
une panne : une roue, un capteur, la mémoire ou l’horloge ; ou l’arrêt automatique (robot renversé, roue bloquée) |
orange, clignotement lent |
la carte |
3 |
fin du démarrage, tout va bien |
vert, un fondu de 2 s, une seule fois |
la carte |
4 |
la carte ne trouve pas le Raspberry Pi |
rouge qui « respire », lentement |
la carte |
5 |
tout va bien et le Raspberry Pi est là |
la couleur choisie par le Raspberry Pi — voir Les états du robot |
le Raspberry Pi |
Et si le voyant est éteint : le Raspberry Pi est bien là, mais ses programmes n’ont encore rien demandé. C’est normal quelques secondes après le démarrage.
Enfin, un éclair blanc toutes les 2 secondes, par-dessus la couleur du moment, veut dire que le mode banc est actif : l’arrêt automatique est en pause. Voir Arrêter et relancer le robot.
Ce que le voyant vous demande de faire
vous voyez |
quoi faire |
|---|---|
rouge rapide, avec l’alarme |
Si c’est le bouton d’arrêt : relâchez-le, puis appuyez 5 fois sur SW1. Si c’est la batterie : mettez-la en charge. L’alarme ne s’arrête pas tant que la cause est là. Voir Arrêter et relancer le robot. |
orange lent |
Une panne, ou l’arrêt automatique. Écoutez le code en bips (voir plus
bas), ou lisez le détail dans |
rouge qui respire |
Vérifiez que le Raspberry Pi est allumé et que son câble vers la carte est branché. |
toute autre couleur |
Rien : le robot vous dit ce qu’il fait. |
Les états du robot
Côté Raspberry Pi, les programmes ne choisissent jamais une couleur. Ils
annoncent un état — par exemple « mission réussie » — et un fichier de
réglage, led_states.yaml, traduit chaque état en couleur et en mélodie :
un programme annonce « mission_ok »
│
▼
status_manager ── consulte led_states.yaml ──► vert clignotant + mélodie de victoire
│ │
▼ ▼
couleur envoyée à la carte son envoyé à la carte
(affichée si les niveaux 1 à 4 (joué par le buzzer à mélodies)
n'ont rien à dire)
La mélodie ne joue qu”à l’entrée dans l’état, jamais en boucle.
Les états de tous les jours
Ceux-là, le Raspberry Pi les calcule tout seul, en permanence.
état |
voyant |
son |
quand |
|---|---|---|---|
|
bleu fixe |
— |
le robot est à l’arrêt. C’est l’état par défaut, quand rien d’autre n’est actif. |
|
vert fixe |
— |
le robot roule (plus de 2 cm/s). |
|
rouge clignotant |
aucun |
l’arrêt de la manette (bouton PS) est actif. Voir Arrêter et relancer le robot. |
|
orange clignotant |
trois notes descendantes, lentes |
la batterie est sous 20 %. Il est temps de la recharger. (Sous 9,6 V, c’est la carte qui prend le relais, avec l’alarme.) |
|
orange clignotant |
une sirène, deux tons alternés |
surchauffe : la carte dépasse 75 °C, ou le Raspberry Pi 80 °C. |
Les états de mission
Ceux-là sont annoncés par un programme : la mission, la navigation, ou vous-même, à la main (voir Déclencher un état à la main).
état |
voyant |
son |
signification |
|---|---|---|---|
|
violet fixe |
— |
le robot explore tout seul pour dresser la carte. |
|
bleu clair fixe |
— |
il rentre à son point de départ. |
|
jaune clignotant |
— |
la mission est en pause : il attend qu’on la reprenne. |
|
jaune fixe |
— |
il a été arrêté à la demande. Ce n’est pas un danger, d’où le jaune et pas le rouge. |
|
vert-cyan fixe |
trois notes qui montent, franches |
il part vers une destination. |
|
vert clair fixe |
deux notes courtes, discrètes |
il a atteint une étape du parcours. Discret, parce que cela arrive souvent. |
|
vert clignotant |
la seule mélodie un peu longue, une petite fanfare montante |
mission réussie : il a fini ce qu’on lui avait demandé. |
|
magenta clignotant |
quatre notes qui descendent |
mission échouée : il n’a pas pu finir. Un échec, pas une panne — d’où le magenta et pas le rouge. |
|
bleu et magenta en alternance |
deux notes basses répétées, puis une plus grave |
il est bloqué : son chemin est impossible. Contrarié, pas affolé. |
|
blanc clignotant |
un bip par seconde |
on a demandé lequel est ce robot ( |
Note
Un état de mission ne dure que 2 secondes si personne ne le répète.
Ensuite, le voyant revient à l’état de tous les jours — bleu ou vert. Le
programme qui veut maintenir un état le réannonce donc tant qu’il est vrai :
c’est ce que fait la mission pour exploring, returning et
paused.
Ainsi, « mission réussie » se voit et s’entend comme un vert clignotant de 2 secondes accompagné de la fanfare, puis le robot repasse au bleu.
Note
Qui annonce quoi, aujourd’hui. La mission annonce exploring,
returning et paused. Les autres états de mission — navigating,
goal_ok, mission_ok, mission_ko, stopped, obstacle —
sont prêts : leur couleur et leur mélodie sont réglées, mais aucun
programme livré ne les annonce encore. Ils attendent vos propres programmes,
ou un essai à la main.
Quand plusieurs états sont vrais en même temps
Le robot peut rouler et avoir une batterie faible. Un seul état est affiché, le premier de cette liste :
emergency > low_battery > overheat > mission_ko > mission_ok > paused
> obstacle > navigating > goal_ok > exploring > returning > moving
> stopped > idle
Et, rappel, cette couleur ne s’affiche elle-même que si la carte n’a rien de plus grave à montrer (niveaux 1 à 4).
Déclencher un état à la main
Pratique pour voir et entendre chaque état. Depuis le Raspberry Pi :
ros2 topic pub --once /ratbot_1/status/set_state std_msgs/msg/String "data: mission_ok"
Le robot affiche l’état pendant 2 secondes, avec sa mélodie, puis revient à la
normale. Remplacez mission_ok par n’importe quel nom des tableaux ci-dessus.
Un nom inconnu est ignoré, et un avertissement le signale dans le journal du
Raspberry Pi.
Les deux « rouges clignotants », à ne pas confondre
C’est ce qui prête le plus à confusion :
arrêt du robot (son bouton) |
arrêt de la manette (bouton PS) |
|
|---|---|---|
qui allume le rouge |
la carte (niveau 1) |
le Raspberry Pi (état |
clignotement |
rapide |
plus lent |
alarme |
oui, le buzzer d’alarme |
non, aucun son |
si le Raspberry Pi est éteint |
fonctionne quand même |
ne fonctionne plus |
Pour les désactiver, chacun a son geste : voir Arrêter et relancer le robot.
Les sons de la carte
En plus des mélodies des états, la carte joue ses propres sons, sans le Raspberry Pi :
vous entendez |
signification |
|---|---|
une mélodie montante de 4 notes |
le robot démarre |
deux notes qui montent |
la carte a trouvé le Raspberry Pi |
les mêmes deux notes qui descendent |
elle vient de le perdre |
une note brève et grave toutes les 5 s |
elle ne l’a toujours pas retrouvé |
trois notes graves rapides au démarrage |
le robot s’était bloqué et s’est relancé tout seul (le « chien de garde ») |
200 ms de bip par seconde, strident |
le buzzer d’alarme : arrêt d’urgence ou batterie critique |
un petit bip à chaque appui sur SW1, puis deux notes qui montent |
le robot est réarmé, après un arrêt d’urgence ou un arrêt automatique. La confirmation est brève : ne la confondez pas avec les bips des appuis |
deux notes égales, suspendues |
le mode banc s’active : l’arrêt automatique est en pause |
la même note, puis une plus haute |
le mode banc s’arrête : la surveillance reprend |
Note
Si vous allumez le robot avant le Raspberry Pi, le rappel « toutes les 5 s » attend trois minutes avant de commencer : c’est le temps normal pour que le Raspberry Pi démarre. S’il avait déjà été vu, ou si la carte vient de se relancer toute seule, le rappel commence tout de suite.
Note
La carte redémarre toute seule si le Raspberry Pi ne répond pas. Tant que ses programmes ne tournent pas, la carte se relance au bout de quelques secondes — vous entendez alors les trois notes graves. C’est voulu : elle repart ainsi d’un état propre. Tout rentre dans l’ordre dès que le Raspberry Pi est prêt.
Les bips du démarrage
Quelques secondes après la mélodie de démarrage, le robot fait son bilan. Tout va bien : un fondu vert, sans un bruit. Quelque chose ne va pas : il compte en bips, comme le BIOS d’un ordinateur.
Des bips longs donnent la famille, des bips courts le détail. Comptez d’abord les longs, puis, après un silence un peu plus marqué, les courts.
vous entendez |
famille |
détail |
|---|---|---|
1 long |
roues |
1 court : roue gauche · 2 courts : roue droite · 3 courts : les deux |
2 longs |
capteurs |
1 court : centrale inertielle · 2 courts : température · 3 courts : batterie |
3 longs |
mémoire |
1 court : réglages illisibles, le robot tourne sur ses valeurs d’usine |
4 longs |
horloge |
1 court : la pile de l’horloge ou son quartz ne répond pas |
5 longs |
le robot s’est arrêté sur une erreur au tour précédent |
1 : pile de tâche · 2 : mémoire pleine · 3 : faute matérielle · 4 : un composant a refusé de démarrer |
6 longs |
arrêt automatique : le robot s’est coupé tout seul |
1 court : renversé · 2 courts : roue bloquée · 3 courts : roues qui patinent · 4 courts : choc. Remettez-le à plat ou dégagez-le, puis 5 fois SW1 — voir Arrêter et relancer le robot |
S’il y a plusieurs pannes, les codes s’enchaînent, séparés par un silence d’une seconde. Le code « 5 longs » n’est joué qu’une fois : au démarrage qui suit le plantage. Le code « 6 longs » n’est jamais joué au démarrage : il arrive au moment où le robot se coupe.
Une panne qui apparaît en cours de route — un connecteur qui lâche, une roue qui décroche — rejoue son code au moment où elle arrive, puis le voyant reste orange. Quand elle disparaît, le voyant s’éteint sans un bruit.
Quand le robot plante
Le buzzer d’alarme joue SOS en morse, en boucle. La cause est enregistrée ; le robot vous la dira en bips (5 longs) au démarrage suivant.
S’il redémarre de lui-même au bout de 8 s, c’est le chien de garde : la panne est survenue en cours de route.
S’il continue à appeler indéfiniment, elle est survenue pendant le démarrage, avant que le chien de garde ne soit armé : il faut couper et rallumer.
Quelques situations concrètes
vous voyez / entendez |
ce qui se passe |
|---|---|
mélodie montante, fondu vert, rouge qui respire, puis deux notes qui montent et le voyant passe au bleu |
démarrage normal : la carte démarre, fait son bilan sans panne, attend le Raspberry Pi, le trouve ; le robot est à l’arrêt, prêt |
bleu, puis vert quand vous poussez le joystick |
le robot roule ; il repasse au bleu à l’arrêt |
rouge rapide et bip strident |
quelqu’un a enfoncé le bouton d’arrêt du robot |
rouge clignotant, silence |
l’arrêt de la manette est actif |
vert clignotant et petite fanfare, puis bleu |
mission réussie |
magenta clignotant et notes descendantes, puis bleu |
mission échouée |
orange lent, sans rien d’autre |
une panne matérielle : écoutez le code, ou lisez |
orange lent, 6 bips longs et 2 courts |
l’arrêt automatique : une roue forçait sans tourner. Dégagez-la, puis 5 fois SW1 |
orange lent, 6 bips longs et 3 courts, alors qu’il était sur sa boîte |
on l’a fait tourner sur la boîte : ses roues tournaient, lui non, et il a cru patiner. Activez le mode banc pour tourner sur la boîte |
un éclair blanc toutes les 2 s |
le mode banc est actif : le robot ne se coupera pas s’il est renversé ou bloqué |
orange clignotant et trois notes descendantes |
batterie sous 20 % : à recharger bientôt |
rouge qui respire et une note toutes les 5 s |
la carte n’a pas de Raspberry Pi : il est éteint, en train de démarrer, ou son câble est débranché |
voyant éteint |
le Raspberry Pi est là, ses programmes n’ont pas encore parlé |
Savoir ce qui ne va pas exactement
Le signal dit « regarde », il ne dit pas tout. Le détail est à une commande de là, depuis le Raspberry Pi :
ros2 topic echo /diagnostics
Comment les lire : voir Diagnostics. Et pour savoir ce qui s’est passé quand vous n’étiez pas là, le robot tient un journal : voir Journal de bord.
Où se règle quoi
vous voulez changer |
où |
|---|---|
la couleur, le clignotement ou la mélodie d’un état ; l’ordre de priorité ; les seuils (batterie 20 %, températures) ; ajouter un état |
|
les niveaux 1 à 4 du voyant, le buzzer d’alarme, les sons de la carte, les codes de démarrage |
le programme de la carte. Volontairement difficile à changer : c’est la sécurité. |
Pour aller plus loin
Les durées exactes, les numéros des mélodies, les principes qui régissent les priorités et la façon d’ajouter un signal sont dans la page « Signaux » de la documentation développeur.