Power board
Depuis 2024, l’esieabot est équipé d’un PCB dédié pour contrôler ses batteries et la distribution de l’alimentation. Il est plus fiable que la solution précédente, permet de surveiller le niveau de la batterie et la consommation actuelle du robot et dispose de plusieurs fusibles intégrés.

Composants
La power board est composée des circuits intégrés suivants :
Microcontrôleur Raspberry Pi RP2040
Capteur de courant Texas Instruments INA230
Chargeur de batterie Texas Instruments BQ25611D
Convertisseur boost pour l’alimentation du moteur Texas Instruments TPS61088
Convertisseur boost pour l’alimentation du Raspberry Pi et du servo Texas Instruments TLV61070A
Convertisseur buck-boost pour l’alimentation interne du RP2040 Texas Instruments TPS63031
Fonctionnement
Pour connecter la power board à votre robot, branchez un câble JST PH2.0 mâle à mâle du port d’alimentation de la power board au port d’alimentation de l’add-on board. Pour allumer la power board, déplacez l’interrupteur d’alimentation sur la gauche en position I. Cela alimentera le Raspberry Pi et les moteurs du robot. Pour éteindre la power board, déplacez l’interrupteur d’alimentation en position O. Pour charger la batterie, connectez un câble micro USB au connecteur micro USB sur la power board. La batterie se chargera automatiquement.
Indicateurs LED

La power board contient 5 LED d’état pour indiquer divers états du robot :
PWR (rouge) : Cette LED indique que la power board est allumée. Elle est toujours allumée lorsque la power board est allumée.
RUN (orange) : Cette LED indique que les moteurs sont allumés.
CHRG (blanche) : Cette LED indique que la batterie est en charge. Si elle clignote à 1Hz, cela signifie que la batterie ne peut pas être chargée. Cela peut être dû à une température de batterie trop basse ou trop élevée. Si elle clignote plus vite, alors les batteries sont absentes ou leur fusible est grillé.
DONE (verte) : Cette LED indique que la batterie est complètement chargée.
PLGD (bleue) : Cette LED indique qu’une alimentation est connectée, soit à partir du connecteur micro USB soit à partir du pad de charge.
Profil de charge
La charge de la batterie se fait en 4 phases :
Pré-charge : La batterie est chargée avec un courant constant de 0,2A jusqu’à ce que la tension de la batterie atteigne 2,6V.
Charge rapide : La batterie est chargée avec un courant constant jusqu’à 3A jusqu’à ce que la tension de la batterie atteigne 3,59V. Par défaut, le courant d’entrée depuis le port micro USB est limité à 500mA pour des raisons de compatibilité. Vous pouvez modifier cette limite manuellement depuis votre Raspberry Pi en ligne de commande, voir documentation ci dessous
Tension constante : La batterie est chargée avec une tension constante de 3,59V jusqu’à ce que le courant de charge tombe en dessous de 150mA.
Finalisation : La batterie est considérée comme complètement chargée après 15 minutes de charge à tension constante.
Note
Ces phases sont contrôlées par le chargeur de batterie BQ25611D et sont indiquées par les LED CHRG et DONE. Elles peuvent être modifiées dans le firmware. Plus d’informations peuvent être trouvées dans la fiche technique du BQ25611D.
Interface en ligne de commande
La power board peut être contrôlée depuis le Raspberry Pi en utilisant l’interface en ligne de commande power-cli. La commande power-cli peut être utilisée pour surveiller le niveau de la batterie, la consommation actuelle et pour mettre à jour le firmware de la power board. Cette interface en ligne de commande est fournie par le package esieabot-power-manager qui est pré-installé sur esieabot-os.
Getters
Tension de la batterie :
power get Vbat
Courant de la batterie :
power get Ibat
Niveau de charge de la batterie :
power get soc
Température de la batterie 1 :
power get tempbat1
Température de la batterie 2 :
power get tempbat2
État de charge de la batterie :
power get charge
Révision matérielle de la power board :
power get board
Version du firmware de la power board :
power get version
État de l’auto-test :
power get selftest
Tension du rail 5V :
power get 5V
Tension du rail moteur :
power get Vmot
Setters
Alimentation du moteur :
power set motor <on|off>
Courant de charge :
power set Ichrg <value>
La valeur du courant d’entrée doit être comprise entre 100mA et 3200mA et doit être un multiple de 100Ship-mode (arrêt complet) :
power set ship-mode <on|off>
Mettre le ship-mode sur « on » va éteindre complètement la power board. Pour la rallumer, vous devez brancher un chargeur ou faire un contact sur le jumper QON
Mise à jour
Mise à jour du firmware :
sudo power update <firmware_file>
Le firmware doit être un fichier .bin
Développement du firmware
Le firmware de la power board est développé en C++ en utilisant le framework Arduino et PlatformIO. Le firmware est disponible sur le dépôt dédié au firmware de la power-board.
Mise à jour du firmware
Le firmware de la power board peut être mis à jour de 3 manières différentes :
USB : Connectez un câble micro USB au connecteur micro USB sur la power board et à votre ordinateur. Ensuite, appuyez sur le bouton BOOT sur la power board et réinitialisez la power board en appuyant sur le bouton RESET. Ensuite, relâchez le bouton RESET et enfin relâchez le bouton BOOT. La power board apparaîtra comme un lecteur USB sur votre ordinateur. Copiez le fichier firmware (.uf2) sur le lecteur USB. Le firmware sera mis à jour.
SWD : Connectez un programmeur SWD au connecteur SWD sur la power board. Ensuite, utilisez un logiciel compatible pour flasher le firmware, comme l’IDE Arduino ou PlatformIO avec OpenOCD.
I2C : C’est le moyen le plus simple de mettre à jour le firmware. Il se fait automatiquement à chaque mise à jour régulière d’esieabot-os. Si vous souhaitez le faire manuellement avec un fichier firmware personnalisé, connectez la power board au Raspberry Pi et exécutez la commande suivante :
sudo power update firmware.bin
. Le firmware sera mis à jour au prochain redémarrage de la power board.