概要

スクリーン前に一列に並べた28個の花型コントローラは、花弁部分にアルミホイルを使用しており、触れるとタッチセンサが反応し、該当の花とその周囲のLEDが点灯する。スクリーン上にはその位置に対応する蝶が出現する。また、触れていない時もランダムに光るように制御し、空間演出を高めている。

スクリーンと設置された花型コントローラの様子

スクリーンと設置された花型コントローラの様子

花型コントローラに触れた時の動作の様子

花型コントローラに触れた時の動作の様子

システム構成

情報のやり取りは以下のように構成されている:

この方式により、中央制御と分散処理のバランスを取ったリアルタイム制御を実現している。

花型コントローラはタッチセンサにより反応する場所が28か所存在する.よって,複数のマイコンを用いタッチセンサの情報を収集,ゲームへの情報の送信を行った.

制約と選定理由

本プロジェクトでは通信手段として有線の直列シリアルを採用した。これは以下の理由による:

ゲームエンジン側

LEDの明るさ制御はUnity側で一括して行い、花同士の相関や分布的発光演出(正規分布的なぼかし)も実装可能とした。

蝶の生成は,ある程度の大きさの発生源のエリアを作成,そこの範囲内のランダムな位置からランダムな角度でランダムな蝶を飛ばすことで,カラフルな蝶の群れを実現している

花型コントローラの点滅の様子

花型コントローラの点滅の様子

システムの模式図

システムの模式図

各ソースコードは下記リンクを参照

ゲームエンジン側:https://github.com/momoyama-tech/e-ma-unity.git(Branch:5_11_controllerがイベントに用いたものである)

コントローラ側:https://github.com/momoyama-tech/e-ma-controller

構造

先に述べたように、子機または親機1台あたりにタッチセンサを6つ搭載している。各タッチセンサには6本の花が接続されており、花弁部分はアルミホイルで作製した。これらの花は、エナメル線で電気的に接続され、ひとつのタッチセンサとして機能する。

タッチセンサには、静電容量式の方式を採用した。この方式では、導電性の素材(今回の場合はアルミホイル製の花弁)にパルス状の電圧を加え、所定の電圧まで達するまでの時間(立ち上がり時間)を測定する。人が触れていない場合、導体は外部とつながっていないため、立ち上がり時間は非常に短くなる。一方で人が触れると、人体がわずかに電気を通すためコンデンサのように働き、立ち上がり時間が延びる。この変化を検出することで、タッチの有無を判別している。

マイコンにはESP32 WROOM 32Eを採用した。これは静電容量式タッチセンサ機能を内蔵しており、実装が比較的容易であること、複数台の導入が必要なためコストが低く抑えられること、さらにBluetoothとWi-Fiに対応しており将来的な拡張性が高いこと、Arduino IDEによって簡便にプログラミングができることが選定理由である。

配線にはエナメル線を使用した。エナメル線は安価であるうえ、はんだごてで簡単に被膜を溶かせるため、加工性にも優れている。配線は、花のLEDの正極・負極、タッチセンサ用の電極をまとめて接続し、それらをマイコンに接続する構成としている。

花のLEDは1本の花あたり2つ搭載しており、ひとつは花弁の中心に上向き、もうひとつは下向きに取り付けた。茎部分にはアクリル素材を用い、下向きのLEDが点灯した際に茎全体が光るように設計した(右図参照)。

マイコン一つ当たりのコントローラの全容

マイコン一つ当たりのコントローラの全容

花の花弁及びLEDの様子

花の花弁及びLEDの様子