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) で作業:
- Raspberry Pi Imager をダウンロード: https://www.raspberrypi.com/software/
- アプリ起動 → デバイス選択: Raspberry Pi Zero 2 W
- OS選択: Raspberry Pi OS (Lite, 64-bit, Bookworm)
- ストレージ: 挿入した microSD
- 右下の ⚙️ 設定 ボタン:
- ホスト名:
openduck - ユーザー名:
pi - パスワード: 任意 (覚えておく)
- SSH有効化 ✅
- WiFi設定 (SSID・パスワード入力)
- ロケール: Asia/Tokyo
- ホスト名:
- 「書き込み」開始 → 5〜10分待つ
Lite版でOK
画面表示は不要なので、Liteで十分。 動作が軽くて、Zero 2 Wでもサクサク動く。
🔌 Step 2: Pi の起動 & SSH接続
- microSD を Raspberry Pi Zero 2 W に挿入
- USB-Cで給電 (本体バッテリ or 外部USB)
- WiFi接続を待つ (1〜2分)
- 別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台だけ をBus Servo Adapter に接続
- PCで FT_SCServo Debug Software (Windowsアプリ) を起動
- ID変更 → 例: ID 2
- 切断 → 次のサーボに繋ぎ替え → ID 3
- これを14台分繰り返す
詳細は本家の docs/configure_motors.md 参照。
🎛️ Step 6: キャリブレーション
サーボの中央位置 (ゼロ位置) を決める作業:
- 全サーボに通電
- ロボットを 立ち姿勢 に手で動かす (脚まっすぐ、首正面)
- 以下のコマンドで現在位置を「ゼロ」として保存:
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.wavLED動作確認
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. はじめての歩行 へ。