カワリモノ息子の技術メモ的な~

カワリモノ息子とその母の技術メモ的な〜

学校が苦手な息子くんの作品とその母の作品、はたまた日常などいろいろを在宅エンジニア母が綴る

mBot がモード切り替えできない!スマホアプリと接続できない!ときの対処法

CoderDojoさがに導入されたmBot

 愛らしく賢い教育向けロボットです。Scratchのようなビジュアルプログラミングで簡単にプログラミングすることができます。

 私がメンター参加しているCoderDojoさがで去年3月にこのロボットが2台導入され色々遊ばさせてもらっています。

 導入した日には息子氏も1台組み立てさせてもらいました。組み立ては初回のみというのが残念ですよね。ばらせばいいのでしょうけど…そこまでするのもアレですので。

 ↓ 組み立てした時の写真

 なかなかのロボ可愛さです。Amazon見るとピンクもありますね。
 モーター・距離センサ・ライントレース用のセンサを搭載しています。

 先日のCoderDojoでmBotを使おうと思ったときうまく動かない現象が発生し少々てこずり、同じくお困りの方がいるかもしれないと思ってブログに書くことにしました。

自宅のmBotがアプリで動かせませんとのご相談

 先日CoderDojoさがに参加された親子さんmBotを自宅に持っているのだけど困りごとがあると言われていたことがきっかけです。
 症状としては、

  • スマホアプリで動かすことができない(一部動かせるものもあったような?情報もあり)
  • PCにUSBケーブルで接続するとプログラムを書き込むことはできる

 ただしお持ちなのは新しい mBot の mBot2 らしいです。

 CoderDojoさがではmBot2は持っておらず、そちらも持参して来られなかったので解決するかどうかわからないものの、どうやらmBot も mBot2 も同じスマホアプリを利用するようでしたので、mBot での操作手順をみていただくことにしました。

CoderDojoのmBotで動作させようと思ったら…モード切り替えが効かない!

 まずmBotの電源を入れると、途端にタイヤが回り始めました。
 mBotは何度か動かしててなんとなくわかってるつもりで「まずはモードを切り替えないとね」と思ったのですが、なぜかモード切り替えボタンが効かず、モード切り替えできません

 モード切り替えでは、上記のように3つのモードを切り替えることができます。光るLEDの色で今どのモードかわかるのですが、動作もLEDの色も全く切り替わらずずっと前進しようとタイヤを頑張って回しています。

 以前このようになったことはありませんでした。
 最終的には解決しましたが、一旦これは置いといて、スマホアプリとの接続を試してみることにしました。

スマホアプリ「mBlock Blockly」「mBlock」「MakeBlock」

 スマホ・タブレットでmBotと繋いで遊べるアプリ、いろいろあります。

  • mBlock Blockly

 Android:https://play.google.com/store/apps/details?id=com.makerworks.medu&hl=ja&gl=US
 iOS:‎「mBlock Blockly-STEM education」をApp Storeで

  • mBlock

 Android:https://play.google.com/store/apps/details?id=com.makeblock.mblock&hl=ja&gl=US
 iOS:‎「mBlock - STEAM教育用のプログラミング学習アプリ」をApp Storeで

  • MakeBlock

 Android:https://play.google.com/store/apps/details?id=cc.makeblock.makeblock&hl=ja&gl=US
 iOS:‎「Makeblock-Play STEM Robots」をApp Storeで

 どれでも使えそれぞれに特徴があるみたいですが、今回は「MakeBlock」を選んで接続してみることにしました。また今回試したのはiPad(iOS版)で行いました。

 BluetoothでmBotと繋がるようなのですがなんと接続ができませんでした
 「デバイスが見つかりません」のようなエラーになったと記憶しています。(スクショとっておけば良かった…)
 

 ↑これはAndroidアプリのアイコン表示

 以前は確かにアプリで遊べていました。↓ 2022/3/27 の動画
youtu.be

 ネット検索してもうまく情報を得られず、アプリのバージョンが上がってmBotも更新しないといけないとか?とか一緒に参加していたうちの息子さんとともにいろいろ考えた結果、わかりました。

ファームウェアの問題でした

 ファームウェアというのは、デバイスに入ってる制御のためのベースとなるソフトウェアのこと。デバイスの制作会社から提供されています。
 デバイスと書いたのはここではmBotのことです。

 思い出したのですが前回mBotを使用したとき、PCから繋いで自作プログラムを書き込みました。
 このときにファームウェアが「PCからプログラムを書き込むためのファームウェア」に変更されていたのです。

解決方法

 まずPCでプログラミングソフトmBlockを起動します。
 インストールもできますが、インストールせずWEBブラウザで実行することも可能です。

mblock.makeblock.com


 ↑上記のような画面が開き、ここでブロックプログラミングを行うことができます。

 左下の「デバイス」が対象のデバイス( mBot )になっていなければ「追加」します。
 多分デフォルトが「童芯派」になっているのでこれは削除して mBot の追加が必要と思います。

 デバイスは下記のように沢山ありこの中から該当の mBot (または mBot2 )を選択します。

 PCとmBotを付属のUSBケーブルで繋ぎ、左下の「デバイス」のタブの中にある「接続」をクリックして mBot を接続します。

 そうすることでPCで作成したプログラムが書き込めるようになるのですが、このときにファームウェアを書き込むことになります。

 前回遊んだ時にここでPCから書き込んだときのファームウェアのまま終わらせていたようで、今回起動時もmBotがPCで作成したプログラムを忠実に実行していたため、モード切り替えもできないしスマホアプリからの接続もできないという状況になっていたのでした。

 「工場出荷時のファームウェア」に戻すことができるので、これを行うことでモード切り替え・スマホアプリ操作が可能になりました。

まとめ

 今回 mBot2 がスマホから動かせないと言われてた方と原因が同じであるかわかりませんが、PCから操作は行ったということでしたのでこれが原因である可能性が高いと思います。試してみてできなければ教えてください、とお伝えしています。

 こういうところで行き詰まってアプリからは操作不可能・モード切り替え不可能な mBot になってしまうのはとても悲しいですね。
 
 またなにか気づきや楽しい遊び方があればご紹介したいなと思います。