現実世界を制御するプログラミング 〜toioを動かしてみた〜

開発者ブログ

こんにちは、「Playgram(プレイグラム)」開発チームの高妻(こうづま)です。


以前、このブログでは「ロボットを制御するプログラミング」について取り上げました。今回は、Playgram と連携して実世界のデバイスを動かせたら楽しいかも?と思いつき、実際に試してみた例を紹介します。

実験環境の解説

Playgram と連動して実世界で動くデバイスとして、今回、株式会社ソニー・インタラクティブエンタテインメントが開発した toio™ [1]”toio™” は、株式会社ソニー・インタラクティブエンタテインメントの登録商標または商標です。を使ってみました。

toio は「toio コアキューブ」(キューブ)というロボットが2台、本体(toio コンソール)、toio リングがセットになっています。通常は本体にカートリッジを挿入してゲームを遊ぶのですが、今回は toio のキューブのみを使用しました(Playgram と toio の接続は弊社で実験的に行ったものです。実際の教材では、Playgram をデバイスと接続する機能は未対応になります)。

キューブを制御するソフトウェアは、Unity 向けに提供されている「toio SDK for Unity」を使用しました。

Unity はゲームを開発するために広く使われているソフトウェアです。Unity を使うと、家庭用ゲーム機用のソフトやスマートフォン用ゲームなど、様々な環境で動くゲームを開発できます。Playgram も Unity を使用して開発されています。

Unity での Playgram 開発画面

toio のキューブ実機を動かせるだけでなく、Unity のシミュレータ上でも toio のキューブを動かすことができるので、実際に実機で動かす前にシミュレータ上で動きの調整を行うことができて便利です。サンプルも充実していて、複数台の toio を連携して動かすサンプルなど実機を持っていなくてもシミュレータだけでも楽しめます。

今回 Playgram は iPad アプリを使用したのですが、iPad と toio 間の Bluetooth®[2]”Bluetooth®”はBluetooth SIG, Inc.の登録商標です。 接続についても toio SDK で提供されている機能をそのまま使用しました。

Bluetooth(ブルートゥース) を知らない人でも、Wi-Fi®[3]”Wi-Fi®”は、Wi-Fi Allianceの登録商標です。(ワイファイ)は聞いたことがあるかもしれません。Wi-Fi は家の中でインターネットに接続したりするための無線の規格です。Bluetooth も同じように、無線でスマートフォンやコンピュータどうしが通信するための規格です。Bluetooth は無線のイヤホンやコントローラなどを接続するのによく使われます。今回は、Bluetooth を使って、toio と iPad をつないで通信しています。

実際に試してみた

toio と iPad を Bluetooth で接続した状態で[4]iPad に接続されると toio からピコピコ音が鳴ってユーザーに通知してくれます。、Playgram のステージの中をロボットが障害物を避けて動くのに連動させて toio キューブを動かした動画がこちらです。右下に、Playgram での様子をキャプチャしたものを合成しているのでご覧ください。

こちらのステージではロボットが目の前の障害物を避けてゴールに到達するのがクリア条件です。右下の Playgram のエディタの再生ボタンを押すと、作成したプログラムが実行されてロボットが障害物を避けて動きます。

動画右下の Playgram のロボットが前方と左右に動くタイミングで、toio SDK の Move 関数[5]Move 関数は、toio を指定したスピードで指定した秒数動かす関数です。を呼び出して toio キューブを動かしています。

動かすプログラム自体はそこまで難しくないのですが、思い通りに toio が動く様子を見て toio が生きているような感覚を感じて少し可愛らしく感じました。

感想

今回は toio を動かすためにアクチュエータを制御する機能だけを使いましたが、toio は6軸のモーションセンサーで衝突や傾きなどを検出したり、複数の toio を連携して作業させることもできるので、Playgram で動いている様子を実世界でうまく表現できたら面白そうです。個人的には、toio のモーターを交換する、追加の基板を載せて機能を追加する、など自分で機能を拡張できれば楽しいかも、と妄想してしまいました。

先日、Playgram を使われている生徒さんの作品を開発チームで拝見する機会がありました。開発チームの想定しない機能の使い方をしている作品や、物凄く手間のかかっているのがひと目でわかる細かい作品など、どれも素晴らしい作品ばかりで子どもたちの無限の可能性に驚きました。

今回、toio と Playgram の連携を試してみて、もし Playgram から外部のデバイスを制御できたら、あの素晴らしい作品を作る子どもたちならどういう使い方をして楽しませてくれるだろう、と想像するだけでもワクワクします。

Playgram を入り口に、ロボットなど現実世界を動かすプログラミングにも興味を持つ子どもたちが増えると嬉しいです。

References

References
1 ”toio™” は、株式会社ソニー・インタラクティブエンタテインメントの登録商標または商標です。
2 ”Bluetooth®”はBluetooth SIG, Inc.の登録商標です。
3 ”Wi-Fi®”は、Wi-Fi Allianceの登録商標です。
4 iPad に接続されると toio からピコピコ音が鳴ってユーザーに通知してくれます。
5 Move 関数は、toio を指定したスピードで指定した秒数動かす関数です。