小型の二輪ロボットをPS4のコントローラで操作する(ESP32)
はじめに
これまでの記事でESP32とPS4のコントローラをBluetoothで接続することができたので、今回はコントローラで実際にロボットを制御してみました。以前製作した小型の二輪ロボットこと、コマゴマ一号の上に、無理矢理ESP32を載せています。
元々XBEEという無線通信用のモジュールを使っていたので、そこをESP32に置き換えました。XBEEのときはパソコンのキーボードで操作していましたが、コントローラのほうがロボットを制御している感じがあっていいですね。
▼以前製作したコマゴマ一号。これをPS4のコントローラで操作します。
▼以前の記事
回路を組む
過去の記事に何度か出てきていますが、PS4のコントローラと接続するのにはESP32というマイコンを使います。ESP32にプログラムを書き込んで、コントローラからの信号に応じてArduino Nanoに文字を送信します。
▼秋月電子通商で買ったESP32はこちら
ESP32-DevKitC-VE ESP32-WROVER-E開発ボード 8MB: マイコン関連 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)
▼Amazonでも販売されています。
▼回路図。以前はXBEEがあったところにESP32が入っています。
Arduino Nanoを使わなくてもESP32だけで事足りるのでは?と思われるかもしれませんが、その通りです。基板を作り直せばできるのですが、面倒なのでジャンパーワイヤーで何とかなるように作っています。
▼例えばArduino Nanoの端子隣りに、各端子と導通しているピンソケットがあります。これにジャンパーワイヤーを挿すことで、ブレットボードで回路を組むようにして使うことができます。
実際の機体
ユニバーサル基板で、ESP32を取り付けて配線を引き出せるようにしています。以前の基板に重ねています。
▼ESP32を載せたコマゴマ一号。
▼ユニバーサル基板によっては取付用の穴の位置が異なるのですが、ピッチは同じなのでランドに穴を空けています。これで種類の異なるユニバーサル基板を重ねることができます。同じ基板を使えばいいんですけどね。
プログラムを書く
▼ESP32のプログラム。だいたいサンプルのものです。シリアル通信でArduino Nanoに送ります。
▼Arduino Nanoのプログラム。以前のものを使い回しています。
最後に
今回製作した機体は、大学のボランティア団体のイベントに持っていきました。地域の子どもたちが集まるイベントで、子どもたちに操作を体験してもらいました。PS4のコントローラで操作できるというのに結構驚かれましたね。
他にも私のメカナムホイールの機体や、部員の持っていたロボットアームなども持っていきました。熱中してずっと操作している子がいたり、ロボットを作ってみたい!という子がいました。楽しんでもらえたようです。
小型のラジコンのようなものであれば作ってきましたが、そろそろ大きなロボットにも挑戦していこうかなと思っています。大型のモーターを使いたいところです。