CuGoV3をM5StackとUIFlowで遠隔操作してみた

テックブログ ブログ

 おはようございます。インターンの塚本です。今回はCuGoV3をM5StackとUIFlowを使って遠隔操作してみようと思います。

概要

 前回、M5Stackを用いたCuGoV3の簡単な制御を行いました。今回はプロポではなく、スマートフォンやM5Stackでの遠隔操作を行いました。

CuGoV3をM5Stackで簡単に制御してみた

https://cuborex.com/archives/4214

使用機器

 今回はM5Stack Basicを使用していますが、GrayやFIREでも大丈夫です。

名称個数詳細
M5Stack Basic V2.61 https://www.switch-science.com/catalog/7362/
CuGoV3 遠隔操作ロボットキット1https://cuborex.base.shop/items/39457737
ジャンパーワイヤ4https://akizukidenshi.com/catalog/g/gC-05159/

開発環境

  • MacBook Air(M1,2020)
  • Google Chrome 103.0.5060.114
  • UIFlowブラウザ版 v1.10.5

配線

 前回の配線から信号線が逆になっています。M5Stackの並行する辺にあるピンは左右で同じ機能を持っているで、今回は前回とは逆の辺に接続しました。また、M5Stackにモータドライバから電源を供給しています。

M5StackCuGoV3 モータドライバ
5V右の赤
GND左右の黒
2左の白
5右の白

スマートフォンでの遠隔操作

概要

 はじめに、スマートフォンでの遠隔操作を行います。今回は、UIFlowのRemote+を用いて開発します。
リモコンブロックではM5StackのAPIKEYと紐付けられたWebページを作成し、そのサイトから指示を送信することでM5Stackを制御します。本機能はWi-Fiの接続が必須となります。制御用のスマートフォンで作成されたWebページへアクセスすることで制御が可能となります。

Remote+こちら→https://docs.m5stack.com/en/uiflow/advanced/remote

プログラム

 今回のプログラムでは2つのジョイスティックの値に対してPWMの出力を変化させCuGoV3を制御します。スマートフォンを横向きに持つことを想定しているため、縦に2つ配置したジョイスティックのx方向の最大値、最小値をCuGo V3を前進後退させるためのデューティ比に合わせます。最大値、最小値の設定は小数でできなかっため10倍した値で設定し、出力するときに10で割ることで変換しました。M5Stackの画面に制御ページへ飛べるQRコードを表示させ、そのQRコードを読み取ることでアクセスできるようにしています。デスクトップ版のUIFlowではWi-Fiへ接続するためのブロックを入れてください。

実際のプログラム
スティックの設定

走行動画

M5Stackでの遠隔操作

概要

 M5StackはESP32と呼ばれるマイコンが搭載されており、ESP-NOWと呼ばれる通信方法を使うことができます。ESP-NOWはESP32やESP8266などのマイコンでデータを送受信でき、複雑な設定をせずに開発ができます。UIFlowでもESP-NOWを用いることができるので、もう1台M5Stackを用意し制御します。コントローラ用M5Stackでは、制御用のM5Stackのssidを取得後にペアリングをし、押したボタンに合わせた数字を制御用M5Stackに送信します。制御側のM5Stackでは受信した数字に合わせたPWM信号を出力します。今回はコントローラ用M5StackとしてM5Stack Grayを用意しました。

ESP-NOWについてはこちら→https://docs.m5stack.com/en/uiflow/advanced/espnow

ボタン配置
ボタン送信される値CuGoV3の動き
Aを押す1左旋回
Bを押す2直進
Cを押す3右旋回
AとCを同時に押す4後進
各ボタンを離したとき0停止

コントローラのプログラム

 コントローラではペアリング後に押されたボタンに合わせた出力を制御側へと送信します。画面には左端に 制御側のssid、中央に進行方向を示す三角形が表示されるようになっています。

コントローラのプログラム

制御側のプログラム

 制御側では受信したデータに合わせたPWM信号をCuGoV3へと出力します。左右で同様の値を出力するとモータの個体差によって直進しない場合があるので、真っ直ぐ走るように出力の値を調整します。

制御側のプログラム

走行動画

まとめ

 今回はCuGoV3をM5StackとUIFlowで遠隔操作してみました。スマートフォンでの遠隔操作は少しラグがあるように感じました。皆さんもご家庭のCuGoV3でチャレンジしてみてください。次回はより高度な制御を行うためにCuGoV3とロータリーエンコーダを用いて角速度を取得します。


CuboRexでは、テクノロジーで不整地産業をアップデートしていく仲間を募集中です!

モノづくりが好き、ロボットエンジニアとして成長したい、農業や土木業など不整地産業の課題を解決したい、急成長するスタートアップでチャレンジしたい、新市場を創造したい方、歓迎です。

あなたが思い描くキャリアを実現し、不整地産業の未来を一緒に切り拓いていきませんか?少しでもご興味を持っていただいた方、まずは気軽なオンラインでのカジュアル面談も可能です。ご連絡お待ちしています!

インターンも大募集中です!

関連記事