電子工作tinkeringTwitterFacebookはてブPocketPinterestLINEHalocodeを使ってmBotを操作Halocode(ハロコード)とは、Makeblock社の教育用シングルボードコンピューターです。Makeblockはこれまでは、教育用プログラマブルロボットmBotとかがメインでしたが、Halocodeを見ると、かなり公教育への採用を意識したなあ、という感じですね。この分野で先行するmicrobitと比べて、単体でWiFi接続ができるなど、優位点も非常に多く、ポテンシャルの非常に高いSTEAM教育用ツールです。RockyやmBotを操作させたり、連携させることが可能です。今回はmakeblockのプログラマブルロボットmBotとの連携をさせてみたいと思います。「Halocodeが右に傾いたらmBotが右折する。Halocodeが左に傾いたら、mBotが左折する。今回は、このようなHalocode-mBot連動プログラムを作りたいと思います。動作のイメージは↓のような感じです。2019年3月15日現在のmBlock5の最新版「mBlock5_v5.0.1」の場合、HalocodeとmBotを連携させるには、以下のような接続イメージになります。HalocodeとmBotの連携イメージ図ちなみに、mBlock5で、上の図のようにサーバーを利用したデータ連携をする場合は、mBlock5上でユーザー登録をして、ログインしている状態にしておく必要があります。ユーザー登録は、メールアドレスとパスワードだけなので、特に重要な個人情報を求められる事はありません。Halocodeからのデータは、以下の経路をたどることになります。→mBot理由は、以下の制約条件を考慮する必要があるからです。1、mBotは、ユーザークラウドメッセージを受け取れない→mBlock5サーバーを介したメッセージのやり取りができないHalocodeには、ユーザークラウドメッセージというブロックが標準で用意されています。ユーザークラウドメッセージとは、WiFiで繋がったデバイス同士(この場合は、HalocodeとPC=mBlock5のスプライト)が、mBlockサーバーを介してメッセージのやり取りをする機能です。mBlock5(PC)のスプライトを操作したら、ケーブルで接続したり、Bluetoothで接続しなくても、Halocodeを操作するプログラムを作ることが可能になります。mBlock5のHalocodeユーザークラウドメッセージmBlock5のスプライト用ユーザークラウドメッセージは拡張機能で追加可能mBotには、WiFiの拡張モジュールがあります(日本で入手して、利用できるかは不明)が、たとえ、WiFi拡張モジュールを付けたとしても、mBlock5のmBotで利用できるブロックにユーザークラウドメッセージ機能はありません。従って、mBlock5のからのメッセージ機能を介して連携することになります。Rockyも同じ状況です。2、mBlock5_v5.0.1は、1度に1台のデバイスしか接続出来ない。→HalocodeとmBotを、mBlock5に同時に接続して、メッセージのやり取りができないもし、1の制約条件がなくなれば、HalocodeとmBotは、ユーザークラウドメッセージでのやり取りで連携できるので、かなりスマートです。mBotにWiFi拡張モジュールを付けるという、mBot用のWiFiモジュールが恐らく技適の問題で販売されていない日本では結構難しい問題をクリアしつつ、インターネット接続環境は必須という状況ですが。Rockyは、WiFi機能がすでに搭載されているので、もしかすると、今後のmBlock5のアップデートでユーザークラウドメッセージ対応が可能になるかも知れません。2の制約条件がなくなれば、クラウドサーバーは介す必要が無いので、mBotのWiFi化は必要なく、Halocode-mBlock5-mBotというメッセージのやり取りになりますので、難易度はぐっと下がります。この辺の制約条件は、mBlock5のアップデートで、そのうち解消されるでしょう!特に制約条件2に関しては、割と近い将来、解消される気がします。→mBotという経路で、HalocodeとmBotを連携させてみようと思います。Halocodeのプログラムまずは、Halocodeのプログラミングです。Halocodeを使ってプログラミングや電子工作をする場合、WiFiに接続する場合のプログラムは、頻繁に使うので、覚えてしまいましょう。上のプログラムは、Halocodeの電源を入れ、WiFiに接続したら、LEDを緑色に点灯させるというプログラムです。上の画像の左の塗りつぶしの所にSSIDを入れ、右にそのパスワードを入力します。次に、ボタンを押したことをユーザークラウドメッセージで送るプログラムです。ユーザークラウドメッセージの文字自体は、動作が分かるような任意の文字でいいので、短いものにしましょう。この文字の意味自体は、mBotは理解しませんので、単なる記号という意味合いですね。ちなみにですが、文字は半角英数で打ちましょう。次のコードは、Halocodeが左右に傾いたことを送信するためのプログラムです。Halocodeには、モーションセンサー(3軸加速度センサー+ジャイロセンサー)が搭載されています。HaloCodeの3つの軸(x、y、z)と、それに対応するロールとピッチの方向の説明図このセンサーを使いこなすと、様々なプログラムを作成することが出来ますが、少々難易度が上がります。そこで、今回は、上のブロックのように、Halocodeが左右に傾いているかどうかだけを扱うブロックで作成しました。ちなみに、どこが基準で、傾いているか?ですが、Halocodeに「↑」が書いてあって、それが上に向いている状態が基準になります。Halocodeのモーションセンサーの基準点mblock5(スプライト・背景)のプログラム次は、mBlock5内のスプライトと背景のプログラムです。mBlock5では、Halocodeが送ったユーザークラウドメッセージを、受け取って、mBotにアップロードメッセージとして送るプログラムを書きます。スプライトスプライトは、受け取ったユーザークラウドメッセージを言って、mBotに送るという事をさせます。スプライトーmBot間のメッセージのやり取りには、2通りのブロックがあります。「通常のメッセージ」は、mBotにプログラムをアップロードせずに、mBlock5で実行する場合に利用することが出来ます。この場合、アップロードモードはOFFにしておく必要があります。プログラムの処理が重く複雑で、mBotへアップロードしなければ、うまく動かないならないような場合は、アップロードをONにしてアップロードしますが、その場合は、↑の通常メッセージブロックは使うことが出来ません。その場合には、拡張機能で、「アップロードのブロードキャスト」を追加してあげます。すると、↓のようなブロックが使えるようになります。今回は、通常メッセージでも大丈夫な簡単なプログラムですが、とりあえず、新しい機能を試すという事もありお、アップロードメッセージでプログラムを作りました。背景は、ユーザークラウドメッセージを受け取ったら色が変わるという事だけの処理をさせます。mBotのプログラム最後は、mBotのプログラムです。mBotはスプライトから、アップロードメッセージを受け取りますので、同じく機能拡張でアップロードメッセージブロックを追加させた後に、下のようなプログラムを作ります。これで、冒頭の動画のような動作をさせることが出来ます。気を付けたいのは、mBlock5とmBotはBluetoothか、USBケーブルで接続させたままの状態で実行する点です。動画では、Bluetoothで接続させています。プログラムの実行は、mBotにアップロードしたプログラムで行ってが、メッセージの送受信だけは、mBlock5(PC)と接続したままでないといけないという訳です。Halocodeは、mBlock5のサーバーを通して繋がっているので、mBlock5と直接、接続させておく必要はありません。Japan様のご厚意で、日本発売前のHalocodeをお借りし、レビューする機会を頂いております。日本の電波法による技適などは、取得済のモノです。日本発売の時期、価格などは、近く発表されるとのことです。(2019年3月18日追記)※2019年5月10日に発売開始されました。17MakeX2019のテーマ・開催概要が発表されました。J-tinkering。