mBlock5でmBotをプログラミングする前に知っておくべきこと

mBotでロボットプログラミングを始める前に、知っておきたい4つの事項を説明します。特に、mBlock3から移行する際に戸惑うであろう部分を中心にピックアップします。
・アカウント作成・ログイン機能・プロジェクト公開機能
・スプライトリストとデバイスリスト
・アップロードモードのオン オフ 
・デバイス(mBot)のファームウェア更新

説明の際の使用環境

・mBot_v1.1 日本国内正規品 Bluetooth版 購入時期は2019年8月
(新型Bluetoothモジュール)
・mBlock_v5.1 (ローカル版)
・オンラインのファームウェアバージョン_06.01.107
・Windows10

mBlock3からmBlock5に移行すべき理由
長年慣れ親しみ、使い慣れ、教え慣れたmBlock3からmBlock5に移行するのは勇気がいります。新たな開発環境に慣れるには、それなりの労力と時間が必要ですよね。ただ、今後もmBlockを利用して、Makeblock社のデバイスを楽しもうとするのであれば、2019年の1年をかけてバージョンアップされ、かなり安定してきたmBlock5に、今、乗り換えるべきでしょう。主な理由は、以下の4つです。

1:対応デバイスが拡充中
mBlock3の対応デバイスは、いまや、Makeblock社製品としては、mBot/mBot Ranger/Ultimate2.0 だけです。
 一方で、mBlock5は、 Codey Rocky, Halocode, mBot, Motionblock, Neuron, Ranger, Ultimate 2.0,Nova Piで、今後も拡大されていくでしょう。
 mBlock5では、「ユーザークラウドメッセージ」という機能を使って、複数のデバイスを連携させることも可能です。例えば、Halocodeというマイコンボードを傾けると、mBotが傾いた方向に走行するなどのデバイス間の連携が可能になります。
参照:mBotとHalocodeを連携させる

2:AI機能・IoT機能など、拡張機能が充実
mBlock3ではなかった、AIを使った音声認識機能や、カメラを使っての機械学習機能を使って応用プログラムを楽しむことが出来ます。

3:最新のmacOSはサポートされない
こちらのページにもあるように、 mBlock 3は、最新のmacOSシステムおよびChromeブラウザでは使用できなくなります。
https://www.mblock.cc/ja-jp/mblock-3-unavailable
上のページの開発者チームのアナウンスは、mBlock3はもうやらないよって言ってるようなものです(笑)

4:世の流れも、Scratch3.0へ移行中 
mBlock3はScratch2.0をベースに作られています。一方で、mBlock5は、Scratch3.0をベースに作られています。世の中の流れとして、Scratch3.0にユーザーが移行されています。ソフトウェアは、ユーザー数が多い方が、様々なデバックやチュートリアルがネットで見つけやすくなりますので、やはり、早い段階でmBlock5に移行するのが賢明です。

アカウント作成/ログイン機能/プロジェクト公開機能

mBlock3にもオンライン版で、アカウント登録機能があったような、無かったような記憶がありますが、定かではないです。一方で、mBlock5は、ローカル版、オンライン版、共にアカウント作成機能があります。
右上のアイコンをクリックすると、メールアドレス、パスワードを登録してアカウント作成が出来ます。
mBlock5_ログインアイコン画像

アカウントを作成すると、インターネット接続さえできれば、作ったプロジェクトを、サーバーに保存することが出来るので、PCを変えても、以前作ったプログラムを呼び出すことが可能です。

また、プログラムを世界中のユーザーにシェアすることも可能です。
例えば、下のような簡単なプログラムを作成して、中央上にある公開をクリックします。
mBlock5_公開共有の方法の画像

すると、下の画像のようなページに移動して、そのプロジェクトをシェアすることが可能になります。

mBlock5_シェア設定の画像

その他にも、ログインしていると、スプライトの拡張機能である、AI機能を使ったり、ユーザークラウドメッセージ機能を使っての複数デバイス連携が可能になります。
基本は、アカウント作成して、サーバーにプロジェクトを保存しておくのが管理としては楽じゃないかと思います。
尚、ログインしなくても、mBotへのロボットプログラミングをする事は可能です。


