ZeroClaw sur Nucleo-F401RE : guide pas à pas
Exécutez ZeroClaw sur votre hôte Mac ou Linux. Connectez une carte Nucleo-F401RE via USB. Contrôlez les GPIO (LED, broches) via Telegram ou CLI.
Obtenir les informations de la carte via Telegram (Aucun firmware requis)
ZeroClaw peut lire les informations de la puce depuis le Nucleo via USB sans flasher de firmware. Envoyez un message à votre bot Telegram :
- « Quelles informations sur la carte ai-je ? »
- “Informations de la carte”
- « Quel matériel est connecté ? »
- “Informations sur la puce”
L’agent utilise l’outil hardware_board_info pour retourner le nom de la puce, l’architecture et la carte mémoire. Avec la fonctionnalité probe, il lit les données en temps réel via USB/SWD ; sinon, il retourne les informations statiques du datasheet.
Config : Utilisez zeroclaw config set peripherals.boards.0.board nucleo-f401re, transport serial et path <your-serial-port>. Consultez la référence de configuration pour tous les champs.
Alternative CLI :
sh
cargo build --features hardware,probe
zeroclaw hardware info
zeroclaw hardware discover
Ce qui est inclus (aucun changement de code nécessaire)
ZeroClaw inclut tout ce qui est nécessaire pour le Nucleo-F401RE :
| Composant | Emplacement | Objectif |
|---|---|---|
| Microprogramme | firmware/nucleo/ | Embassy Rust : USART2 (115200), gpio_read, gpio_write |
| Périphérique série | crates/zeroclaw-hardware/src/peripherals/serial.rs | Protocole JSON sur liaison série (identique à Arduino/ESP32) |
| Commande Flash | zeroclaw peripheral flash-nucleo | Compile le firmware, le flashe via probe-rs |
Protocole : JSON délimité par des sauts de ligne. Requête : {"id":"1","cmd":"gpio_write","args":{"pin":13,"value":1}}. Réponse : {"id":"1","ok":true,"result":"done"}.
Prérequis
- Carte Nucleo-F401RE
- Câble USB (USB-A vers Mini-USB ; Nucleo intègre un ST-Link)
- Pour le flashage :
cargo install probe-rs-tools --locked(ou utilisez le script d’installation)
Phase 1 : Flasher le firmware
1.1 Connecter Nucleo
- Connectez le Nucleo à votre Mac/Linux via USB.
- La carte apparaît comme un périphérique USB (ST-Link). Aucun pilote séparé n’est nécessaire sur les systèmes modernes.
1.2 Flash via ZeroClaw
Depuis la racine du dépôt zeroclaw :
sh
zeroclaw peripheral flash-nucleo
Cela construit firmware/nucleo et exécute probe-rs run --chip STM32F401RETx. Le firmware s’exécute immédiatement après le flashage.
1.3 Flash manuel (alternative)
sh
cd firmware/nucleo
cargo build --release --target thumbv7em-none-eabihf
probe-rs run --chip STM32F401RETx target/thumbv7em-none-eabihf/release/nucleo
Phase 2 : Trouver le port série
- macOS :
/dev/cu.usbmodem*ou/dev/tty.usbmodem*(par exemple/dev/cu.usbmodem101) - Linux :
/dev/ttyACM0(ou vérifiezdmesgaprès avoir branché l’appareil)
USART2 (PA2/PA3) est relié au port COM virtuel du ST-Link, de sorte que l’hôte voit un seul dispositif série.
Phase 3 : Configurer ZeroClaw
Activez [peripherals] et ajoutez une entrée [[peripherals.boards]] pour la Nucleo (board = "nucleo-f401re", transport = "serial", path = "/dev/cu.usbmodem101", à adapter selon votre port série). Consultez la référence de configuration pour tous les champs.
Phase 4 : Exécuter et tester
sh
zeroclaw daemon --host 127.0.0.1 --port 42617
Ou utilisez l’agent directement :
sh
zeroclaw agent -a assistant --message « Allumer la LED sur la broche 13 »
Broche 13 = PA5 = LED utilisateur (LD2) sur Nucleo-F401RE.
Résumé : Commandes
| Étape | Commande |
|---|---|
| 1 | Connecter le Nucleo via USB |
| 2 | cargo install probe-rs-tools --locked |
| 3 | zeroclaw peripheral flash-nucleo |
| 4 | zeroclaw config set peripherals.boards.0.path <serial-port> (ainsi que board et transport s’ils ne sont pas encore définis) |
| 5 | zeroclaw daemon ou zeroclaw agent -a assistant -m "Turn on LED" |
Dépannage
- flash-nucleo non reconnu : Compilez depuis le dépôt :
cargo run --features hardware -- peripheral flash-nucleo. La sous-commande n’est disponible que dans la version - probe-rs introuvable :
cargo install probe-rs-tools --locked(le crateprobe-rsest une bibliothèque ; la CLI se trouve dansprobe-rs-tools) - Aucune sonde détectée : Vérifiez que la Nucleo est connectée. Essayez un autre câble/port USB.
- Port série introuvable : Sous Linux, ajoutez l’utilisateur au groupe
dialout:sudo usermod -a -G dialout $USER, puis déconnectez-vous/reconnectez-vous. - Commandes GPIO ignorées : Vérifiez que
pathdans la configuration correspond à votre port série. Exécutezzeroclaw peripheral listpour vérifier.