Raspberry Pi Zero W + ESP32 サーボ制御プロジェクト まとめ

使用ハードウェア

パーツ型番
マイコンRaspberry Pi Zero W
ESP32XIAO ESP32-C3
サーボS3071 2BBMG
LED汎用LED

配線

サーボ(Raspberry Pi)

サーボRaspberry Pi
茶(GND)Pin 6
赤(VCC)外部5V
オレンジ(信号)Pin 12(GPIO18)

LED(Raspberry Pi)

Raspberry Pi
+(330Ω経由)Pin 18(GPIO24)
GND

トラブルと解決

トラブル原因解決
サーボが全く動かないジャンパーワイヤーの断線ワイヤー交換
サーボが震える角度の端っこでサーボが頑張りすぎパルス幅の範囲を狭める
カクカク動くスイープのステップが荒いステップを1度以下に細かくする

サーボのパルス幅

S3071 2BBMGの実測値:

角度パルス幅
600μs
90°1400μs
180°2200μs
pulse = int(600 + (angle / 180.0) * 1600)

作成したスクリプト

1. 永遠にスイープするスクリプト

while True:
    sweep(0, 180, step=0.5, delay=0.01)
    sweep(180, 0, step=0.5, delay=0.01)

2. 角度入力スクリプト

シリアルで数字を入力するとその角度に動く。quitで終了。

3. ESP32経由WiFi制御スクリプト(esp_rasp_wifi_servo.py)

  • XIAO ESP32-C3のシリアルモニタで角度を入力
  • WiFi経由でRaspberry Piに送信
  • サーボが指定角度に移動
  • 120度超えでLED点灯

ESP32のセットアップ

項目内容
ボードXIAO_ESP32C3
USB CDC On BootEnabled
ボードパッケージesp32 by Espressif 2.0.17
シリアルSerial(USBSerialは不可)

GitHubリポジトリ

https://github.com/harleyzero/ESP32-WIFI-RspizeroW_servo-controller

構成

ESP32-WIFI-RspizeroW_servo-controller/
├── README.md
├── raspberry_pi/
│   └── esp_rasp_wifi_servo.py
└── esp32/
    └── esp32_servo_controller.ino

Gitセットアップ手順

1. Gitのインストールと設定(初回のみ)

sudo apt install git -y
git config --global user.name "harleyzero"
git config --global user.email "あなたのメールアドレス"

2. Personal Access Tokenの取得(初回のみ)

  1. https://github.com → 右上アイコン → Settings
  2. 左メニュー一番下 Developer settings
  3. Personal access tokensTokens (classic)
  4. Generate new token (classic)
  5. repo にチェック → Generate token
  6. 表示されたトークンをコピー(二度と表示されない

3. リポジトリをクローン(初回のみ)

cd ~
git clone https://github.com/harleyzero/ESP32-WIFI-RspizeroW_servo-controller.git

4. Token認証の設定(初回のみ)

git remote set-url origin https://harleyzero:トークンを貼り付け@github.com/harleyzero/ESP32-WIFI-RspizeroW_servo-controller.git
git config --global credential.helper store

5. .gitignoreの作成

nano .gitignore

以下を記入:

__pycache__/
*.pyc
.env

6. ファイルの追加とプッシュ

cd ~/ESP32-WIFI-RspizeroW_servo-controller
mkdir raspberry_pi esp32
cp /home/zero/scripts/esp_rasp_wifi_servo.py raspberry_pi/
git add .
git commit -m "初回コミット:サーボ制御スクリプトとREADME追加"
git push origin main

日常的なGit操作

ラズパイでファイルを変更したら

cd ~/ESP32-WIFI-RspizeroW_servo-controller
git add .
git commit -m "変更内容のメモ"
git push origin main

WindowsのESP32スケッチを更新したら

GitHubのWebUIから:

  1. esp32フォルダを開く
  2. Add fileUpload files
  3. ファイルをドラッグ&ドロップ
  4. Commit changes

今後のアイデア

  • スマホのブラウザからWebUIで操作
  • 複数サーボの制御
  • センサーと組み合わせた自動制御

https://github.com/harleyzero/ESP32-WIFI-RspizeroW_servo-controller

zero

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です