Les utilisateurs de Raspberry Pi connaissent bien la petite icône éclair qui s’affiche quand celui-ci manque de jus. Il est vivement recommandé d’utiliser une alimentation officielle de 3A pour éviter ce genre de panne. Méfiance aussi sur une alimentation sous marque de 3A, elle n’est pas aussi forte que cela. Un collègue en a fait récemment les frais.
Il est possible de trouver de multiples utilisations du Raspberry Pi sur Internet : serveur, passerelle multimédia, PC d'appoint… Tous ces projets mettent en œuvre le mini PC lui-même. Cependant, au-delà de l'aspect mini PC embarqué, et de son OS Linux, cette cible possède un atout important : son port d'entrées-sorties, ou GPIO.
En théorie, on peut effectivement alimenter la Raspberry PI par le 5V GPIO. A condition d'être sûr de la stabilité de sa tension 5V, et aussi il faut faire super gaffe lors de l'utilisation des GPIO, car il y a un fusible entre le 5V du micro USB et le 5V des GPIO. Ce fusible protège des courts-circuits sur les ports GPIO. Je confirme qu'alimenter le Rpi par les GPIO est tout à fait possible. D'ailleurs, personnellement, pour une application sérieuse je n'envisage pas d'alimenter autrement mon Rpi que par les GPIO, surtout si je dois lui coller une carte sur les GPIO.
La dernière version du Pi 2 peut être alimentée efficacement de deux manières. Le premier moyen recommandé et le plus simple d’alimenter le Raspberry Pi est via le Port micro USB sur le côté de l’unité. Chez ModMyPi, notre alimentation standard pour le Raspberry Pi est de 5,1 V à 2,5 A. La raison d’augmenter légèrement la tension est d’annuler toute chute de tension causée par une consommation excessive de courant. Cependant, toute utilisation excessive des ports USB ou même une lourde charge CPU / GPU peut entraîner une baisse de la tension et une instabilité lors de l’utilisation. Les dernières versions du Raspberry Pi B + / A + / 2 ont une «icône d’indicateur de basse tension» pour avertir l’utilisateur en cas de problème d’alimentation.
Vous allez me dire, une alimentation ATX ce n’est pas un peu surdimensionné ? Pour un gros projet, j’avais besoin d’alimenter plusieurs équipements avec du 12v et du 5v. Mon but, avoir une seule prise à brancher. Le Pi serait directement alimenté en 5v par 2 ports GPIO (+5v et masse). Une alimentation ATX correspond à mon besoin avec son +12v, le +5v et même du +3,3v… cela peut servir. Ayant pas mal de matériel informatique, cela me coûtera 0€ : j’en ai un stock.
Un moyen plus technique (et bien sûr dangereux) d’alimenter le Pi est directement via le GPIO. Il convient de noter que, contrairement au port Micro-USB, il n’y a pas de régulation ou de protection par fusible sur le GPIO pour protéger contre les surtensions ou les pointes de courant. Si une tension incorrecte est appliquée ou si une pointe de courant se produit sur la ligne, vous pouvez endommager définitivement votre Raspberry Pi. Au mieux, vous « brûlerez » tout ou partie des broches GPIO, au pire vous pourrez faire frire votre Pi! Un exemple simple de cela est illustré dans l’image ci-dessus. Nous avons pris un de nos câbles USB vers TTL et l’avons connecté à l’une de nos alimentations USB. Branchez simplement le 5V à la broche n ° 2 (câble rouge) et la masse à la broche n ° 6 (câble noir). Cette méthode est utile pour une gamme d’applications, et un certain nombre de cartes de dérivation offrent cette fonctionnalité d’alimentation via le GPIO en utilisant des alimentations par batterie. Nous recommandons donc que l’alimentation via le GPIO soit uniquement réalisée via une source protégée.
J’ai commencé par faire des recherches, car mon souhait était aussi de pouvoir piloter l’alimentation avec le Pi pour l’allumer et l’éteindre comme avec un PC. Un simple interrupteur ne pourra pas fonctionner. Une alimentation ATX est pilotée par un signal électrique haut / bas. J’ai commencé par faire des recherches afin de trouver un éventuel tuto pour gagner du temps. Je bricole, mais pas au point de faire un circuit électronique complet. Je trouve assez rapidement mon bonheur sur le site Fire DYI au lien suivant. Je me lance dans le schéma électrique avec une personnalisation pour ajouter : des pins de connexion pour du 12 et 5v, des connecteurs USB pour alimenter des bandeaux LED, ventilateurs, écran LCD… Le site EasyEDA vous permet de faire vos schémas en ligne, mais aussi de commander la carte une fois terminée. Voici le schéma fini avec un connecteur ATX pour un beau montage. Là encore j’ai des cartes mères et je pourrai récupérer un connecteur ATX. Le tout terminé avec les composants soudés, il en sort cette carte. Mais voilà, comme indiqué, celle-ci fut un échec. Lors de la demande d’arrêt du Pi : celui-ci reboot. Avec un admin du site Fire DYI, nous avons essayé plein de choses avant de ne pas avoir de réponse sur ce comportement. Vous trouverez le sujet au lien suivant. Cela ne doit pas venir de la carte, car j’arrive tout de même à faire arrêter le Pi quand celui-ci est alimenté en dehors de la carte (en Micro USB par exemple branché sur secteur), voire sur la même alimentation avec le +5v continu (ce connecteur a toujours 5v même alimentation éteinte). L’alimentation ? Non, j’ai aussi essayé avec une alimentation différente. Est-ce un problème de latence ? Ce qui engendre un reboot car quelque chose ne va pas assez vite ? On ne sait pas, mais je voulais tout de même vous partager mon échec.
Je reprends mon fidèle ami Google et je tombe sur cette carte au lien suivant. Elle fait tout ce que je voulais et même mieux, car c’est un HAT. La carte s’emboîte donc au-dessus du Pi. Le projet est open source. Un manuel PDF explique le fonctionnement, il y a le lien vers GitHub pour l’utilisation du script, mais aussi le schéma électrique pour faire vous-même votre circuit. Par manque de temps j’ai préféré directement commander le kit. Pour cela il faudra aller sur Tindie au lien suivant, son tarif est de 23€ ce qui est un bon prix, mais les frais d’envoi vers la France font mal, il faudra ajouter 35$ soit plus que la carte elle-même. J’ai contacté le vendeur et il m’a fait un envoi plus lent pour 14$. J’ai reçu la carte en 15 jours environ.
Lors de l’achat, vous avez 2 options, la première permet de choisir entre un montage simple ou un montage qui permettra d’empiler plusieurs cartes. Le 2e choix permet de sélectionner une version montée ou à faire vous-même, il y aura juste les composants à souder. Je suis parti sur un kit à souder et en version simple. Pour le montage, rien de compliqué… La notice explique l’ordre de montage des composants. Vous remarquez, j’ai changé le connecteur « Header » par un modèle possédant des broches plus longues. Cela permet d’utiliser les ports GPIO. Comme indiqué plus haut, il est possible de l’avoir dès la commande, mais j’ai mal interprété les différences entre les 2 choix. Je ne vous cache pas que ce n’est pas forcément simple de les avoir en France. Je suis passé par un site français connu pour le Raspberry, mais j’ai reçu un connecteur normal (court à souder). Après réclamation ils m’ont confirmé qu’ils avaient la référence et me les revoient. Surprise, je reçois encore les mêmes !
On remarque qu’il y a un espace « breadboard » afin de pouvoir alimenter d’autres équipements avec les différents voltages disponibles par l’alimentation. Il faudra souder des connecteurs pins. Une fois des pins ajoutés, cela vous donne quelques connexions supplémentaires. J’en avais besoin pour mon projet. Seule la première ligne fournit une tension, il faudra faire un pont sur tous les pins. Je n’ai pas réussi à le faire avec simplement de l’étain, n’ayant pas de piste cuivre… il ne tenait pas.
Une fois la carte prête, montez là sur votre Raspberry. Il vaut mieux la monter avant d’installer le script qui va gérer les allumages et les arrêts. Branché sur les connecteurs du côté un bouton-poussoir et une LED. Il vous suffit de faire vos commandes habituelles pour arrêter et redémarrer votre Pi. Pouvez aussi utiliser le bouton directement, un appui court ferra un redémarrage du Pi et un appui long un arrêt.
Pour vos futurs ajouts de branchements sur les connecteurs GPIO, le manuel indique que le script utilise « Please note that this script requires the use of GPIO 4 (pin 16, ‘Boot Ok’) and GPIO 5 (pin 18, ‘Shutdown’)« . Attention, car si vous faites une recherche pour avoir le schéma des ports GPIO vous arriverez le plus souvent sur le type d’image de gauche. Cette carte est très pratique pour les gros projets qui demandent plusieurs sources d’alimentation et un peu de puissance avec une alimentation plus importante que 3A est nécessaire. Elle fonctionne très bien et le circuit est de qualité. Je dois juste remonter un problème à son concepteur. J’utilise cette carte pour mon serveur d’impression 3D Octoprint.
D'autres sont utilisées pour l'alimentation. 2 pins 5V et 1 pin 3.3V, et une poignées de GND sont réparties et pourront nous servir à alimenter quelques composants. On peut compter sur environ 1.5A de la part du 5V, avec une bonne alimentation. A priori, la pin 3.3V doit pouvoir fournir environ 500 mA. Toutes les autres pin sont appelées GPIO (General Purpose Input Output). Elles peuvent donc indifféremment être utilisées en entrée ou en sortie digitale).
Attention, néanmoins, certaines sont utilisées par certains protocoles de communication: i2C, SPI, Uart. Ces broches sont parfois légèrement différentes des autres (résistance en Pull Up par exemple). Il est possible d'utiliser des nappes pour déporter les connections facilement sur une plaque de prototypage, et souvent les références sont rappelées sur la PCB. Enfin, il est possible de retrouver toutes ces infos directement dans le terminal de Rapbian, via la commande pinout tapée dans un terminal. Cette commande dépend du paquet gpiozero installé par défaut dans Raspbian.
On touche ici à la partie la moins drôle de cette affaire. Chaque Pin GPIO peut avoir une numérotation différente suivant le langage que l'on utilise. La numérotation physique est la plus simple: On compte les pin dans l'ordre, de haut en bas, de gauche à droite. La numérotation Broadcom (BCM) est celle utilisée par Processing par exemple, et correspond au branchement interne du processeur. Mais il existe d'autre manière de les numéroter, (WiringPi par exemple).
Avant de commencer à programmer, il est important de savoir quelle numérotation utilise le langage choisi. Toutes sauf GPIO02 et GPIO03, ont des résistances internes en pullup ou pulldown qui peuvent être activées par une commande logicielle. Puisque les niveaux logiques sont 3.3V, il est donc important de prendre ses précautions lorsque l'on travaille avec des composants ou des microcontrôleurs qui travaillent en 5V. Par exemple, un capteur qui travaillerait passerait une sortie à 5V lorsqu'il détecterait un mouvement pourrait endommager la pin sur laquelle il serait branchée. Il faut envisager un pont diviseur de tension à l'aide de résistances appropriées.
Aucune entrée GPIO ne peut lire directement d'entrée analogique. A noter, il faudra aller activer ces protocoles en tapant sudo raspi-config dans un terminal pour que cela soit opérationnel. Voici quelques exemples, pour ne pas commencer de zéro. Tous peuvent être mis en place avec un bouton, une led et une résistance.
Une librairie (hardware I/O) a été développée pour utiliser les GPIO du Raspberry Pi. De même, une version spécifique de Processing a été développée pour tourner sous Arm. Il est intéressant de noter que les états des GPIO peuvent être lus ou modifiés directement depuis la ligne de commande! Cette méthode est à privilégier pour les utilisateurs avec le terminal, mais elle est très puissante.
Le bus de communication i2c a été inventé en 1982 par le constructeur Philips, dans le but de faire communiquer des composants électroniques, des capteurs, des circuits à l'intérieur d'un appareil. Il est très courant et très facilement utilisable dans un microcontrôleur. Plusieurs équipements, maîtres ou esclaves, peuvent être connectés au bus (jusqu'à 255). Les échanges ont toujours lieu entre un seul maître et un (ou tous les) esclave(s), toujours à l'initiative du maître (jamais de maître à maître ou d'esclave à esclave).
Cependant, rien n'empêche un composant de passer du statut de maître à esclave et réciproquement. Il ne faut également pas oublier la masse qui doit être commune aux équipements. Le code de base à injecter dans l'arduino, selon le modèle de notre tuto. * U1UXD is unused and can be used for your projects.
Nous avons mentionné plus tôt que le nouveau Raspberry Pi 2 & B + ne peut pas être rétro-alimenté via les ports USB en raison de la nouvelle réglementation sur les cartes. Si vous mettez le port USB sous tension lorsque votre Pi est éteint, il ne démarre pas.
Un vendeur m'a déconseillé d'utiliser une Alim 2.5 A sur le port micro USB. 2.5A sur la microUSB ça ne le fera pas. Le 5 et le 12 pour des "trucs de puissance" OK.
Je souhaite m'inspirer du projet voron pour ne plus avoir qu'un seul cordon d'alimentation. Est ce bon pour le matériel de l'utiliser comme cela? J'ai vu des vidéo où un convertisseur de tension type LM2596S était utilisé en coupant le câble USB-C de l'alimentation officielle et en le soudant sur le convertisseur. Sur le GPIO passer de la puissance via des connecteurs Dupond me parait moins fiable que via une soudure (bien faite).
| Broche | Fonction | Tension | Courant maximal |
|---|---|---|---|
| 2 et 4 | 5V | 5V | 1.5A (combiné) |
| 1 | 3.3V | 3.3V | 500mA |
| 6, 9, 14, 20, 25, 30, 34, 39 | GND | 0V | - |
| Autres broches | GPIO | 3.3V | Dépend de la configuration |
tags: #alimenter #raspberry #pi #par #gpio
Vrac zéro déchet et Primeurs de saison au plus proche de chez vous à Thorigné-Fouillard près de rennes en Ille et Vilaine 32
© 2021 - Du bocal à l'assiette - Tous droits réservés / création web : 6cyic