Le Raspberry pi est un ordinateur compact et économe en énergie. Il est donc logiquement une solution intéressante pour des projets embarqués. Je vais donc présenter ici un montage permettant de faire un Raspberry pi portable avec une batterie rechargeable Lithium Polymère, et un chargeur efficace. L’objectif final sera d’avoir un système qu’on puisse utiliser indifféremment sur secteur ou sur batterie, sans interruption, comme avec un ordinateur portable classique.
Liste du matériel
Il nous faudra :
- Un Raspberry Pi. Le modèle A+ est le plus compact et économe en énergie, le pi2 est le plus gourmand (le A+ chez snootlab, le A+ chez Adafruit, le pi2 chez snootlab, le pi2 chez Adafruit);
- Une batterie LiPo de bonne capacité. Dans mon cas il s’agit d’une 6000 mAh (comme celle ci chez Adafruit, ou celle là chez snootlab);
- Un chargeur LiPo une cellule capable de recharger la batterie et alimenter la charge simultanément (Le modèle que j’ai utilisé, chez Adafruit, ou un modèle comparable chez snootlab);
- Un convertisseur DC-DC step-up efficace (le modèle que j’ai utilisé sur Pololu, un autre modèle s’approchant chez snootlab).
Au passage, on pourra utiliser ce composant de chez Adafruit, qui permet de regrouper les composants 3 et 4 sur une seule et même carte.
Détaillons ces composants.
Le Raspberry pi : modèle A+
Entre le A+, le B+ et le pi2, le A+ est celui qui consomme le moins, mais a également moins de ram (256 Mio contre 512 et 1024), et dispose du même CPU que le B+, mais ne dispose que d’un USB contre 4 et pas de port ethernet.
Le pi 2 dispose des mêmes ports que le B+, mais dispose de 1024 Mio de ram et surtout d’un CPU A7 quad core à 900Mhz au lieu du simple coeur 700Mhz des autres. Sa consommation électrique est en revanche plus élevée.
Les anciens modèles (le A et le B) sont respectivement moins intéressants que les A+ et B+, car présentant des fonctionnalités comparables, mais une consommation électrique supérieure. Si toutefois vous en avez en stock, il feront également l’affaire.
Pour choisir ici, on pourra résumer ainsi :
- Pour une autonomie maximale, privilégiez le A+;
- Pour une puissance maximale, privilégiez le pi 2;
- Le B+ se retrouve entre les deux. Il a le double de la ram du A+, et consomme moins que le pi 2.
Généralement, si une tâche peut être accomplie par le B+, elle devrait être réalisable par le A+. On aura donc plutôt tendance à choisir entre le A+ et le pi 2. Pour la plupart des projets consistant à collecter les mesures de capteurs, ou faire des photos, le A+ suffira largement. Il présente en outre l’avantage d’être le moins cher et le plus compact.
C’est le modèle que nous utiliserons ici pour ce prototype.
La batterie : Lithium Polymère 6000 mAh
On peut utiliser bon nombre de batteries pour alimenter notre système portable. Le choix des batteries lipo tient à leur grande capacité pour un volume et une masse donnée, supérieure aux autres technologies. Mais en plus, on trouve des circuits de charge dédiés qui permettent de charger la batterie en utilisant l’appareil, ce qui nous évite d’en concevoir.
Le modèle choisi est une batterie de 6000 mAh, pour une tension nominale de 3.7V. Cela donne une capacité de 22.2Wh.
Le chargeur LiPo : module Adafruit
Le USB LiIon/LiPoly charger de Adafruit est capable de charger une batterie une cellule Lithium-Ion ou Lithium Polymère avec un courant constant de 100,500 ou 1000mA depuis une alimentation de 5V. Il y a sur la carte un port mini-USB mais également la possibilité de souder des connecteurs pour ajouter une autre source possible d’entrée.
Par défaut, le taux de charge est de 500mA. Cela implique une charge complète en 12 heures. Si on passe a 1000mA, on pourra réduire ce temps à seulement 6 heures.
Régulateur de tension : Pololu step up 5V
La batterie Lipo fournira une tension entre 3 et 4.2v selon le niveau de charge de celle ci. De ce fait, il nous faut pouvoir générer du 5V depuis cette tension pour alimenter le Raspberry pi. Le paramètre clé ici sera l’efficacité du composant. En effet, moins le composant sera efficace, plus on gaspillera d’énergie de la batterie en chaleur, réduisant d’autant l’autonomie. Le régulateur U1V11F5 de pololu est un régulateur step up, ce qui signifie qu’il convertit des tensions inférieures à 5V vers le 5V. Celui ci est aussi capable de faire du step down, mais dans notre cas, ça n’aura pas d’utilité. L’essentiel est que ce convertisseur est annoncé comme ayant une efficacité pratique entre 70 et 90%. En pratique, voici quelques courbes d’efficacité du composant :
Prenons la courbe rose pour une tension d’entrée de 3.3V. Pour un courant de sortie de 150mA, on est à peu près à 85%. Nous sommes proches des valeurs que ce que nous aurons dans notre prototype. On aura une tension d’entrée un peu plus haute, et donc probablement une efficacité légèrement supérieure, mais nous retiendrons cette valeur de 85% de façon à prendre le pire des cas.
Ces 85% d’efficacité entraînent logiquement que nous aurons moins d’énergie disponible pour notre système. En pratique, nous passerons ainsi de 22.2Wh à 85% de cette valeur, soit 18.8Wh effectives.
Le montage
Le montage est simple : la batterie est branchée sur les broches “batt” du chargeur. Les broches load servent à alimenter la charge (ici le Raspberry pi), mais il faut d’abord passer par le régulateur de tension. Pour ce faire, la broche load + est connectée à la broche Vin du régulateur, et la broche load – est connectée à la broche gnd (masse) de celui ci. La broche Vout du régulateur est connectée à la broche 5V des GPIO du Raspberry pi, et la broche gnd du régulateur à la masse des GPIO Raspberry pi également.
Dès lors, si la batterie est chargée, le régulateur générera du 5V et alimentera le Raspberry pi. On pourra rajouter un interrupteur sur le câble connectant la broche load+ du chargeur et la broche Vin du régulateur pour pouvoir éteindre totalement le système (ou encore sur le câble + de la batterie).
Si l’on branche le câble USB du chargeur, ou que l’on envoie du 5V sur les broches DCIN, la batterie se chargera si elle n’est pas déjà pleine, que le Raspberry pi soit allumé ou non.
On peut voir sur l’image ci après le montage complet :
Autonomie
Calcul théorique
Le Raspberry pi A+ consomme environ 100 mA au repos, le B+ monte à 200mA et le pi2 à 230. En charge avec le module camera enregistrant de la vidéo en 1080p (voir les mêmes liens), on monte à 230mA pour le A+, 330 pour le B+ et 350 pour le pi 2 B.
En veille
Nous disposons donc d’une batterie de 6Ah, a 3.7V, ce qui donne une capacité de 22.2Wh. Toutefois, du fait de l’efficacité du convertisseur de tension, nous avons une capacité utile équivalente à 85% de cette valeur, soit 18.8Wh.
Le Raspberry pi A au repos (cela correspondra à ce que l’on aura quand on fera des tâches légères comme la lecture de capteurs) consomme 100 mA en 5V, soit une puissance de 0.1*5=0.5W.
En théorie, on a donc une autonomie de 18.8/0.5=37.6h, soit plus d’un jour et demi.
En capture vidéo 1080p
Si l’on considère la consommation pendant une capture 1080p, elle monte à 230mA. Selon le graphique du convertisseur, l’efficacité est sensiblement la même, nous aurons donc la même capacité utile de 18.8Wh.
La puissance consommée par le pi sera donc de 0.23*5=1.15W. Notre système devrait de ce fait être capable de filmer en 1080p pendant 18.8/1.15=16 heures.
Cas hybride : photos en timelapse
Imaginons maintenant que nous souhaitons non pas filmer, mais prendre des photos pour du timelapse, à hauteur d’une photo par minute. La prise de photo prendra environ 2 secondes, et nous considérerons même 3 secondes pour surévaluer la valeur.
Sur une minute, le Raspberry pi consommera 100 mA pendant 57 secondes, et 230 mA pendant 3 secondes. En moyenne, cela fait donc (57*100+3*230)/60=106.5mA de consommation moyenne, ce qui correspond à une puissance consommée de 0.1065*5=0.5325W. Notre batterie ayant une capacité utile de 18.8Wh permettra d’alimenter le système pendant 18.8/0.5325=35 heures.
Essai pratique
Le premier test sera la mesure de l’autonomie au repos. Pour cela, j’ai fait un script simple, qui toutes les 10 secondes écrit dans un fichier le temps d’exécution cumulé du script et l’affiche également à l’écran. J’ai branché un petit écran et un clavier sur le A+, et le système est branché à une alimentation externe. Je lance alors le script, débranche le clavier et l’écran, puis immédiatement l’alimentation externe, ce qui fait que le pi se met alors à tourner sur la batterie. De temps en temps je rebranche l’écran pour vérifier que le script tourne toujours, et quand je verrai que la LED d’état du Raspberry pi s’éteindra, je rebrancherai puis redémarrerai l’ensemble pour regarder dans le fichier la durée d’exécution affichée.
Il a fallu attendre longtemps pour que la machine cesse enfin de fonctionner. Au bout d’un moment, la diode d’état s’éteignait brièvement, mais le système a continué à fonctionner. Le dernier enregistrement dans le fichier mentionne une durée d’exécution de 154192 secondes, soit plus de 42 heures d’autonomie sur une seule charge! Cela représente 5 heures de mieux que dans notre calcul, donc soit le régulateur est bien plus efficace que prévu, soit le A+ consomme moins que la valeur de 100mA que j’ai utilisée, soit la batterie a été sous-estimée par le fabricant.
Conclusions sur le Raspberry pi mobile lipo
Nous disposons maintenant d’un système portable, utilisable à la fois sur secteur (en branchant le câble USB ou une source 5V), et de façon mobile en utilisant la batterie. L’ensemble est plutôt compact, et permet une bonne autonomie. Nous pourrons utiliser cette base pour divers projets embarqués, comme par exemple la fabrication d’une caméra autonome, et même ajouter des panneaux solaires pour recharger la batterie quand le soleil est disponible. Avec des panneaux suffisamment grands il sera alors possible de recharger totalement la batterie la journée, et d’être assurés de pouvoir continuer les activités du système sans interruption la nuit. Nous disposerons ainsi d’un système pouvant fonctionner pendant de très longues durées (des mois) sans interruption.
Dans une optique domestique, un tel système peut également servir d’alimentation ininterrompue, par exemple pour des caméras de sécurité, ou un système de mesure ayant besoin de mesures continues sans interruption. Cela permettra d’assurer le service même en cas de coupure de courant.
Je mettrai en ligne plus tard des fichiers permettant d’imprimer en 3D ou de fabriquer à la découpeuse laser un boitier permettant de contenir tout ce matériel.
L’étape suivante est de pouvoir mesurer la tension de la batterie, afin de pouvoir estimer la charge restante. Je présente dans cet article un tutoriel permettant de réaliser cela.
[…] à mes premiers tests sur un Raspberry pi mobile utilisant une batterie lipo qui a permis plus de 40 heures d’autonomie, je poursuis les expérimentations dans le domaine. Nous reprendrons le même montage, mais nous […]
Bonjour,
Super article !
Je cherche à réaliser la même chose, pouvez-vous détailler le montage électrique avec les résistances svp ?
Merci.
Super article qui m’eclaicie grandement. Toutefois, une idée une question. Si je greffe sur la rbA+ un LipoSHIM (Connue aussi sous le nom de ZeroLipo) puis une batterie LiPo, es ce que je peux recharger en utilisant le micro USB du raspberry? Es ce que ça sera suffisant pour alimenter raspberry, écran et imprimante? J’essaie de trouver la solution qui prendrait le moins de place.
Bonjour
Je suis également à la recherche du montage (le circuit en détail) car je viens de voir que vous avez rajouté des résistances. Vous est il possible de me communiquer le circuit détaillé ? Merci