小物ロボとかを小さい電池で、小さいマイコン(ESP-01)でRCやライントレース
やろうとしてる。
ここで気になるのが末端ロボの消費電力
特にラジコン?リモコン?で動かす時。
ESP01はBLEがないのでスマホで簡単に操作できるDabbleアプリが使えない。
WiFiは使えるけど必要以上に応答がよかったり使わない機能たっぷりで極端に消費電流が大きい。サーバー機能なんていらない。。。
条件で変わるけど、ざっと100mA近い電流消費の感じ。
てことで通信はESP01ならすごく低消費電力ESPNOWを使いたい。
使い方にもよるけど人の操作でついてこれる程度10Hzくらいなら平均にすると1mAも食わない感じ。。。
でもESPNOWとスマホ(操縦機)をうまくつなげれるアプリとかが見つけられない。
最近、気になってたRemoteXY、とってもいい感じなんだけどESPNOWは
使えない。(たぶん。)
で、力技で回りくどい通信になるけどやってみたのが今回の見出し。
・まず、スマホからの指令はBLEでM5StickCに送る。
これはこれでかなり低消費電力通信。
・次に、M5StickCからESP01へはESP01が対応してる、
低消費電力のESPNOWで送る。
*M5StickCは中継器としての役割で使う。
それぞれは双方向通信を行う。
ちょっと気になってたのはM5StickCがBLEとESPNOWを一緒に使えるのか?
ってとこだった。できるっぽいけどネット検索してもあまり情報がない。
やってみたらなんてことなかった。
どっちも2.4GHz帯でなんかハード上のおなじないとかせんと干渉したり
するのかなと思ったけど、単純に両方混ぜるだけであっけなく動いてしまった。
M5StickC、よくできてるなぁ。
動かしてみたのがこちら。
スマホのボタン押した信号をBLEでM5StickCに送り、LED点灯(赤)。
M5StickCからはESPNOWでESP01に送ってESP01は受け取るとLED点灯(青)。
でもって、
ESP01からは3.3系電源(Lipo電池にSBDを通して0.3V落としてある)の電圧を
ADして、それと起動してからの秒カウンタ値をM5StickCにESPNOWで送信。
M5StickCはスマホに ESP01から受け取ったESP01の電圧、カウンタ値と、
M5StickCのLipo電池電圧を検出して2つの電圧とM5の起動してからのカウンタ値、
4つのデータをスマホに送信してる。
RemoteXYはI/Fの自由度がすごく高い。 BLEにしても接続確定が早い。
操作コントローラもいろんなのがある。
無料だと部品はあまり配置できないけどそこそこのことは済んでしまう。
でもこれなら有料の買ってもいいかもしれない。って気がしてきた。
ま、 これでESP01を低消費電力通信で使う目処がついたかなってところ。
スマホ(#RemoteXY) ⇐#BLE⇒ #M5StickC、
— しん (@shinichi_nin) 2023年2月16日
M5StickC ⇐#ESPNOW⇒ #ESP01
バケツリレー #双方向通信
スマホでESPNOWが使えるモノ、見つけれんので
M5StickCにBLEとESPNOWの中継器&通信モニタになって頂きました。
これでESP-01を低消費電力通信で使えます♪https://t.co/lKHDjPi6Y9 pic.twitter.com/Vre1pFeain