🛠 Interfacer GPIO et Capteurs avec LattePanda Mu Ultra
Objectifs
Ce tutoriel vise à maîtriser l'interaction physique entre le module LattePanda Mu Ultra et le monde extérieur. Bien que le Mu Ultra soit un module de calcul x86 puissant, il nécessite une carte porteuse (comme la Mini Carrier Board fournie) pour exposer les interfaces d'entrée/sortie. Nous allons configurer les broches GPIO pour allumer une LED et lire l'état d'un bouton poussoir, illustrant ainsi les principes fondamentaux de l'électronique embarquée sur Linux.
Matériel nécessaire
- Module LattePanda Mu Ultra (Core Ultra 5 ou 7)
- Carte porteuse Mini Carrier Board
- Alimentation électrique adéquate
- 1 LED (couleur au choix) et une résistance de 220 à 330 Ohms
- 1 Bouton poussoir
- Fils de connexion (Jumpers)
- Système d'exploitation : Ubuntu 24.04+ ou 26.04 LTS (Noyau 7.0.0-38 recommandé)
- Terminal SSH ou accès local
Étapes
Assurez-vous que votre système est à jour et que le pilote GPIO est chargé. Sous Linux, les interfaces GPIO sont souvent exposées via le système de fichiers sysfs ou via des bibliothèques comme libgpiod. Vérifiez la présence des contrôleurs matériels : ``bash dmesg | grep gpio `` Notez que les broches physiques sur la Mini Carrier Board correspondent à des numéros de GPIO spécifiques dans le contrôleur Intel. Il est crucial de consulter la documentation technique spécifique à la Mini Carrier Board pour la table de correspondance exacte (Pinout), car les numéros logiques ne correspondent pas toujours aux numéros physiques.
- Vérification du système et des pilotes
Installez les outils nécessaires pour manipuler les GPIO en ligne de commande : ``bash sudo apt update sudo apt install gpiod libgpiod2 ``
- Installation des outils GPIO
Utilisez l'outil gpioinfo pour lister les lignes GPIO accessibles et leur état actuel. Identifiez une broche configurée en sortie (Output) pour la LED et une en entrée (Input) pour le bouton. ``bash gpioinfo ``
- Identification des broches disponibles
- Câblage matériel
- LED : Connectez la patte longue (anode) de la LED à une broche GPIO configurée en sortie via la résistance. Connectez la patte courte (cathode) à la masse (GND).
- Bouton : Connectez une patte du bouton à une broche GPIO configurée en entrée (avec résistance de pull-up/down si nécessaire) et l'autre patte à la masse (GND).
Pour allumer la LED, supposez que la broche identifiée est gpiochip0 ligne 12 (à adapter selon votre carte) : ``bash gpioset gpiochip0 12=1 ` Pour l'éteindre : `bash gpioset gpiochip0 12=0 ``
- Contrôle de la LED via la ligne de commande
Pour lire l'état d'une broche en entrée (ex: ligne 13) : ``bash gpioget gpiochip0 13 `` Maintenez le bouton appuyé et relancez la commande pour voir la valeur changer (0 ou 1).
- Lecture du bouton poussoir
Vérification
Vous devez observer la LED s'allumer et s'éteindre en fonction des commandes envoyées. Lors de l'appui sur le bouton, la commande gpioget doit retourner une valeur logique différente de celle obtenue lorsque le bouton est relâché. Si rien ne se passe, vérifiez les connexions physiques et assurez-vous que les broches ne sont pas réservées par le système d'exploitation ou un autre pilote.
Pour aller plus loin
Une fois les bases maîtrisées, explorez l'utilisation de bibliothèques Python comme RPi.GPIO (adaptée) ou libgpiod-python pour créer des scripts d'automatisation. Vous pouvez également intégrer des capteurs I2C ou SPI, largement supportés par l'architecture x86 du Mu Ultra, pour créer des stations de monitoring environnemental utilisant la puissance de calcul IA pour l'analyse locale des données.
Autres tutoriels pour cette carte
- Premier démarrage du LattePanda Mu Ultra
- Premiers pas avec les GPIO sur LattePanda Mu Ultra
- Mise en route avancée du LattePanda Mu Ultra
- Maîtriser les E/S et l'IA embarquée sur LattePanda Mu Ultra
- Déploiement d'une inférence IA locale avec stockage NVMe haute performance
- Vérifier la détection du GPU Intel Arc sous Linux
Exemples de code pour cette carte
lp-mu-gpio-gpiod.shbashlp-mu-i2c-sensor.pypythonlp-mu-nvme-benchmark.shbashlp-mu-opencv-gpu.pypythonlp-mu-ethernet-monitor.pypythonlattepanda-mu-ultra-npu-inference-onnx-6.inopython