🛠 Maîtriser les GPIO sur Banana Pi BPI-CM5
Objectifs
Ce tutoriel vous guide dans la manipulation des broches d'Entrée/Sortie (GPIO) de votre Banana Pi BPI-CM5. Le module, bien que compact (55x40 mm), offre une flexibilité remarquante grâce à ses connecteurs Board-to-Board compatibles avec le Raspberry Pi CM4. Nous allons configurer une sortie pour allumer une LED et une entrée pour détecter l'appui d'un bouton. Cette pratique est fondamentale pour comprendre comment votre système Linux (Ubuntu, Debian ou Armbian) interagit avec le monde physique via le SoC Amlogic A311D2.
Matériel nécessaire
- Une carte Banana Pi BPI-CM5 installée sur une carte porteuse (Carrier Board) compatible CM4.
- Un système d'exploitation Linux installé (recommandé : Armbian ou Ubuntu).
- Une LED (rouge ou verte) et une résistance de 220 à 330 ohms.
- Un bouton-poussoir (tactile).
- Des fils de connexion (Jumpers) mâle-femelle.
- Une breadboard (platine de prototypage) pour faciliter le câblage.
- Un terminal SSH ou un écran connecté via le port HDMI 2.1.
Étapes
- Préparation du système : Connectez-vous en SSH ou via le port série. Assurez-vous que votre système est à jour avec
sudo apt update && sudo apt upgrade. Installez les outils de contrôle GPIO si nécessaire :sudo apt install python3-rpi.gpio(bien que spécifique aux Pi, les bibliothèques libgpiod sont souvent plus adaptées aux architectures Amlogic, vérifiez la disponibilité avecsudo apt install python3-gpiodou utilisez le sysfs directement).
- Identification des broches : Consultez la documentation de votre carte porteuse. Les connecteurs B2B exposent les broches selon le standard Raspberry Pi. Repérez une broche configurée en GPIO (par exemple, GPIO17) pour la sortie et une autre (GPIO27) pour l'entrée.
- Câblage de la LED (Sortie) :
- Connectez la patte longue (anode) de la LED à la broche GPIO choisie (ex: GPIO17) via la résistance.
- Connectez la patte courte (cathode) à une broche GND (masse) de la carte porteuse.
- Câblage du bouton (Entrée) :
- Connectez une patte du bouton à la broche GPIO choisie (ex: GPIO27).
- Connectez l'autre patte du bouton au GND.
- *Note* : Vous devrez activer la résistance de pull-up interne dans le logiciel pour éviter les états flottants.
``bash # Exporter la broche 17 (numérotation BCM peut varier, vérifiez avec gpioinfo) echo 17 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio17/direction echo 1 > /sys/class/gpio/gpio17/value # Allume la LED sleep 2 echo 0 > /sys/class/gpio/gpio17/value # Éteint la LED ``
- Test en ligne de commande (Sysfs) : Pour tester rapidement sans programmation complexe, utilisez le dossier sysfs.
``bash echo 27 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio27/direction # Vérifiez l'état (0 si appuyé grâce au pull-up, 1 sinon) cat /sys/class/gpio/gpio27/value ``
- Lecture de l'entrée : Configurez la broche 27 en entrée avec pull-up.
Vérification
Vous devez observer la LED s'allumer et s'éteindre selon les commandes envoyées. En maintenant le bouton appuyé, la commande cat sur la broche d'entrée doit retourner 0. Si rien ne se passe, vérifiez les connexions physiques et assurez-vous d'avoir les droits root (sudo) pour accéder aux fichiers sysfs.
Pour aller plus loin
Une fois les bases maîtrisées, explorez l'utilisation de bibliothèques Python comme libgpiod pour une gestion plus robuste des interruptions (détection d'appui sans boucle d'attente). Vous pouvez également intégrer ces entrées-sorties à des applications utilisant les interfaces avancées du BPI-CM5, comme la capture vidéo via les ports MIPI-CSI ou l'affichage sur les sorties HDMI multiples.