Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

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.

ComposantEmplacementObjectif
Application de pontfirmware/uno-q-bridge/Croquis MCU + serveur socket Python (port 9999) pour GPIO
Outils de pontcrates/zeroclaw-hardware/src/peripherals/uno_q_bridge.rsOutils gpio_read / gpio_write qui communiquent avec le pont via TCP
Commande de configurationcrates/zeroclaw-hardware/src/peripherals/uno_q_setup.rszeroclaw peripheral setup-uno-q déploie le pont via scp + arduino-app-cli
Schéma de configurationboard = "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-cli disponible 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

  1. Téléchargez Arduino App Lab (tar.gz sur Linux).
  2. Connectez le Uno Q via USB, puis mettez-le sous tension.
  3. Ouvrez App Lab, connectez-vous à la carte.
  4. 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
  5. Notez l’adresse IP affichée (par exemple arduino@192.168.1.42) ou trouvez-la plus tard via ip addr show dans 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

ÉtapeCommande
1Configurer Uno Q dans App Lab (WiFi, SSH)
2ssh arduino@<IP>
3curl -sSf https://sh.rustup.rs | sh -s -- -y && source ~/.cargo/env
4sudo apt-get install -y pkg-config libssl-dev
5git clone https://github.com/zeroclaw-labs/zeroclaw.git && cd zeroclaw
6export CARGO_BUILD_JOBS=1 && cargo build --release --features hardware
7zeroclaw quickstart --api-key KEY --model-provider openrouter
8zeroclaw config set channels.telegram.default.bot-token <token>
9zeroclaw daemon --host 127.0.0.1 --port 42617
10Envoyez un message à votre bot Telegram : il répond
11zeroclaw peripheral setup-uno-q (déploie Bridge)
12Ajoutez une carte peripherals avec board = "arduino-uno-q" via la passerelle, zerocode, ou zeroclaw config set
13Redé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/zeroclaw ou assurez-vous que ~/.cargo/bin est 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 hardware pour Uno Q) ; envisagez compact_context = true.
  • Commandes GPIO ignorées : Assurez-vous que l’application Bridge est en cours d’exécution (zeroclaw peripheral setup-uno-q la déploie et la démarre). La configuration doit contenir board = "arduino-uno-q" et transport = "bridge".
  • Fournisseur LLM (GLM/Zhipu) : Configurez [providers.models.glm.<alias>] avec GLM_API_KEY dans l’environnement ou la configuration (le synonyme hérité zhipu est fusionné avec glm). ZeroClaw utilise le point de terminaison v4 correct.