ハードウェアの知識と経験がなくてもIoT(インターネットオブシングス)やAIまでも体験できるシングルボードコンピュータ、Makeblock社のHaloCodeがすごいので引き続き紹介していきます。
過去3回に渡って、HaloCodeはどんなもので開発ツールのmBlockはこんな感じとか、HaloCodeの特徴の1つのWi-Fi機能とユーザークラウドメッセージ機能の紹介や、これらの機能を使って作った即席IoTフィジカルコンピューティングゲームの紹介などを行ってきました。
今回は、専用Bluetooth(BT)ドングルという新たなアイテムを手に入れたので、その便利さや特徴の紹介、ユーザクラウドメッセージ(UCM)とのレスポンス速度比較などやってみたいと思います。
ちなみに、私はもともとプログラマーを職にしていました。過去に作った自作のAndroidアプリで50,000DL以上になったことがあります。ついでにそのアプリがフジテレビの「とくダネ!」で紹介されたこともあります。現在、CoderDojo紙屋町(広島)で子どもたちと一緒にプログラミングをやるボランティア活動もやっています。現在の本業はWebディレクター。
では行きます。
HaloCode関連記事
Makeblock専用のBluetoothドングルはこれ【見た目、購入先、値段】
これがMakeblock製品専用のBluetoothドングルです。箱のデザインがシンプルでちゃちくもなく好感がもてました。
大きさは小さめのUSBメモリくらい。1ボタンのみのシンプルデバイス。ちなみに一番右の黒いのはバッテリーです。ほんとはダイソーの300円のがほしかったのですが、近場のダイソーを数件まわったけれど残念ながら目的のものには出会えず。このため、Amazonで安価で薄くて見た目がシンプルなやつを購入。
Bluetoothドングルの使い方と便利なところ
HaloCodeとペアリングする方法
まずはBluetoothドングルとパソコンを接続します。
次に、Bluetoothドングルのボタンが光っている状態で、HaloCodeにも電源供給してやれば自動的にペアリングモードになるようで、その状態でBluetoothドングルのボタンを押すとめでたくペアリング完了。ペアリングが完了したら、HaloCodeのLEDが白色で点滅。操作がシンプルでとても良い。
Bluetoothで接続していますが、基本的にUSBケーブルで接続したのと同じことができます(アップロードやイベント処理など)。
USBと同じことができるとはいえ、Bluetoothで接続している状態は、ケーブルの取り回しや長さの制約から開放されますので、無線の恩恵はでかいです。めっちゃ便利。
それと、なにげにフィジカルコンピューティングゲームのコントローラーとしてテストしているときに、腕にセットアップしたままの状態で、キーボードをタイプしながらのプログラムの改修(コーディング)、HaloCodeへのプログラムの流し込みが行えるのがポイント高かったです。めっちゃ便利。
イベントドリブンについてのメモ
私がやりたかったのはHaloCodeとスプライト間でのやりとりをユーザクラウドメッセージを使わずにやること。これが、Bluetoothドングルを購入したおおざっぱな理由です。
しかし、いざやろうと思ったらBluetoothデバイスを制御するブロックが見当たらない。
これはもしかしてできないのか?
結論は「問題なくできる」です。
なぜ私が「できない」と思ったかというと「ユーザクラウドメッセージ」使うときのように専用の制御ブロックを使わないといけないと思い込んでいたからです。結局のところそんなことしなくても、HaloCodeとスプライト間でのやりとりは、Scratchで標準の「イベント」ブロックを使ってやればよかっただけ。
しかし、ここで重要なポイントが1つだけあります。
それは「アップロードモード」を「OFF」にすることです。これをやっておかないとBluetooth接続でもUSBケーブル接続でも、HaloCodeとスプライト間でのやりとりはできません。
まとめると、一連のプログラムの更新処理の流れはこんな感じになります。
余談ですが、ユーザクラウドメッセージを使用した場合のHaloCodeとスプライト間のやり取りの場合は、「アップロードモード」が「ON」でも問題ないです。
ユーザクラウドメッセージ(UCM)とBluetooth経由のイベントによる応答速度の比較
HaloCodeをBluetooth接続して最も確かめて見たかったのは、実は応答速度がどれくらい違うかです。
以前作ったフィジカルコンピューティングゲームでは、HaloCodeとスプライト間のやり取りをユーザクラウドメッセージを使ってやっていました。
ゲーム中に反応がちょっと遅いな、タイムラグがやっぱりあるなと感じることがありました。
応答速度が上がればもっと楽しそうだな。そんなきっかけからBluetoothドングルを購入しました。
さて、百聞は一見にしかず。レスポンスの差を動画したので見てみてください。
実験では、飛行機を左右にコントロールするコントローラーとしてHaloCodeを使っています。予想どおり、Bluetooth接続によるイベントドリブンのほうがレスポンスはよかったです。ちなみに、プログラムはこんな感じ。
ユーザクラウドメッセージ方式のプログラム
Bluetooth接続イベントドリブン方式のプログラム
また、早速以前つくったフィジカルコンピューティングゲームをBluetooth接続によるイベントドリブン方式に変えてみたところ、ゲーム全体のレスポンスがよくなりました。
まとめ
いかがだったでしょうか?
HaloCodeのBluetoothドングルは買いです。ケーブルから開放されると、思考も開放されます(笑)。まじめな話、無線でHaloCodeのプログラムをアップデートできるだけでもほんとに便利です。一度体験したらやめられなくなるやつです。
気になっていた、ユーザクラウドメッセージとの反応速度の差も予想通りの結果となり、フィジカルコンピューティングゲーム作って遊ぶには必須デバイスになりました。
さて次は何をしよっかな?
2人プレイや対戦型のフィジカルコンピューティングゲームとかつくってみたいですね。
ということはHaloCodeが2台あれば・・・
おっと!Bluetoothは1台しか接続できないではないですか!
そうなんです、Bluetooth接続だとHaloCodeの接続は1台限定。一方で、ユーザクラウドメッセージだと2台以上でもできそう。こりゃまたアイデアと工夫しがいがありそうだな。
たぶん 続く
コメント