Le LiFePO4wered est une alimentation intelligente qui permettra d’ajouter à votre Raspberry Pi une batterie en cas de coupure de courant ou de rendre le Raspberry Pi autonome pour des applications mobiles (projets RC, robotique, timelaps…). Le LiFePO4wered dispose de sa propre API qui permet d’intégrer la gestion d’énergie dans n’importe quel projet. Vous pouvez vous procurer le LiFePO4wered sur Tindie pour environ 35€ environ (hors transport, environ 4€).
Sommaire
Présentation du LiFePO4wered
Le LiFePO4wered est un système d’alimentation pour Raspberry Pi qui vient se substituer à l’alimentation standard. Ce nouveau bloc d’alimentation vient de brancher sur GPIO du Raspberry (4 premières colonnes). L’autonomie annoncée est comprise entre 1 et 3 heures avec une batterie LiFePo4 de 550mAh. Tout dépendra évidemment de l’utilisation du Raspberry et des connexions utilisées (WiFI, Bluetooth, GPIO…). Avec le LiFePO4wered en place, on utilise son Raspberry Pi comme un ordinateur portable. Son utilisation est parfaitement transparente, on peut le laisser branché en permanence. Lorsqu’on débranche le RPI du secteur, il continue d’être alimenté par la batterie.
Caractéristiques techniques
|
|
Voici les principales caractéristiques techniques
- Batterie 3.2V LiFePO4 (Lithium Fer Phosphate) d’une capacité de 550mAh. 2000 cycles de recharge.
- Chargeur USB avec protection de surcharge permettant d’alimenter le Raspberry sans interruption en cas de débranchement ou de coupure de courant : fonction UPS (Uninterruptible Power Supply).
- Communication avec le Raspberry Pi via le bus I2C. Permet de suivre le niveau de charge et ajuster les paramètres de fonctionnement. Le module est capable de détecter un arrêt du système.
- Bouton tactile programmable à l’aide de l’API. Le bouton tactile dispose d’une protection d’activation accidentelle, ce qui évite d’arrêter le Raspberry par erreur.
- 2 indicateurs à Led. La Led verte indique l’état de fonctionnement du Raspberry. Elle est également programmable. La Led rouge située à l’étage inférieur à coté du connecteur micro-USB indique l’état de charge.
Le LiFePO4wered est compatible avec le Raspberry Pi Model A+, Model B+, Raspberry Pi 2, Raspberry Pi 3 et le Raspberry Pi Zero. Les modèles A et B (les plus anciens) nécessitent un câblage complémentaire.
Mettez hors tension le Raspberry Pi et débranchez le câble USB d’alimentation. Installez le module LiFePO4wered sur le connecteur GPIO et fixez le en vissant l’entretoise blanche comme sur la photo.
Vue avant. Fixation en place
Vue arrière
Branchez le câble d’alimentation et appuyez sur le bouton tactile pour allumer le Raspberry.
Installation des librairies
Le code source de la librairie est disponible sur GitHub https://github.com/xorbit/LiFePO4wered-Pi
Commençons par installer les outils nécessaires (git et build-essential)
sudo apt-get -y install build-essential git
Maintenant on clone le dépôt git en local
git clone https://github.com/xorbit/LiFePO4wered-Pi.git
On entre dans le répertoire et on lance l’installation
cd LiFePO4wered-Pi python build.py sudo ./INSTALL.sh
Le script d’installation active le bus I2C et l’UART du GPIO. Si le bus I2C était déjà actif, la Led s’éclaire en vert, sinon elle clignote. Dans ce cas, il est nécessaire de redémarrer le Raspberry avec la commande sudo reboot.
Après le redémarrage, la Led verte ne clignote plus, ce qui signifie que le service a correctement été lancé au démarrage.
Configurer le touchpad
Le LiFePO4wered intégre un bouton sensitif (touch pad) qui permet d’allumer et d’éteindre le Raspberry Pi. Pour prévenir un arrêt accidentel, il faut maintenir le doigt appuyé sur le touch pad environ 2 secondes. Le touch pad arrive déjà pré-configuré. Si toutefois il n’est pas à votre goût, il est possible de personnaliser les paramètres du touch pad à l’aide des trois paramètres suivants :
- TOUCH_CAP_CYCLES : nombres de cycle de pulsations produits par le capteur sensitif. 20 par défaut
- TOUCH_THRESHOLD : seuil de détection d’un contact avec le capteur sensitif. 12 par défaut. Mesure combinée à l’hysteresis. Le courant mesuré doit être compris entre threshold – hyteresis et threshold + hyteresis pour déterminer un contact.
- TOUCH_HYSTERESIS : valeur ajoutée et retranchée au seuil de détection qui permet de définir la zone de mesure du courant. 2 par défaut.
Alimentation électrique sécurisée
Le LiFePO4wered intégré plusieurs mécanismes de sécurité pour protéger le Raspberry Pi, surtout la carte SD. Tout d’abord, il permet d’éteindre correctement le Raspberry Pi à l’aide du Touch Pad (et de l’allumer bien évidemment). Ensuite, le micro-contrôleur surveille en permanence l’alimentation électrique et arrête ou refuse de démarrer le Raspberry Pi dans les cas suivants :
- VIN_MIN : si la batterie délivre un tension inférieure à 2,85V (réglage usine), une demande d’arrêt immédiat est envoyée au RPI
- VIN_SHDN : si la batterie délivre un tension inférieure à 2,95V (réglage usine), une demande d’arrêt est envoyée au RPI
- VIN_BOOT : si la batterie n’est pas assez chargée, au moins 3,14V par défaut, le RPI ne peut pas démarrer. En mettant AUTO_BOOT à 1, le Raspberry Pi est démarré automatiquement lorsque la charge de la batterie est suffisante. Par défaut, elle doit au moins délivrer 3,15V (réglage usine).
- VOUT_MAX : le Raspberry ne peut pas démarrer si la tension de sortie est supérieure à 3,5V (réglage usine)
Tous les seuils de sécurité peuvent être modifiés (sous votre responsabilité) à l’aide de l’outil en ligne de commande présenté un peu plus bas. Enfin le Raspberry Pi est protégé des surtensions électriques car il n’est alimenté par le bloc d’alimentation mais par la batterie.
Pour configurer le LiFePO4wered, inutile de se lancer dans un programme python, un petit programme en ligne de commande est disponible lifepo4wered-cli.
On récupère l’état avec la fonction get, et on affecte une valeur avec la fonction set.
Par exemple, si on veut connaitre le courant délivré par la batterie :
lifepo4wered-cli get vin
Pour éviter toute corruption du système, les changements ne sont pas enregistrés dans la mémoire flash. On peut donc faire autant d’essais que désiré. En cas d’erreur, il suffit de débrancher l’alimentation et de retirer la batterie pour les effacer. Pour rendre les changements permanents, il faut flasher la mémoire avec la commande
Voici les principaux paramètres que vous pouvez modifier
| Fonction | Action | Lecture
(Get) |
Ecriture
(Set) |
Configurable
(Save To Flash) |
| AUTO_BOOT | le Raspberry est démarré automatiquement lorsque la batterie est suffisamment chargée (3.15V par défaut). | X | X | |
Mode d’allumage de la Led verte signalant l’état de fonctionnement. LED_STATE peut prendre les valeurs suivantes :
|
X | X | X | |
| TOUCH_STATE | Etat du touch pad :
|
X | ||
| TOUCH_CAP_CYCLES | Nombre de cycle de mesure. 20 par défaut | X | X | X |
| TOUCH_THRESHOLD | Seuil de détection d’un contact. 12 par défaut. | X | X | X |
| TOUCH_HYSTERESIS | Valeur ajoutée et retranchée au seuil pour déterminer la zone de détection d’un contact. 2 par défaut. | X | X | X |
| VIN | Tension d’alimentation de la batterie. | X | ||
| VOUT | Tension de sortie de la batterie (alimentation du Raspberry) | X | ||
| VIN_MIN | Tension minimale de sortie de la batterie avant un arrêt immédiat du système. 2.85V par défaut. | X | X | X |
| VIN_SHDN | Tension minimale de sortie de la batterie avant un arrêt du système. 2.95V par défaut. | X | X | X |
| VIN_BOOT | Tension minimale délivrée par la batterie permettant de démarrer le Raspberry. 3.15V par défaut | X | X | X |
| AUTO_BOOT | Démarre automatiquement le Raspberry Pi lorsque la batterie est suffisamment chargée. | X | X | X |
| WAKE_TIME | Arrête le Raspberry Pi durant une durée (approximative) indiquée en minutes | X | X | X |
| SHDN_DELAY | Temps laissé au système pour s’arrêter en secondes avant que l’alimentation soit arrêtée. 65 par défaut. | X | X | X |
| PI_RUNNING | Etat du Raspberry. 0 si arrêté. 1 si démarré. Déclenche l’arrêt du système si mis à 0 manuellement. | X | X | |
| CFG_WRITE | Déclenche l’enregistrement des paramètres lorsqu’on passe le paramètre à 1. Attention. Il n’est pas possible d’annuler l’opération. De mauvais paramètres peuvent détériorer et rendre inutilisable le matériel | X | X |
Conclusions
Le LiFePO4wered apporte une alimentation sécurisée au Raspberry Pi ainsi qu’un bouton d’extinction fiable. La carte SD si sensible au débranchement accidentel du câble USB es enfin protégée. En cas de coupure de courant, le Raspberry sera arrêté “proprement” si vous êtes absent de chez vous. LiFePO4wered est une bonne solution pour développer des applications mobiles ou robotique. On regrettera toutefois la monopolisation de plusieurs broches (I2C, UART, +5V…) qui peuvent être nécessaires pour certains projets. Il faudra alors passer par un Arduino. Peut être que dans une prochaine version il sera compatible avec les spécifications HAT.
Liens utiles
Code source du projet : https://github.com/xorbit/LiFePO4wered-Pi
Site internet du projet : http://lifepo4wered.com
Documentation technique détaillée : http://lifepo4wered.com/files/LiFePO4wered-Pi-Product-Brief.pdf
Avez-vous aimé cet article ?