Ajout de cartes et d’outils : guide matériel ZeroClaw
Ce guide explique comment ajouter de nouvelles cartes matérielles et des outils personnalisés à ZeroClaw.
Démarrage rapide : Ajouter un tableau via l’interface CLI
sh
# Ajouter un tableau
zeroclaw peripheral add nucleo-f401re /dev/ttyACM0
zeroclaw peripheral add arduino-uno /dev/cu.usbmodem12345
zeroclaw peripheral add rpi-gpio native # pour GPIO Raspberry Pi (Linux)
# Redémarrez le daemon pour appliquer
zeroclaw daemon --host 127.0.0.1 --port 42617
Cartes prises en charge
Les cartes sont identifiées par leur VID/PID USB. Le registre canonique :
| Tableau | Architecture | USB VID:PID |
|---|---|---|
nucleo-f401re | ARM Cortex-M4 | 0x0483:0x374b |
nucleo-f411re | ARM Cortex-M4 | 0x0483:0x3748 |
arduino-uno | AVR ATmega328P | 0x2341:0x0043 |
arduino-uno | Arduino Uno Q / ATmega328P | 0x2341:0x0078 |
arduino-mega | AVR ATmega2560 | 0x2341:0x0042 |
cp2102 | Pont USB-UART | 0x10c4:0xea60 |
cp2102n | Pont USB-UART | 0x10c4:0xea70 |
esp32 | ESP32 (CH340) | 0x1a86:0x7523 |
esp32 | ESP32 (CH340) | 0x1a86:0x55d4 |
La valeur board dans [[peripherals.boards]] est comparée à ces noms du registre (ainsi qu’à quelques alias spécifiques au transport tels que arduino-uno-q / rpi-gpio, gérés dans peripherals/mod.rs).
Configuration manuelle
Les cartes sont configurées sous peripherals et peripherals.boards. Consultez la référence de configuration pour l’index complet des champs, y compris datasheet_dir (source RAG).
Ajout d’une fiche technique (RAG)
Placez les fichiers .md ou .txt dans docs/datasheets/ (ou votre datasheet_dir). Nommez les fichiers par carte : nucleo-f401re.md, arduino-uno.md. Les fichiers sont extraits, découpés en chunks et récupérés dans le contexte de l’agent pour les questions spécifiques à la carte. L’analyse des fiches techniques PDF n’est plus prise en charge à partir de #8519 ; convertissez les PDF en .md ou .txt avant l’indexation.
Alias de point de fixation (Recommandé)
Ajoutez une section ## Alias des broches afin que l’agent puisse mapper « led rouge » → broche 13 :
# My Board
## Pin Aliases
| alias | pin |
|-------------|-----|
| red_led | 13 |
| builtin_led | 13 |
| user_led | 5 |
Ou utilisez le format clé-valeur :
## Pin Aliases
red_led: 13
builtin_led: 13
Ajout d’un nouveau type de carte
- Créer une fiche technique :
docs/datasheets/my-board.mdavec les alias de broches et les informations GPIO. - Ajouter à la configuration :
zeroclaw peripheral add my-board /dev/ttyUSB0 - Implémenter un périphérique (optionnel) : pour les protocoles personnalisés, implémentez le trait
Peripheraldanscrates/zeroclaw-hardware/src/peripherals/et enregistrez-le danscreate_peripheral_tools.
Voir docs/hardware/hardware-peripherals-design.md pour la conception complète.
Ajout d’un outil personnalisé
- Implémentez le trait
Tooldanscrates/zeroclaw-tools/src/. - Enregistrez dans
create_peripheral_tools(pour les outils matériels) ou dans le registre des outils de l’agent. - Ajoutez une description de l’outil à
tool_descsde l’agent danscrates/zeroclaw-runtime/src/agent/loop_.rs.
Référence CLI
Consultez la référence CLI générée pour les sous-commandes zeroclaw peripheral et zeroclaw hardware.
Dépannage
- Port série introuvable : Sur macOS, utilisez
/dev/cu.usbmodem*; sur Linux, utilisez/dev/ttyACM0ou/dev/ttyUSB0. - Compiler avec le matériel :
cargo build --features hardware - Probe-rs pour Nucleo :
cargo build --features hardware,probe