ZeroClaw sur Arduino Uno Q : Guide étape par étape
Exécutez ZeroClaw sur la partie Linux de l’Arduino Uno Q. Telegram fonctionne via WiFi ; le contrôle des GPIO utilise le pont (nécessite une application minimale d’App Lab).
Ce qui est inclus (aucun changement de code nécessaire)
ZeroClaw inclut tout le nécessaire pour Arduino Uno Q. Clonez le dépôt et suivez ce guide, aucun correctif ni code personnalisé requis.
| Composant | Emplacement | Objectif |
|---|---|---|
| Application de pont | firmware/uno-q-bridge/ | Croquis MCU + serveur socket Python (port 9999) pour GPIO |
| Outils de pont | crates/zeroclaw-hardware/src/peripherals/uno_q_bridge.rs | Outils gpio_read / gpio_write qui communiquent avec le pont via TCP |
| Commande de configuration | crates/zeroclaw-hardware/src/peripherals/uno_q_setup.rs | zeroclaw peripheral setup-uno-q déploie le pont via scp + arduino-app-cli |
| Schéma de configuration | board = "arduino-uno-q", transport = "bridge" | Configurable via la passerelle, zerocode ou zeroclaw config set |
Compilez avec --features hardware pour inclure la prise en charge d’Uno Q.
Prérequis
- Arduino Uno Q avec WiFi configuré
- Arduino App Lab installé sur votre ordinateur (pour la configuration initiale de la carte)
arduino-app-clidisponible sur l’Uno Q (préinstallé avec l’image Debian de la carte, utilisé pour le déploiement Bridge)- Clé API pour le LLM (OpenRouter, etc.)
Phase 1 : Configuration initiale d’Uno Q (à faire une seule fois)
1.1 Configurer Uno Q via App Lab
- Téléchargez Arduino App Lab (tar.gz sur Linux).
- Connectez le Uno Q via USB, puis mettez-le sous tension.
- Ouvrez App Lab, connectez-vous à la carte.
- Suivez l’assistant d’installation :
- Définir le nom d’utilisateur et le mot de passe (pour SSH)
- Configurer le WiFi (SSID, mot de passe)
- Appliquez toutes les mises à jour du micrologiciel
- Notez l’adresse IP affichée (par exemple
arduino@192.168.1.42) ou trouvez-la plus tard viaip addr showdans le terminal d’App Lab.
1.2 Vérifier l’accès SSH
sh
ssh arduino@<UNO_Q_IP>
# Enter the password you set
Phase 2 : Installer ZeroClaw sur Uno Q
Option A : Compiler sur l’appareil (plus simple)
sh
# SSH vers Uno Q
ssh arduino@<UNO_Q_IP>
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source ~/.cargo/env
# Installer les dépendances de construction (Debian)
sudo apt-get update
sudo apt-get install -y pkg-config libssl-dev
# Clonez zeroclaw (ou copiez votre projet via scp)
git clone https://github.com/zeroclaw-labs/zeroclaw.git
cd zeroclaw
# Compilation (la compilation sur l'appareil est lente ; effectuez une compilation croisée depuis une machine plus puissante si le temps de compilation est important)
export CARGO_BUILD_JOBS=1 # la compilation sera arrêtée par l'OOM killer en pleine édition de liens sans ceci
cargo build --release --features hardware
# Installer
sudo cp target/release/zeroclaw /usr/local/bin/
Option B : Compilation croisée sur Mac (plus rapide)
sh
# Sur votre Mac — ajoutez la cible aarch64
rustup target add aarch64-unknown-linux-gnu
# Installer le compilateur croisé (macOS ; requis pour l’édition des liens)
brew tap messense/macos-cross-toolchains
brew install aarch64-unknown-linux-gnu
# Construire
CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-gcc cargo build --release --target aarch64-unknown-linux-gnu --features hardware
# Copier vers Uno Q
scp target/aarch64-unknown-linux-gnu/release/zeroclaw arduino@<UNO_Q_IP>:~/
ssh arduino@<UNO_Q_IP> `sudo mv ~/zeroclaw /usr/local/bin/`
Si la compilation croisée échoue, utilisez l’option A et compilez sur l’appareil.
Phase 3 : Configurer ZeroClaw
3.1 Exécuter Quickstart (ou créer la configuration manuellement)
sh
ssh arduino@<UNO_Q_IP>
# Quick config
zeroclaw quickstart --api-key YOUR_OPENROUTER_KEY --model-provider openrouter
3.2 Configuration minimale
Au minimum, configurez une entrée [providers.models.<type>.<alias>] avec api_key / model, une entrée [agents.<alias>] qui la référence via model_provider = "<type>.<alias>", et une entrée [channels.telegram.<alias>] avec votre bot_token. Liez le canal à l’agent via channels = ["telegram.<alias>"] sur l’agent. Laissez [peripherals] désactivé jusqu’à la Phase 4 ci-dessous. Consultez la référence de configuration pour tous les champs.
Phase 4 : Exécuter le démon ZeroClaw
sh
ssh arduino@<UNO_Q_IP>
# Run daemon (Telegram polling works over WiFi)
zeroclaw daemon --host 127.0.0.1 --port 42617
À ce stade : Le chat Telegram fonctionne. Envoyez des messages à votre bot, ZeroClaw répond. Pas encore de GPIO.
Phase 5 : GPIO via pont (ZeroClaw s’en charge)
ZeroClaw inclut l’application Bridge et la commande de configuration.
5.1 Déployer l’application Bridge
Depuis votre ordinateur (avec le dépôt zeroclaw) :
sh
zeroclaw peripheral setup-uno-q --host 192.168.0.48
Depuis Uno Q (connecté via SSH) :
sh
zeroclaw peripheral setup-uno-q
Cela copie l’application Bridge vers ~/ArduinoApps/uno-q-bridge et la démarre.
5.2 Ajouter à la configuration
Activez [peripherals] et ajoutez une entrée [[peripherals.boards]] avec board = "arduino-uno-q" et transport = "bridge".
5.3 Exécuter ZeroClaw
sh
zeroclaw daemon --host 127.0.0.1 --port 42617
Maintenant, lorsque vous envoyez un message à votre bot Telegram « Allumer la LED » ou « Définir la broche 13 à l’état haut », ZeroClaw utilise gpio_write via le pont.
Résumé : Des commandes au démarrage à la fin
| Étape | Commande |
|---|---|
| 1 | Configurer Uno Q dans App Lab (WiFi, SSH) |
| 2 | ssh arduino@<IP> |
| 3 | curl -sSf https://sh.rustup.rs | sh -s -- -y && source ~/.cargo/env |
| 4 | sudo apt-get install -y pkg-config libssl-dev |
| 5 | git clone https://github.com/zeroclaw-labs/zeroclaw.git && cd zeroclaw |
| 6 | export CARGO_BUILD_JOBS=1 && cargo build --release --features hardware |
| 7 | zeroclaw quickstart --api-key KEY --model-provider openrouter |
| 8 | zeroclaw config set channels.telegram.default.bot-token <token> |
| 9 | zeroclaw daemon --host 127.0.0.1 --port 42617 |
| 10 | Envoyez un message à votre bot Telegram : il répond |
| 11 | zeroclaw peripheral setup-uno-q (déploie Bridge) |
| 12 | Ajoutez une carte peripherals avec board = "arduino-uno-q" via la passerelle, zerocode, ou zeroclaw config set |
| 13 | Redémarrez le démon (zeroclaw daemon …), les commandes GPIO fonctionnent désormais |
Dépannage
- “command not found: zeroclaw” : Utilisez le chemin complet :
/usr/local/bin/zeroclawou assurez-vous que~/.cargo/binest dans le PATH. - Telegram ne répond pas : Vérifiez bot_token, allowed_users, et que l’Uno Q a accès à Internet (WiFi).
- Mémoire insuffisante : Gardez les fonctionnalités au minimum (
--features hardwarepour Uno Q) ; envisagezcompact_context = true. - Commandes GPIO ignorées : Assurez-vous que l’application Bridge est en cours d’exécution (
zeroclaw peripheral setup-uno-qla déploie et la démarre). La configuration doit contenirboard = "arduino-uno-q"ettransport = "bridge". - Fournisseur LLM (GLM/Zhipu) : Configurez
[providers.models.glm.<alias>]avecGLM_API_KEYdans l’environnement ou la configuration (le synonyme héritézhipuest fusionné avecglm). ZeroClaw utilise le point de terminaison v4 correct.