🛠 Pilotage GPIO avancé sur Arduino UNO Q
Objectifs
Ce tutoriel vise à maîtriser l'interaction bas niveau entre les nœuds Modulino et le système Linux de l'Arduino UNO Q. Vous apprendrez à mapper des entrées physiques (boutons, joystick) sur des événements système et à contrôler des sorties (pixels) pour des retours haptiques ou visuels complexes, dépassant la simple émulation souris/clavier.
Matériel nécessaire
- Bundle Arduino UNO Q SBC Controller (carte UNO Q 4GB)
- Nœuds Modulino : Boutons, Joystick, Bouton rotatif, Pixels
- Câble USB-C 24 broches
- Alimentation USB-C 45W
- Hub USB-C 8-en-1 (pour accès terminal SSH)
- Environnement Arduino App Lab installé
Étapes
- Connexion physique : Assemblez la carte UNO Q dans sa coque 3D. Connectez les nœuds Modulino aux ports dédiés de la carte. Assurez-vous que le hub USB-C est branché pour l'accès réseau et écran.
- Accès système : Ouvrez un terminal SSH vers l'UNO Q via l'adresse IP locale. Vérifiez la détection des périphériques HID avec la commande
lsusbpour confirmer la présence des Modulinos.
- Configuration App Lab : Lancez Arduino App Lab. Sélectionnez le projet « Custom Controller ». Dans l'onglet « Mapping », associez le bouton physique à une touche clavier spécifique (ex:
KEY_ESC) et le joystick à des axes de souris.
import hid dev = hid.device(vid=0x2341, pid=0x0050) dev.open_path(dev.enumerate()[0]['path']) print(dev.read(64))
- Script de contrôle GPIO : Pour un contrôle avancé, créez un script Python utilisant la bibliothèque
hidapiou les interfaces GPIO directes si exposées. Exemple de lecture d'état :```python
5. **Mappage dynamique** : Utilisez `evtest` pour surveiller les événements bruts. Créez un fichier de règles `udev` pour déclencher un script shell lorsqu'un bouton Modulino est pressé, permettant d'exécuter des commandes système (ex: lancer une application Home Assistant).
6. **Feedback visuel** : Configurez les pixels Modulino pour s'allumer selon l'état du système. Dans App Lab, liez la sortie LED à un signal GPIO logique ou utilisez un script pour envoyer des paquets HID de contrôle LED.
## Vérification
Exécutez `evtest` dans le terminal. Appuyez sur le bouton Modulino : vous devez voir un événement `EV_KEY` généré. Vérifiez que les pixels s'illuminent lors de l'action. Si le mapping ne fonctionne pas, vérifiez les permissions udev et redémarrez le service de gestion des périphériques.
## Pour aller plus loin
Explorez la création de profils multiples pour basculer entre un mode « Jeu Rétro » et un mode « Domotique ». Intégrez des capteurs externes via les GPIO étendus pour une réactivité environnementale accrue.