Halocodeのモーションセンサーは3軸加速度センサー+ジャイロセンサーは構成されている

STEAM教育用のシングルボードコンピューターであるHalocode(ハロコード)には、取り付けたモノの角度を検出するモーションセンサーがついています。

Halocode_モーションセンサーの画像

HaloCodeの3つの軸(x、y、z)と、それに対応するロールとピッチの方向の説明図

 

 モーションセンサーは、3軸加速度センサー(X軸・Y軸・Z軸)と、角度を検出するジャイロセンサーで構成されています。
 このセンサーを使いこなすには、センサーの原理などをある程度理解しておく必要がありますが、、そこまで本格的な知識がない初級学習者でも、簡単に活用できるように、mBlock5に、モーションセンサーのデータを活用するためのブロックが用意されています。

Halocode_モーションセンサーのブロック ↑の画像の中で、Halocodeが揺れているとき、とか、揺れている・揺れの強さのようなブロックがありますが、これは、加速度センサーのデータを利用しています。
 
 また、矢印を上向きに指しているときのようなブロックや、Halocodeが、左に傾いている、のようなブロックもありますが、それらは、ジャイロセンサーを活用したブロックになります。左に傾いてとかの基準点は、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機能があります。

mBlock5_アップロードモード画像

 アップロードモードとは、デバイス(HaloCodeやmBotなどのハードウェア)にスクリプトをアップロードするモードです。
 このアップロードモードのオン・オフの状態によって、利用できるブロックが変わりまので、mBlock5でプログラミングをする際アップロードモードの状態を常に確認しておく必要があります。

方法1
HalocodeとmBlock5(PC)をUSBケーブルか、Bluetoothで接続して、メッセージを送る。この場合、アップロードモードはオフにしておく必要があります。
※Bluetooth接続する場合は、Makeblock専用のPC受信ドングルを別途購入する必要があります。
参考記事:Maleblock専用受信ドングルレビュー

方法2
HalocodeをWiFiに接続し、mBlock5サーバーを介してmBlock5(PC)にユーザークラウドメッセージを送る。この場合、アップロードモードはONにしておく必要があります。
※mBlock5に「ユーザークラウドメッセージ」という拡張機能を入れる必要があります。

Halocode_Sprites_コネクト図の画像

mBlock5_v5.0.1の場合です。今後のmBlock5のアップデートでこの接続図は変更になる可能性あります。

 
 今回は、HalocodeとPCをケーブルで接続させるのは見た目でスマートではないと思ったので、Bluetooth接続でメッセージ送信か、HalocodeをWiFi接続ーmBlock5サーバー経由でユーザークラウドメッセージ送信のどちらかで検討しました。

 Bluetooth接続の場合、多くの人がMakeblock専用のBluetooth送受信ドングルを追加購入(追加出費)する必要があります。

参考記事:MakeblockのBluetoothドングルは、ガチユーザーを支える優れモノ

 追加出費無しが良い人は、WiFi環境が必要になりますが、ユーザークラウドメッセージ方式で行いましょう。上の動画もユーザークラウドメッセージを使っています。

② Halocodeの角度検出方法 

Halocode_モーションセンサーの画像

HaloCodeの3つの軸(x、y、z)と、それに対応するロールとピッチの方向の説明図(再掲)

 今回の動画では、ピッチ角を使いました。まずは、ピッチ角の角度データがどのように変化するのかを確認する必要があります。↓の動画のような地味な事を結構やりました(笑)

 このようなデータをWiFi経由で送る確認のプログラムとして HalocodeはWiFiに接続するためのスクリプトと、ユーザークラウドメッセージで送信するスクリプトを作ります。ちなみにユーザークラウドメッセージは、メッセージに乗せて、「値」を送信することが出来ます。

Halocode_ユーザークラウドメッセージでデータ送信の画像

mBlock5のスプライトには、標準ではユーザークラウドメッセージはありませんが、ブロックパレットの「+」ボタンを押すと拡張機能として追加することが可能です。

mBlock5_スプライトの拡張機能ユーザークラウドメッセージブロックの画像

拡張機能として、ユーザークラウドメッセージを簡単に追加できる

 

 Halocodeのモーションセンサーを使うときは、一度、使いたいデータの変化がどのように起こっているかを確かめてから、実際のモノに取り付けてプログラムすると、より理解が深まるんじゃないかと思います。

 最後に余談ですが、このフィジカルコンピューティングをするうえで、一番時間がかかったのは、それぞれ量の違うビールの画像を8枚用意したことです。現実世界は難しい(笑)

※今回、Makeblock Japan様のご厚意で、日本発売前のHalocodeをお借りし、レビューする機会を頂いております。日本の電波法による技適などは、取得済のモノです。日本発売の時期、価格などは、近く発表されるとのことです。

※2019年5月10日に発売開始されました。詳しくはこちら

7月9日HaloCodeもくもく会案内