Skip to content

14. Raspberry Pi のセットアップ

ハードウェアが完成したら、頭脳である Raspberry Pi に OSとロボット制御ソフト を入れます。

📦 全体の流れ

mermaid
flowchart LR
  A[microSDに<br>OS焼く] --> B[Pi に挿して<br>初期セットアップ]
  B --> C[WiFi接続]
  C --> D[Runtime<br>リポジトリclone]
  D --> E[依存ライブラリ<br>インストール]
  E --> F[サーボIDの<br>書き込み]
  F --> G[キャリブレーション]
  G --> H[歩行開始 🦆]

🐧 Step 1: microSD に OS を焼く

別のPC (Mac/Windows) で作業:

  1. Raspberry Pi Imager をダウンロード: https://www.raspberrypi.com/software/
  2. アプリ起動 → デバイス選択: Raspberry Pi Zero 2 W
  3. OS選択: Raspberry Pi OS (Lite, 64-bit, Bookworm)
  4. ストレージ: 挿入した microSD
  5. 右下の ⚙️ 設定 ボタン:
    • ホスト名: openduck
    • ユーザー名: pi
    • パスワード: 任意 (覚えておく)
    • SSH有効化
    • WiFi設定 (SSID・パスワード入力)
    • ロケール: Asia/Tokyo
  6. 「書き込み」開始 → 5〜10分待つ

Lite版でOK

画面表示は不要なので、Liteで十分。 動作が軽くて、Zero 2 Wでもサクサク動く。

🔌 Step 2: Pi の起動 & SSH接続

  1. microSD を Raspberry Pi Zero 2 W に挿入
  2. USB-Cで給電 (本体バッテリ or 外部USB)
  3. WiFi接続を待つ (1〜2分)
  4. 別PCのターミナルで:
bash
ssh pi@openduck.local
# パスワード: 設定したもの

openduck.local が見つからない場合

  • 同じWiFi に繋がっているか確認
  • ルーターの管理画面で Pi のIPアドレスを直接確認 → ssh pi@192.168.X.X
  • それでもダメなら microSDを抜いて Raspberry Pi Imager で焼き直し

🛠️ Step 3: 基本ソフトのインストール

ログイン後、以下をコピペで実行:

bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y git python3-pip python3-venv i2c-tools alsa-utils
sudo raspi-config nonint do_i2c 0       # I2C有効化
sudo raspi-config nonint do_spi 0       # SPI有効化
sudo raspi-config nonint do_serial 0    # シリアル有効化
sudo reboot

再起動後、再度SSH接続。

📚 Step 4: Open Duck Runtime をクローン

本家プロジェクトのランタイム (実機制御コード) を取得:

bash
cd ~
git clone https://github.com/apirrone/Open_Duck_Mini_Runtime.git
cd Open_Duck_Mini_Runtime

依存ライブラリのインストール:

bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

💡 完了まで5〜10分。Pi Zero 2は遅いので気長に。

🎯 Step 5: サーボIDの書き込み

初回のみ・重要作業

新品のFeetech STS3215は 全部 ID=1 で出荷されている。 1台ずつ別IDに書き換えないと衝突する

書き込み手順:

  1. 1台だけ をBus Servo Adapter に接続
  2. PCで FT_SCServo Debug Software (Windowsアプリ) を起動
  3. ID変更 → 例: ID 2
  4. 切断 → 次のサーボに繋ぎ替え → ID 3
  5. これを14台分繰り返す

詳細は本家の docs/configure_motors.md 参照。

🎛️ Step 6: キャリブレーション

サーボの中央位置 (ゼロ位置) を決める作業:

  1. 全サーボに通電
  2. ロボットを 立ち姿勢 に手で動かす (脚まっすぐ、首正面)
  3. 以下のコマンドで現在位置を「ゼロ」として保存:
bash
cd ~/Open_Duck_Mini_Runtime
python3 calibrate.py

スクリプトの指示に従う (各関節1個ずつ確認)。

🚶 Step 7: 立ち上がりテスト

bash
python3 stand.py

立つ → 安定するか確認。 グラついたり倒れたりするなら、キャリブレーションをやり直し。

🔍 各種テスト

IMU (BNO055) 動作確認

bash
i2cdetect -y 1
# アドレス 0x28 or 0x29 に応答があればOK
python3 test_imu.py

スピーカー動作確認

bash
aplay /usr/share/sounds/alsa/Front_Center.wav

LED動作確認

bash
python3 test_leds.py

カメラ動作確認 (Expression Pkgある場合)

bash
libcamera-hello -t 5000   # 5秒間プレビュー

🆘 困ったとき

症状原因の可能性対処
SSH繋がらないWiFi設定ミスmicroSD焼き直し
i2cdetect で何も出ないI2C有効化忘れ / 配線ミスraspi-config 再実行
サーボが回らないID重複 / 電源不足ID個別書き込み / 電圧チェック
スピーカー音出ないALSA設定 / I2S配線alsamixer で音量確認
Pi が異常発熱過電流 / 短絡即電源OFF・配線確認

詳細は 16. トラブルシューティング へ。

✅ 次のステップ

セットアップ完了!いよいよ歩かせます。 15. はじめての歩行 へ。

SYNJAPAN による、初心者向け Open Duck Mini v2 組立ガイド