2022年11月6日日曜日

メカナムホイールのラジコンをPS3コンで動かす

 もう3ヶ月ぐらい立ってしまったけど改造を勧めていたメカナムホイールのラジコンは結局ESP32-WROOM-32Eを載せることに。RoverCみたいにRaspberry Pi Picoとかを使ってI2CスレーブデバイスにすべくテストもしてみたけどESP32をそのまま乗せるのが手っ取り早そうだったので。ポート数も多いし。

というわけで早速基板の改造。もうアナログスティックの操作感を知ってしまったらもとに戻すワケがないので残っていたレシーバーの部品もろとも全て外してしまった。
テスト用に出していたケーブルも一旦撤去。

SOT-23の3.3Vレギュレータとか3.3Vラインのコンデンサとかも全て取り外してMX1616だけにした。LEDの抵抗とコネクタも取り外し。LEDは電源入れたときにずっと光ってるだけだし、後でESP32から制御できるように変更してステータス表示に使おうかな。
ESP32用にSOT-89サイズの3.3Vレギュレータを搭載。LEDの抵抗があったところがちょうどいい感じだった。今回はAP7215なのでESP32でも行けそう。
最初からついていた3.3Vじゃ全然足りないだろうしな…
ESP32-WROOM-32Eは基板に垂直に置くと入りそうだったので使わないところはショートしないようにカプトンテープで保護。

ESP32とモータードライバはポリウレタン銅線を使用して接続。ESP32はGPIO マトリックスがついているので便利だなぁ。
モータドライブICのMX1616が2つ乗ってるのでモータ駆動用に8本(今回は12,13,14,27,16,17,18,19を使用)、あとはバッテリ残量を見るために10kΩ2つでバッテリ電圧を分圧してADCに(33を使用)。ボタンとLEDもつけたいな。
一応書込み端子もつけておいた。(IO0とENも出してある)
隙間にESP32がピッタリ入る感じ。
前に作ったESP-WROOM-02用の自動書込みアダプタをとりあえず装着してスケッチを書き込んで見る。とりあえずは前にESP32をのっけてみたときに作ったXboxコントローラ用のスケッチをPS3用に直して、モータドライバもSlow Decayのほうがコントロール性が良かったのでそちらに変更。あとはPWMの周波数を14kHzぐらいにして低速時でも静かになった。

とりあえずPS3コントローラで動くようになったけどたまにESP32がリセットして接続が切れたりするのでノイズ対策しないとだめかな…
あとはESP32の電源かリセット周りをちょっと見直してみるか…
Xboxコントローラで遊んでいたときはESP32の開発ボードをモバイルバッテリで動かしていたし、ESP32がここまでモータの近くになかったためか、特に問題なく遊べていた。
あとスケッチもまだバグってて、ある特定の動作をすると突然モータの回転が反転して変な動きをする。どっか値がオーバーフローしてそうなのでそこも直さないと。

しかしこのメカナムホイールなラジコン、メカナムロボットキットより安いのにモータドライバとバッテリまでついてコスパ高いなぁ

0 件のコメント:

コメントを投稿