ZeroClaw en Arduino Uno Q: Guía paso a paso
Ejecuta ZeroClaw en la parte de Linux del Arduino Uno Q. Telegram funciona a través de WiFi; el control de GPIO utiliza el puente (requiere una aplicación mínima de App Lab).
Qué incluye (sin necesidad de cambios en el código)
ZeroClaw incluye todo lo necesario para Arduino Uno Q. Clona el repositorio y sigue esta guía, no se requieren parches ni código personalizado.
| Componente | Ubicación | Propósito |
|---|---|---|
| Aplicación de puente | firmware/uno-q-bridge/ | Boceto de MCU + servidor de sockets Python (puerto 9999) para GPIO |
| Herramientas de puente | crates/zeroclaw-hardware/src/peripherals/uno_q_bridge.rs | Herramientas gpio_read / gpio_write que se comunican con el Bridge a través de TCP |
| Comando de configuración | crates/zeroclaw-hardware/src/peripherals/uno_q_setup.rs | zeroclaw peripheral setup-uno-q implementa el puente mediante scp + arduino-app-cli |
| Esquema de configuración | board = "arduino-uno-q", transport = "bridge" | Configurable a través del gateway, zerocode, o zeroclaw config set |
Compila con --features hardware para incluir la compatibilidad con Uno Q.
Requisitos previos
- Arduino Uno Q con WiFi configurado
- Arduino App Lab instalado en tu computadora (para la configuración inicial de la placa)
arduino-app-clidisponible en la Uno Q (preinstalado con la imagen de Debian de la placa, usado para el despliegue de Bridge)- Clave API para LLM (OpenRouter, etc.)
Fase 1: Configuración inicial de Uno Q (única)
1.1 Configurar Uno Q a través de App Lab
- Descarga Arduino App Lab (tar.gz en Linux).
- Conecta el Uno Q mediante USB y enciéndelo.
- Abre App Lab y conéctate a la placa.
- Sigue el asistente de configuración:
- Establecer nombre de usuario y contraseña (para SSH)
- Configurar WiFi (SSID, contraseña)
- Aplicar cualquier actualización de firmware
- Tenga en cuenta la dirección IP mostrada (por ejemplo,
arduino@192.168.1.42) o búsquela más tarde medianteip addr showen la terminal de App Lab.
1.2 Verificar el acceso SSH
sh
ssh arduino@<UNO_Q_IP>
# Enter the password you set
Fase 2: Instalar ZeroClaw en Uno Q
Opción A: Compilar en el dispositivo (más sencillo)
sh
# SSH en 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
# Instalar dependencias de compilación (Debian)
sudo apt-get update
sudo apt-get install -y pkg-config libssl-dev
# Clona zeroclaw (o copia tu proyecto con scp)
git clone https://github.com/zeroclaw-labs/zeroclaw.git
cd zeroclaw
# Compilación (la compilación en el dispositivo es lenta; haz compilación cruzada desde una máquina más potente si el tiempo de compilación es importante)
export CARGO_BUILD_JOBS=1 # build will be OOM-killed mid-link without this
cargo build --release --features hardware
# Instalar
sudo cp target/release/zeroclaw /usr/local/bin/
Opción B: Compilación cruzada en Mac (más rápido)
sh
# En tu Mac — agrega el objetivo aarch64
rustup target add aarch64-unknown-linux-gnu
# Instalar el compilador cruzado (macOS; necesario para el enlazado)
brew tap messense/macos-cross-toolchains
brew install aarch64-unknown-linux-gnu
# Construir
CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-gcc cargo build --release --target aarch64-unknown-linux-gnu --features hardware
# Copiar a 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 compilación cruzada falla, utiliza la Opción A y compila en el dispositivo.
Fase 3: Configurar ZeroClaw
3.1 Ejecutar Quickstart (o crear la configuración manualmente)
sh
ssh arduino@<UNO_Q_IP>
# Quick config
zeroclaw quickstart --api-key YOUR_OPENROUTER_KEY --model-provider openrouter
3.2 Configuración mínima
Como mínimo, configura una entrada [providers.models.<type>.<alias>] con api_key / model, una [agents.<alias>] que la referencie mediante model_provider = "<type>.<alias>", y una [channels.telegram.<alias>] con tu bot_token. Vincula el canal al agente mediante channels = ["telegram.<alias>"] en el agente. Deja [peripherals] deshabilitado hasta la Fase 4 a continuación. Consulta la referencia de configuración para ver todos los campos.
Fase 4: Ejecutar el demonio ZeroClaw
sh
ssh arduino@<UNO_Q_IP>
# Run daemon (Telegram polling works over WiFi)
zeroclaw daemon --host 127.0.0.1 --port 42617
En este punto: El chat de Telegram funciona. Envía mensajes a tu bot, ZeroClaw responde. Aún sin GPIO.
Fase 5: GPIO a través del puente (ZeroClaw se encarga de ello)
ZeroClaw incluye la aplicación Bridge y el comando de configuración.
5.1 Desplegar la aplicación Bridge
Desde tu computadora (con el repositorio zeroclaw):
sh
zeroclaw peripheral setup-uno-q --host 192.168.0.48
Desde Uno Q (conectado por SSH):
sh
zeroclaw peripheral setup-uno-q
Esto copia la aplicación Bridge a ~/ArduinoApps/uno-q-bridge y la inicia.
5.2 Agregar a la configuración
Habilita [peripherals] y añade una entrada [[peripherals.boards]] con board = "arduino-uno-q" y transport = "bridge".
5.3 Ejecutar ZeroClaw
sh
zeroclaw daemon --host 127.0.0.1 --port 42617
Ahora, cuando le envías un mensaje a tu bot de Telegram con “Encender el LED” o “Establecer el pin 13 en alto”, ZeroClaw utiliza gpio_write a través del Bridge.
Resumen: Comandos de inicio a fin
| Paso | Comando |
|---|---|
| 1 | Configura Uno Q en 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 | Envía un mensaje a tu bot de Telegram: responde |
| 11 | zeroclaw peripheral setup-uno-q (despliega Bridge) |
| 12 | Agrega una placa peripherals con board = "arduino-uno-q" mediante el gateway, zerocode o zeroclaw config set |
| 13 | Reinicia el daemon (zeroclaw daemon …), los comandos GPIO ahora funcionan |
Solución de problemas
- “command not found: zeroclaw”: Use la ruta completa:
/usr/local/bin/zeroclawo asegúrese de que~/.cargo/binesté en PATH. - Telegram no responde: Verifica bot_token, allowed_users y que el Uno Q tenga internet (WiFi).
- Sin memoria: Mantén las funcionalidades al mínimo (
--features hardwarepara Uno Q); considera usarcompact_context = true. - Comandos GPIO ignorados: Asegúrese de que la aplicación Bridge esté en ejecución (
zeroclaw peripheral setup-uno-qla despliega e inicia). La configuración debe tenerboard = "arduino-uno-q"ytransport = "bridge". - Proveedor LLM (GLM/Zhipu): Configura
[providers.models.glm.<alias>]conGLM_API_KEYen el entorno o la configuración (el sinónimo heredadozhipuse consolida englm). ZeroClaw usa el endpoint v4 correcto.