M5Stickcを搭載したBugc(虫型ロボット)をBlynkを使ってスマホから操作してみた


概要

M5StickCをベースとした虫型ロボットBugcをBlynkのスマホアプリで操作するプログラムを作成しました。BlynkのFront/Back/Left/Rightのボタンを押すとその方向に進み、スライドバーで速度が指定できる。Bugcの特性上Frontを押してもきれにまっすぐに進まないが、それらしき方向には進む。子供が結構喜ぶ(クラウド経由で操作してるんだぞといっても理解はされないが)。

Github リポジトリ

コード修正点

以下①②のコード修正が必要

①Blynkから入手できるTemplateIDとDeviceNameとAuthTokenを入れる。

#define BLYNK_TEMPLATE_ID           "yourTemplateId"
#define BLYNK_DEVICE_NAME           "Quickstart Device"
#define BLYNK_AUTH_TOKEN            "yourAuthToken"

②WiFiのSSIDとパスワードを入れる。

char ssid[] = "yourssid";
char pass[] = "yourpasswd";

開発環境

Arduino IDE(M5Stickcのボード設定やライブラリインストールが別途必要)

動作例

GitHubnに動画があるのでそちらを参照。以下は画像。

必要なファイル

以下のBugcのサンプルコードリポジトリにある bugC.cpp とbugC.h が必要。
https://github.com/m5stack/M5StickC/tree/master/examples/Hat/BUGC

Blynkについて

  • Blynkが何たるかは割愛(Qiita検索してください)。簡単に言うとArduinoやESP32マイコンベースのエッジデバイスを簡単にスマホアプリと連携することができるフレームワーク。無料版でかなりのことができる。
  • Blynkのアプリ側はLegacyではなく最新版(2021.09.26時点)を使う(Bの右上にNewの文字があるアプリ)。最新版はAuth Tokenがアプリではなくblynk.cloudのクラウドコンソールから入手する使用になっているので注意が必要。
  • Blynkに登録したあとのTutorialを始めるたあと来るメールにBlynk Example Browserへのリンクがあり、それを参照するとBlynkを使うときのエッジ側のコードの作り方が大体わかる。
  • Blynkのダッシュボードとデータストリームはの設定は以下参照。

Blynkのダッシュボード設定

ダッシュボードにはボタンが4つとスライダーが1つを作成し、ボタンはOn/Offでスライダーは速度設定(0~100)に使う。画像はblynk.cloud上に作成できるWebダッシュボードで、スマホアプリ上も構成は同じ。

Blynkのデータストリーム設定

データストリームはテンプレートで設定する。データストリーム上のピン番号(V0~V4)が、エッジ側のコード上のピン番号と対応する。すべてInt型だが、スライダーのみMax値が100になっている。

参照

Blynkを使ってスマホとM5StickCでコミュニケーション
Blynk Cloud
Blynk Example Browser