スプライトリストとデバイスリスト

mBlock3とmBlock5の最大の違いは、このスプライト(パンダ)とデバイス(mBot)をタブで切り替えてプログラムする所ではないかと思います。

mBlock5_画面の見方の画像

 この違いは、mBlock3のユーザーからすると、最初、かなり戸惑う事でしょう。
  Block3の時は、あくまで、スプライトの拡張機能としてmBotが存在していましたが、mBlock5は、パンダとmBotが、それぞれ別のスプライト(オブジェクト)という事が明確になっていますので、それに慣れるのに、少し時間が必要かもしれません。
 

 例えば、mBlock3だと、センサーデータを言わせることは、かなり簡単にできましたが、mBlock5は、mBotに拡張機能の「アップロードメッセージ」を追加したうえで、メッセージと共に、センサーデータを送るというプログラムを作るか、グローバル変数を作成して、mBotで読み込んだセンサーデータを変数としてスプライトと共有するという方法が必要です。
 

 ただ、慣れると、逆にこちらの方が、スプライトと、mBotが明確に違うオブジェクトと意識できるので、プログラミングする上では、考えやすくなってくると思います。

ファームウェアの更新

【完全版】mBotの始め方 ーmBlock5対応ーにもあるように、mBotは最初、赤外線リモコンモード・衝突回避モード・ラインフォロワーモードが切り替わるプログラムが、インストールされた状態になっています。
このまま、プログラミングを始めても構いませんが、上記のモードで動作確認をした後は、ファームウェアを最新のものに更新することを強くお勧めします。

ファームウェアの更新の方法は、デバイスリストにある「設定」>ファームウェアを更新と進み、
mBlock5_デバイスファームウェア更新設定画像

この画面で、オンラインのファームウェアを選択しアップロードします。
mBlock5_デバイスのファームウェアを更新する画像
 尚、もう一度、3つの動作モードのファームウェアに戻したいときは、上の画像のオンラインのファームウェアの下にある、工場出荷時のファームウェアをアップロードします。

2つのファームウェアの違いは以下の通りです。

機能 工場出荷時の
ファームウェア
(06.01.009)
オンラインの
ファームウェア
(06.01.107)2019/12/30現在 
起動音 3回ブザー鳴る 1回ブザー鳴る
起動時のmCoreのLED 点灯 点灯しない
USB接続
Bluetoothドングル接続
内蔵Bluetooth接続
赤外線リモコンモード ×
衝突回避モード ×
ライントレースモード ×

尚、オンラインのファームウェアにすると、mBotの拡張センサーモジュールも使えるようになります。

今後、オンラインのファームウェアが更新されたり、デバイスの拡張機能がmBlock5に追加されたり、mBlock5の日本語表記が改善されたりした場合に、デバイスライブラリ画面に、緑の矢印が出現しますので、それをクリックすると、最新の環境に更新できます。

mBlock5_デバイスライブラリ更新画像

アップロードモードのオンーオフ

mBlock5には、アップロードモードをオンにする、オフにするという考え方があります。

mBlock5_アップロードモードオンオフ画像

アップロードモードオフは、PCのmBlock5でプログラムが実行され、それがリアルタイムでmBotに送信されます。はじめのうちは、このアップロードモードをオフにして、PCから実行するのが、分かりやすいと思います。

アップロードモードオンは、mBlock3でいう、「mBotプログラム」をイベントにして、スクリプトを作り、「mBotプログラム」を右クリックしてArduinoにアップロードしてた事と同じです。
mBlock5で作られたプログラムを、mBotにアップロードしますので、mBotとPCを切断しても、mBotがプログラム通りに動作します。

尚、一度、プログラムをアップロードしたあと、アップロードモードをオフにして、PCからプログラムを実行したい場合、再度、「オンラインのファームウェア」に更新しないと、プログラムはPCから実行されません。