n-shinichi が 2022年07月03日23時17分10秒 に編集
初版
タイトルの変更
M5stickCでESPNOW、IMU情報使って直感操縦シンクロラジコン
タグの変更
M5StickC
ESP32
ESPNOW
IMU
倒立振子
Arduino
ラジコン
PID制御
メイン画像の変更
記事種類の変更
製作品
本文の変更
![キャプションを入力できます](https://camo.elchika.com/db6cd028b4b3f687496645c5251550eb709227c6/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f64626330626232342d616563392d346132392d613863382d3864363937643331373136342f33343437386162632d363166642d346232352d623066332d303163633530383363623865/) Blynkを使ったラジコン・・・ スマホのIMU信号、加速度データを送信してスマホを傾けるなど、、、 スマホのジェスチャーで倒立振子を操縦するのを作ろうとしたけど Blynk関数の戻りが遅すぎ(長い時は0.1秒程度)て 倒立振子が倒れてしまう問題があった。 Blynkを使うにおいてもボタン、スライダなどの外部入力ならmsオーダーで全く問題は ありません。でも、スマホの内部信号、たとえばIMUの加速度センサデータを 取得するには非常に時間が掛かるようです。 M5stickCで作る小さな倒立振子は固有振動周期が短いのでPID制御周期は短くする必要があり、 ある程度のロバスト性を確保するには100Hz程度必要です。 なので、、、0.1秒ほど待ちを喰らうと制御は成立しません。 そこで、M5stickCのIMUを使ってM5のジェスチャーで検討してみることにしました。 M5どうしだと使いやすいBlynkは使えません。 なので、高速で消費電力が少ないとされる、 ESPNOWを使ってみることにしました。 Blynkより設定のスケッチは多くはなりますが期待大です。 ESPNOW、、、 通信自体は基本はWifiのハード構成を利用ですがプロトコルは極端に簡略化されていて 送信は受信側のMACアドレスに対してデータを投げ捨てといった感じです。 なのでBLEのようにペアリングも不要で一旦仕組みを作ってからは運用が非常に楽です。 使ってみるとIMU信号の送信もmsオーダーでおよそ 送れます。なので倒立制御にも支障なく利用できました。 写真 モニタ表示の、、 1行目・・・Espnow-TX が送信機、1行目・・・Espnow-RX が受信機倒立ロボです。 とりあえず簡単なラジコン操作・・・シンクロ動作が出来始めたので 紹介です。 こんな感じで動かせてます。 https://www.youtube.com/watch?v=nMwmYoOZys4 中身のスケッチはほぼ同じなので どれかをマスターにして周りでシンクロ動作で踊る?ってのもできるかもです。 詳しくはこちらです。 https://n-shinichi.hatenablog.com/ M5stickCで作る超簡単構成倒立ロボの紹介、 ケースフレームはメルカリでも販売してますので興味のある方はどうぞ。。。