Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

ZeroClaw on Nucleo-F401RE: ステップバイステップガイド

Mac または Linux ホストで ZeroClaw を実行します。Nucleo-F401RE を USB 経由で接続します。Telegram または CLI 経由で GPIO (LED、ピン) を制御します。


Telegram 経由でボード情報を取得 (ファームウェア不要)

ZeroClaw は Nucleo から ファームウェアをフラッシュせずに USB 経由でチップ情報を読み取ることができます。Telegram ボットにメッセージを送信:

  • “What board info do I have?”
  • “Board info”
  • “What hardware is connected?”
  • “Chip info”

エージェントは hardware_board_info ツールを使用して、チップ名、アーキテクチャ、メモリマップを返します。probe 機能を使用すると、USB/SWD 経由でライブデータを読み取ります。そうでない場合は静的データシート情報を返します。

設定: zeroclaw config set peripherals.boards.0.board nucleo-f401retransport serialpath <your-serial-port> を使用します。すべてのフィールドについては 設定リファレンス を参照してください。

CLI 代替案:

sh

cargo build --features hardware,probe
zeroclaw hardware info
zeroclaw hardware discover

含まれるもの(コード変更は不要)

ZeroClaw には Nucleo-F401RE 用のすべてが含まれています:

コンポーネント場所目的
ファームウェアfirmware/nucleo/Embassy Rust: USART2 (115200)、gpio_read、gpio_write
シリアル周辺機器crates/zeroclaw-hardware/src/peripherals/serial.rsJSON-over-serialプロトコル (Arduino/ESP32と同じ)
Flashコマンドzeroclaw peripheral flash-nucleoファームウェアをビルドしてprobe-rsでフラッシュします

プロトコル: 改行区切りJSON。リクエスト: {"id":"1","cmd":"gpio_write","args":{"pin":13,"value":1}}。レスポンス: {"id":"1","ok":true,"result":"done"}


前提条件

  • Nucleo-F401REボード
  • USBケーブル (USB-A to Mini-USB; Nucleoにはビルトイン ST-Link)
  • フラッシュの場合: cargo install probe-rs-tools --locked (またはインストールスクリプトを使用)

フェーズ 1: ファームウェアをフラッシュ

1.1 Nucleoを接続

  1. NucleoをMac/LinuxにUSB経由で接続します。
  2. ボードはUSBデバイス (ST-Link) として表示されます。最新のシステムでは別途ドライバは不要です。

1.2 ZeroClawでフラッシュ

zeroclaw リポジトリのルートから:

sh

zeroclaw peripheral flash-nucleo

これは firmware/nucleo をビルドして probe-rs run --chip STM32F401RETx を実行します。ファームウェアはフラッシュ後すぐに実行されます。

1.3 手動フラッシュ (代替案)

sh

cd firmware/nucleo
cargo build --release --target thumbv7em-none-eabihf
probe-rs run --chip STM32F401RETx target/thumbv7em-none-eabihf/release/nucleo

フェーズ 2: シリアルポートを見つける

  • macOS: /dev/cu.usbmodem* または /dev/tty.usbmodem* (例: /dev/cu.usbmodem101)
  • Linux: /dev/ttyACM0 (またはプラグイン後に dmesg を確認)

USART2 (PA2/PA3) はST-Linkの仮想COMポートに接続されているため、ホストは1つのシリアルデバイスを認識します。


Phase 3: Configure ZeroClaw

[peripherals] を有効にして、Nucleo 用の [[peripherals.boards]] エントリ(board = "nucleo-f401re"transport = "serial"path = "/dev/cu.usbmodem101"、お使いのシリアルポートに合わせて調整してください)を追加します。すべてのフィールドについては Config リファレンスを参照してください。


フェーズ 4: 実行とテスト

sh

zeroclaw daemon --host 127.0.0.1 --port 42617

または、エージェントを直接使用します:

sh

zeroclaw agent -a assistant --message "ピン13のLEDを点灯させる"

ピン 13 = PA5 = Nucleo-F401REのユーザーLED (LD2)。


概要: コマンド

ステップコマンド
1NucleoをUSB経由で接続
2cargo install probe-rs-tools --locked
3zeroclaw peripheral flash-nucleo
4zeroclaw config set peripherals.boards.0.path <serial-port>(および未設定の場合は boardtransport
5zeroclaw daemon または zeroclaw agent -a assistant -m "Turn on LED"

トラブルシューティング

  • flash-nucleo が認識されない: リポジトリからビルドしてください: cargo run --features hardware -- peripheral flash-nucleo。このサブコマンドはリポジトリのビルドにのみ含まれており、crates.io からのインストールには含まれていません。
  • probe-rs not found: cargo install probe-rs-tools --lockedprobe-rs クレートはライブラリです。CLI は probe-rs-tools に含まれています)
  • プローブが検出されません: Nucleo が接続されていることを確認してください。別の USB ケーブルやポートを試してください。
  • シリアルポートが見つからない: Linux では、ユーザーを dialout に追加します: sudo usermod -a -G dialout $USER、その後ログアウト/ログインします。
  • GPIO コマンドが無視される: 設定の path がシリアルポートと一致しているか確認してください。zeroclaw peripheral list を実行して確認します。