Halocodeのモーションセンサーは3軸加速度センサー+ジャイロセンサーは構成されている
STEAM教育用のシングルボードコンピューターであるHalocode(ハロコード)には、取り付けたモノの角度を検出するモーションセンサーがついています。
モーションセンサーは、3軸加速度センサー(X軸・Y軸・Z軸)と、角度を検出するジャイロセンサーで構成されています。
このセンサーを使いこなすには、センサーの原理などをある程度理解しておく必要がありますが、、そこまで本格的な知識がない初級学習者でも、簡単に活用できるように、mBlock5に、モーションセンサーのデータを活用するためのブロックが用意されています。
↑の画像の中で、Halocodeが揺れているとき、とか、揺れている・揺れの強さのようなブロックがありますが、これは、加速度センサーのデータを利用しています。
また、矢印を上向きに指しているときのようなブロックや、Halocodeが、左に傾いている、のようなブロックもありますが、それらは、ジャイロセンサーを活用したブロックになります。左に傾いてとかの基準点は、Halocodeに矢印が印刷されていて、それが上方向に向いている状態が基準になります。
モーションセンサーは、IoTデバイスや、携帯電話などにも搭載されている非常にポピュラーなセンサーです。
Halocodeでフィジカルコンピューティング
今回は、Halocodeを現実のモノに取り付け、コンピューターと繋げるフィジカルコンピューティングの事例として、モーションセンサーを活用した飲料容器の状態検知のデモを作りたいと思います。と言っても、そんなに難しいものではありません。
こんなデモを作る時、どうすればよいでしょうか?
まあ、モーションセンサーを使って何か創ってみろ!って言われたら、大人の発想だと、↑見たいな動画にどうしてもなってしまいますよね(笑)
上の動画は、プログラムとしては至極簡単で、缶ビールに取り付けたHalocodeの角度が変わったら、メッセージをmBlock5(PC)送信に送信。メッセージを受け取ると、コスチュームが変わっていくというものです。このデモンストレーションを行う際に、考える要素としては主に2つです。
① HalocodeからPCへのメッセージ送信方法
② Halocodeの角度検出方法
① HalocodeからPCへのメッセージ送信方法
HaloCodeとmBlock5 for PC(v5.0.1の場合)の間で、「メッセージ」を送る際に、前提として理解しておかなければならない事として、mBlock5のアップロードモードのOn-Off機能があります。

アップロードモードとは、デバイス(HaloCodeやmBotなどのハードウェア)にスクリプトをアップロードするモードです。
このアップロードモードのオン・オフの状態によって、利用できるブロックが変わりまので、mBlock5でプログラミングをする際アップロードモードの状態を常に確認しておく必要があります。
方法1
HalocodeとmBlock5(PC)をUSBケーブルか、Bluetoothで接続して、メッセージを送る。この場合、アップロードモードはオフにしておく必要があります。
※Bluetooth接続する場合は、Makeblock専用のPC受信ドングルを別途購入する必要があります。
参考記事:Maleblock専用受信ドングルレビュー
方法2
HalocodeをWiFiに接続し、mBlock5サーバーを介してmBlock5(PC)にユーザークラウドメッセージを送る。この場合、アップロードモードはONにしておく必要があります。
※mBlock5に「ユーザークラウドメッセージ」という拡張機能を入れる必要があります。
今回は、HalocodeとPCをケーブルで接続させるのは見た目でスマートではないと思ったので、Bluetooth接続でメッセージ送信か、HalocodeをWiFi接続ーmBlock5サーバー経由でユーザークラウドメッセージ送信のどちらかで検討しました。
Bluetooth接続の場合、多くの人がMakeblock専用のBluetooth送受信ドングルを追加購入(追加出費)する必要があります。
参考記事:MakeblockのBluetoothドングルは、ガチユーザーを支える優れモノ
追加出費無しが良い人は、WiFi環境が必要になりますが、ユーザークラウドメッセージ方式で行いましょう。上の動画もユーザークラウドメッセージを使っています。
② Halocodeの角度検出方法
今回の動画では、ピッチ角を使いました。まずは、ピッチ角の角度データがどのように変化するのかを確認する必要があります。↓の動画のような地味な事を結構やりました(笑)
このようなデータをWiFi経由で送る確認のプログラムとして HalocodeはWiFiに接続するためのスクリプトと、ユーザークラウドメッセージで送信するスクリプトを作ります。ちなみにユーザークラウドメッセージは、メッセージに乗せて、「値」を送信することが出来ます。
mBlock5のスプライトには、標準ではユーザークラウドメッセージはありませんが、ブロックパレットの「+」ボタンを押すと拡張機能として追加することが可能です。
Halocodeのモーションセンサーを使うときは、一度、使いたいデータの変化がどのように起こっているかを確かめてから、実際のモノに取り付けてプログラムすると、より理解が深まるんじゃないかと思います。
最後に余談ですが、このフィジカルコンピューティングをするうえで、一番時間がかかったのは、それぞれ量の違うビールの画像を8枚用意したことです。現実世界は難しい(笑)
※今回、Makeblock Japan様のご厚意で、日本発売前のHalocodeをお借りし、レビューする機会を頂いております。日本の電波法による技適などは、取得済のモノです。日本発売の時期、価格などは、近く発表されるとのことです。
※2019年5月10日に発売開始されました。詳しくはこちら。