Hướng dẫn này giải thích cách thêm board phần cứng mới và tool tùy chỉnh vào ZeroClaw.
# Thêm board (cập nhật ~/.zeroclaw/config.toml)
zeroclaw peripheral add nucleo-f401re /dev/ttyACM0
zeroclaw peripheral add arduino-uno /dev/cu.usbmodem12345
zeroclaw peripheral add rpi-gpio native # cho Raspberry Pi GPIO (Linux)
# Khởi động lại daemon để áp dụng
zeroclaw daemon --host 127.0.0.1 --port 3000| Board | Transport | Ví dụ đường dẫn |
|---|---|---|
| nucleo-f401re | serial | /dev/ttyACM0, /dev/cu.usbmodem* |
| arduino-uno | serial | /dev/ttyACM0, /dev/cu.usbmodem* |
| arduino-uno-q | bridge | (IP của Uno Q) |
| rpi-gpio | native | native |
| esp32 | serial | /dev/ttyUSB0 |
Chỉnh sửa ~/.zeroclaw/config.toml:
[peripherals]
enabled = true
datasheet_dir = "docs/datasheets" # tùy chọn: RAG cho "turn on red led" → pin 13
[[peripherals.boards]]
board = "nucleo-f401re"
transport = "serial"
path = "/dev/ttyACM0"
baud = 115200
[[peripherals.boards]]
board = "arduino-uno"
transport = "serial"
path = "/dev/cu.usbmodem12345"
baud = 115200Đặt file .md hoặc .txt vào docs/datasheets/ (hoặc datasheet_dir của bạn). Đặt tên file theo board: nucleo-f401re.md, arduino-uno.md.
Thêm mục ## Pin Aliases để agent có thể ánh xạ "red led" → pin 13:
# My Board
## Pin Aliases
| alias | pin |
|-------------|-----|
| red_led | 13 |
| builtin_led | 13 |
| user_led | 5 |Hoặc dùng định dạng key-value:
## Pin Aliases
red_led: 13
builtin_led: 13Với feature rag-pdf, ZeroClaw có thể lập chỉ mục file PDF:
cargo build --features hardware,rag-pdfĐặt file PDF vào thư mục datasheet. Chúng sẽ được trích xuất và chia nhỏ thành các đoạn cho RAG.
- Tạo datasheet —
docs/datasheets/my-board.mdvới pin aliases và thông tin GPIO. - Thêm vào config —
zeroclaw peripheral add my-board /dev/ttyUSB0 - Triển khai peripheral (tùy chọn) — Với giao thức tùy chỉnh, hãy implement trait
Peripheraltrongsrc/peripherals/và đăng ký trongcreate_peripheral_tools.
Xem docs/hardware-peripherals-design.md để hiểu toàn bộ thiết kế.
- Implement trait
Tooltrongsrc/tools/. - Đăng ký trong
create_peripheral_tools(với hardware tool) hoặc tool registry của agent. - Thêm mô tả tool vào
tool_descscủa agent trongsrc/agent/loop_.rs.
| Lệnh | Mô tả |
|---|---|
zeroclaw peripheral list |
Liệt kê các board đã cấu hình |
zeroclaw peripheral add <board> <path> |
Thêm board (ghi vào config) |
zeroclaw peripheral flash |
Nạp firmware Arduino |
zeroclaw peripheral flash-nucleo |
Nạp firmware Nucleo |
zeroclaw hardware discover |
Liệt kê thiết bị USB |
zeroclaw hardware info |
Thông tin chip qua probe-rs |
- Không tìm thấy serial port — Trên macOS dùng
/dev/cu.usbmodem*; trên Linux dùng/dev/ttyACM0hoặc/dev/ttyUSB0. - Build với hardware —
cargo build --features hardware - probe-rs cho Nucleo —
cargo build --features hardware,probe