- ESP32からSG90(サーボモータ)を動かす。とりあえずArduinoUnoで動作確認したときのやつそのまま使ったらライブラリがESP32に対応してなかった。
- ESP32対応のライブラリがあるみたいだから入れてみたけど動作しない。ここから長い原因切り分けの旅が始まる…
- 生成AIに聞いたら赤が5vで橙がIOってのが入れ替わって配線してたことが判明。初歩的すぐる。
- ArduinoUnoに繋いだらちゃんと動いた。サーボモータは正常。5v給電は必須なんだな。
- ESP32のPWMピンが正常に電圧出せてないのかも、ということでLEDつないでみたらちゃんと光量変わる。ESP32も正常。
- LEDにつながってるところをSG90にしたらビクビクした。サーボにいれる5vとESP32にいれる5vが一緒じゃないとだめ。モーター給電だけ別系統は無理なんですね。
- 現状ではSG90にPWM直接入れてるけど、それじゃ上手く動かないぽい。やっぱライブラリ使わないと面倒そう。
- いくつか参考サイト眺めてたらESP32Servoライブラリのバージョン違いの記事みつけた。バージョンダウンしてみたらちゃんと動いた。なんでや。
- 動作テストしてみたら0度→180度で0.5秒くらいかかるみたい。動かすときは変更する度数*3msくらいでwaitかければ大丈夫そう。
- 0度と10度を繰り返させたらよい感じにビクビクしだした。演出はとりあえずこんなもんでいこう。
- ESP32にリクエスト受け取ったらビクビク時間をランダムで60~6000ms待機したあとで180度に動くように機能追加。それっぽくなった。
- 最後にユニバーサル基盤に据え付けて完了。USBケーブル刺して192.168.0.107にアクセスすると動く。Siriからやってみたら良い感じだった。