製品情報
2022.07.22
CuGoV3をM5Stackで簡単に制御してみた

はじめまして。インターンの塚本です。高専7年生です。
今回はロボット制御初心者の僕がCuGoV3をM5Stackで制御してみます。
概要
CuGoV3を幅広いユーザに使用してもらうには、簡単に制御出来た方が良いと考えています。そこで、Blockly言語で開発が可能なM5Stackを用いて簡単な自律制御をします。CuGoV3遠隔操作ロボットキットはKOPROPO MC-8(近藤科学)で制御されているため、代わりにM5Stackから制御信号を出力し動作させます。
今回はM5Stackの中心のボタン(ボタンB)を押すと3秒間直進するプログラムを作ります。

CuGoV3とは
「CuGoV3」はテスト機をスピーディに制作できる、業界初のテスト用電動クローラユニットです。大動力機構を内蔵し、人が乗って走れる走破性、アルミフレーム外装による高いカスタマイズ性と耐久性を実現。
自動走行、自律走行などの分野の研究・事業開発用ユニットとして活用できます。

CuGoV3コンプリートキット
M5Stackとは
M5stackはEspressif ESP32チップセットを採用した開発モジュールでディスプレイ、microSDカードスロット、バッテリーなどを内蔵しています。開発環境とプログラミング言語はArduino、UIFlowを用いたBlockly言語、Micropythonです。今回はUIFlowを用いたBlockly言語で開発を行います。
https://www.switch-science.com/catalog/7362/

出典:https://m5stack.github.io/UIFlow_doc/ja/ja/base/UIFlow.html
UIFlowとは
UIFlowはM5Stack社が提供するWebベースのプログラミングツールでビジュアルプログラミング言語BlocklyとPythonを切り替えが可能です。ブラウザ版とデスクトップ版があり、ブラウザ版の場合はWiFi経由で書き込みが行えます。
https://m5stack.github.io/UIFlow_doc/ja/

出典:https://m5stack.github.io/UIFlow_doc/ja/ja/base/UIFlow.html
使用機器
| 名称 |
個数 | 詳細 |
| M5Stack Basic V2.6 1 | 1 | 詳細はこちらから |
| CuGoV3 遠隔操作ロボットキット | 1 | 詳細はこちらから |
| ジャンパーワイヤ 4 | 1 | 詳細はこちらから |
開発環境
- MacBook Air(M1,2020)
- Google Chrome 103.0.5060.114
- UIFlowブラウザ版 v1.10.1配線
配線
| M5Stack |
CuGoV3 モータドライバ |
| GND | 左右の黒 |
| G2 | 右の白 |
| G5 | 左の白 |

プログラム
CuGoV3はPWM信号で制御されており、停止のデューティ比から値をプラスすると前進、マイナスすると後進となっています。
https://github.com/CuboRex-Development/cugo-m5stack-blogsample/tree/main/CuGo_M5Stack

デューティ比
デューティ比はパルスがHighになっている時間が1周期のうち何[%]かを表しています。基本的なラジコンの制御信号の停止パルス幅が約1500[µs]です。今回は、PWM信号の周波数を50[Hz]に設定したため1周期は20[ms]であり、1500[µs]は1周期の7.5[%]となります。モータドライバの個体差で少し誤差があるため今回は停止のデューティ比を7.25[%]に設定しました。


走行動画
まとめ
今回はM5Stackを用いてCuGoV3の制御を行いました。Blockly言語での開発は誰でも簡単にできるのでぜひチャレンジしてみてください。
参考文献
- M5Stackであそぼう, https://mag.switch-science.com/2018/02/28/getting-started-with-m5stack/,2022/07/15参照
- https://www.switch-science.com/catalog/3647/,2022/07/15参照
- https://m5stack.github.io/UIFlow_doc/ja/,2022/07/15参照
- https://berry.sakura.ne.jp/technics/servo_control_p3.html,2022/07/15参照


