Surveillance de batterie pour le robot chien SunFounder PiDog. Quand l'Ă©nergie baisse, le chien vous le dit â Ă voix haute.
« Ănergie faible. 30 pour cent. »
Service de fond, sans dĂ©pendance, qui tourne en mĂȘme temps que vos autres programmes PiDog â notamment pidog-voice.
- Lit la tension de la batterie et la convertit en pourcentage
- Ă chaque palier franchi : aboie puis annonce le niveau Ă voix haute
- Chaque palier n'alerte qu'une fois â pas de harcĂšlement Ă 29 %, 28 %, 27 %âŠ
- Se tait pendant la charge
- Se réarme tout seul une fois la batterie rechargée
- Survit aux redémarrages : les paliers déjà annoncés sont mémorisés sur disque
Il ne bouge aucun servo. L'alerte est purement sonore. Un robot posĂ© sur une table peut donc ĂȘtre surveillĂ© sans risque de chute.
Il n'instancie jamais Pidog(). La tension est lue directement par l'ADC du
robot-hat. C'est ce qui permet Ă ce service de tourner en parallĂšle de
pidog-voice : deux objets Pidog dans deux processus se disputeraient le GPIO.
Il ne croit pas aveuglĂ©ment l'ADC. Deux problĂšmes distincts, tous deux constatĂ©s : le convertisseur bruite de ±0,08 V, et â plus vicieux â il renvoie des 0,00 V francs quand les servos tirent du courant (2 lectures sur 9 pendant une marche). Le service Ă©carte donc toute lecture sous 5 V avant de prendre la mĂ©diane : un pack 2S sous 5 V n'alimenterait plus le Pi, qui serait Ă©teint.
Sans ce filtre, la mĂ©diane tombe sur 0 et le robot annonce « batterie critique, 10 pour cent » alors qu'il est Ă 7,4 V. C'est arrivĂ©, d'oĂč le correctif.
git clone https://github.com/koua29/pidog-energy.git
cd pidog-energy
./install/pi_service.sh # cron @reboot + supervision, aucun sudo requisVérifier :
python3 energy.py --etat # tension, pourcentage, paliers déjà annoncés
tail -f ~/pidog-energy.logDésinstaller : ./install/pi_service.sh --retirer
python3 energy.py # service (boucle infinie)
python3 energy.py --etat # état actuel
python3 energy.py --test 30 # joue l'alerte du palier 30 % sans attendre
python3 energy.py --verifier # valide config.json
python3 energy.py --oublier # réarme tous les paliersTout est dans config.json. Aucun code à modifier.
"alertes": [
{ "pourcent": 30, "aboiements": 3 },
{ "pourcent": 20, "aboiements": 4 },
{ "pourcent": 10, "aboiements": 5,
"annonce": "Batterie critique. {pourcent} pour cent. Rechargez-moi." }
],
"annonce_par_defaut": "Energie faible. {pourcent} pour cent.",
"rearmement_pourcent": 50| Réglage | RÎle |
|---|---|
alertes[].pourcent |
Seuil de déclenchement |
alertes[].aboiements |
Nombre d'aboiements avant la phrase (0 = voix seule) |
alertes[].annonce |
Phrase spécifique à ce palier ; {pourcent} est substitué |
annonce_par_defaut |
Phrase utilisée si le palier n'en définit pas (null = aboiements seuls) |
rearmement_pourcent |
Au-dessus de ce niveau, tous les paliers redeviennent annonçables |
batterie.intervalle_s |
Période entre deux mesures (60 s par défaut) |
batterie.lectures_par_mesure |
Nombre de lectures dont on prend la médiane |
voix_langue |
Langue de la synthĂšse pico2wave (fr-FR) |
Ajouter un palier ne demande qu'un bloc de plus dans alertes. Validez ensuite
avec python3 energy.py --verifier : il refuse les doublons, les seuils hors
bornes, et un rearmement_pourcent placé sous le plus haut palier.
Si la batterie passe de 35 % Ă 8 % entre deux mesures, le service annonce 10 %, pas 30 % : il retient toujours le palier le plus bas atteint.
Le pourcentage est approximatif. Il vient d'une conversion linéaire de la
tension (8,4 V = 100 %, 6,4 V = 0 %). Or une cellule lithium tient un plateau vers
7,4 V puis chute brutalement : le vrai « 50 % » arrive plus tard que ne l'indique
le calcul. Les bornes sont dans config.json, ajustez-les Ă votre pack.
La détection de charge est une déduction, pas une mesure. Le robot-hat n'expose aucun signal de charge. Le service conclut à une charge en observant une hausse soutenue de tension, ou une tension de fin de charge (℠8,25 V). Deux conséquences : les toutes premiÚres minutes d'un branchement peuvent lui échapper, et un pack fraßchement débranché reste un moment considéré comme en charge.
Liens partenaires Amazon : si vous achetez via ces liens, le projet touche une petite commission, sans surcoût pour vous. Ce sont les trois machines sur lesquelles ce code a été développé et testé.
|
SunFounder PiDog Le robot chien |
Raspberry Pi 4 Le cerveau embarqué |
Apple Mac Mini Pour aller plus loin â voir pidog-voice |
Ce projet est gratuit et open source. S'il vous est utile, vous pouvez me remercier en m'offrant un cafĂ© â il suffit de scanner ce QR code PayPal. Merci beaucoup ! đ
- pidog-voice â commande vocale française pour le mĂȘme robot. Les deux services tournent ensemble sans conflit.
MIT © 2026 koua29