🛠 Gérer les entrées-sorties sur la carte Romu
Objectifs
Ce tutoriel vise à comprendre le modèle d'entrées-sorties spécifique de la carte Romu. Contrairement aux cartes de développement classiques, la Romu ne possède pas de broches GPIO accessibles pour brancher des capteurs externes directement. L'objectif est donc de maîtriser l'interaction avec les composants embarqués : la LED RGB, les boutons poussoirs et les pads de débogage. Vous apprendrez à contrôler la sortie lumineuse et à lire l'état des entrées physiques présentes sur le PCB.
Matériel nécessaire
- Une carte Romu de Bitmerse (basée sur RP2354A)
- Un ordinateur avec un port USB-A disponible
- Un câble micro-USB ou USB-C (selon votre configuration de débogage) pour l'alimentation et le flashage si nécessaire
- Un environnement de développement compatible RP2354 (MicroPython ou C/C++ SDK)
- Un fer à souder et des fils fins (optionnel, pour utiliser les pads de débogage)
Étapes
La carte Romu est conçue pour être ultra-compacte (15,5 x 12 mm). Il n'y a pas de connecteurs pour fils Dupont. Toute interaction physique se fait via les composants soudés sur la carte ou les pads de test.
- Comprendre l'absence de GPIO externes
- Identifier les composants d'E/S intégrés
- LED RGB : Une seule LED multicolore permet de signaler l'état du programme.
- Boutons : Des boutons poussoirs sont intégrés pour servir d'entrées numériques simples.
- Pads de débogage : Des points de contact minuscules permettent d'accéder à des signaux internes si nécessaire, mais nécessitent une soudure précise.
Assurez-vous que votre script cible correctement les broches internes. Sur le RP2354, les broches sont adressées numériquement. Pour la LED RGB, vous devrez identifier les broches correspondant aux canaux Rouge, Vert et Bleu.
- Configurer l'environnement MicroPython
Utilisez la bibliothèque machine pour contrôler la LED. Voici un exemple générique pour allumer la LED en rouge : ```python from machine import Pin import time
- Écrire le code de contrôle de la LED
# Remplacez les numéros par les broches réelles de la Romu # (Consultez la datasheet RP2354A pour le mapping exact) led_r = Pin(25, Pin.OUT) led_g = Pin(26, Pin.OUT) led_b = Pin(27, Pin.OUT)
while True: led_r.value(1) # Allume le rouge time.sleep(1) led_r.value(0) # Éteint le rouge time.sleep(1) ```
Les boutons sont généralement configurés en entrée avec une résistance de pull-up interne. Pour détecter une pression : ```python button = Pin(22, Pin.IN, Pin.PULL_UP)
- Lire l'état des boutons
while True: if button.value() == 0: print("Bouton pressé") led_g.value(1) else: led_g.value(0) ```
Connectez la Romu à votre PC via son connecteur USB Type-A intégré. Le périphérique doit apparaître comme un lecteur de masse (mode UF2) ou un port série selon le bootloader. Copiez votre fichier .py sur la carte.
- Flasher le code
Vérification
Après le redémarrage, la LED RGB doit clignoter selon votre programme. Appuyez sur les boutons intégrés pour vérifier que la LED change de couleur ou que le message s'affiche sur le terminal série. Si rien ne se passe, vérifiez les numéros de broches dans la documentation technique du RP2354A, car ils varient selon les configurations matérielles spécifiques de la Romu.
Pour aller plus loin
Pour ajouter des capteurs externes, vous devrez utiliser les pads de débogage. Soudrez des fils très fins sur ces pads pour accéder à des lignes GPIO internes non exposées. Vous pouvez ensuite connecter des capteurs I2C ou analogiques simples, mais cela annule l'avantage de la compacité. Une alternative est d'utiliser la Romu comme périphérique HID (clavier/souris) et de simuler les entrées via le logiciel, plutôt que de gérer le matériel externe directement.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
romu-rgb-led-pwm.inoC/C++ (Pico SDK)romu-hid-keyboard-macro.inoC/C++ (TinyUSB)romu-internal-flash-storage.inoC/C++ (Pico SDK)romu-midi-controller.inoC/C++ (TinyUSB)romu-secure-boot-check.inoC/C++ (Pico SDK)romu-hid-custom-keyboard.inoC++ (Arduino)