IoT LED matrix
~スポーツ大会のIoT化~
東京大学機械工学部3年 石井柊斗
<背景>
以前、僕はバドミントンサークルに所属していた際に、他大学含む80近くの他サークルと合同で大会を運営していました。運営をしていく中で、大会における様々な場面に置いて手作業の非効率な作業が多く、多くの人員と時間がかかっていました。そのことから、大会自体のIoT化を図ることで、大会の運営をスムーズにかつ、参加者や運営者にとってより楽しめるものにするのを目的に製作に取り掛かりました。
<目標>
様々な機能をつけましたが、主な目標としては以下の3点です。
- 大会運営の利便性向上
- 大会の進行情報の共有
- ユーザーの使いやすさ
上記の大きな目標を達成するために、機能として大まかに以下のようなものをつけることにしました。
<大会運営の利便性向上>
(1)トーナメント表の自動生成
バドミントンをはじめとして、大会ではトーナメント形式をとることが多いです。トーナメントを組むには手書きでもエクセルでも相当な時間がかかります。また、多くの場合ランダムに組むことはありません。例えば、優勝候補同士を最初に当てるような組み方、同じチーム同士を早々と対戦させることは避けるように組まなければなりません。そして、シードもこれまでの成績データから選ばなければなりません。これらを全て考えながら、何百人もの選手データをトーナメントに起こすのはとても大変な作業なので、プログラム上で行えるようにしました。
(2)審判のコール取得
審判は審判用紙に得点を記録する作業と同時に試合の様子を見なければならず、さらに選手に得点を伝える仕事をします。これとは別に得点板をめくる役も必要でした。得点板自体をIoT化することで、審判のコールをピンマイクから、Bluetoothで得点板に送って、音声認識を通して得点を更新するようにしました。
また、得点データは得点板のラズパイ内で記録しておくことで、得点経過の記録も残せる他、得点経過から下のような審判用紙も自動作成できるようにしました。
(3)トーナメント表、試合オーダー自動生成
これまではトーナメントの運営役はこれまでの試合結果をもとに、次の試合の組み合わせ、選手や審判の招集、コートの準備などを行わないといけませんでした。IoT化をすることで、試合結果を得て、次の試合オーダーを作成します。また、試合進行具合から次に入るべき試合の組み合わせを通知するなどのシステムもできました。これにより、運営の人はプログラムが処理した結果から次の試合の組み合わせを決定でき、大幅な作業の削減が可能になりました。
<大会の進行情報の共有>
(1) SNSを通して進行情報の通知
Twitterを通して、大会の試合が一定試合数進むごとに、既にオーダーが決まっている今後の試合順や現在行われている試合の得点、勝ち負けを記録したトーナメント表などを呟くようにしました。また、LINEではアカウントに話しかけると、話しかけた内容に応じて現時点の試合データを受信できるようなbotを作成しました。
(2) ホームページの自動更新
試合が進むごとにホームページもFTPを利用して更新することにしました。これによって、ホームページから誰でも今の進行状況が取得できるようになりました。
<ユーザーの使いやすさ>
(1) PCのGUI
大会運営者のPCから簡単に操作ができるようにGUIを作りました。ボタンを押すことで様々な大会に必要な操作ができます。また、得点板からAzureを通してそれぞれの得点板に関する情報を取得することができるので、PC側で全体のプログラム処理を行います。
(2) Slackからの操作
スマホからSlackで得点板にメッセージを送ることで得点板の操作が可能です。
<仕組みの概念図>
以上の機能を実現するために、下のような仕組みにしました。
<設計>
上のようなシステムを作るにあたって、以下のようなことにも取り組みました。
<回路設計>
LEDmatrixの回路はとても配線の量が多く、最初は左の画像のようにブレッドボードで行なっていましたが、配線ミスを探す作業がとても大変でした。そこで、得点板に使うLEDmatrixの回路をAutodesk Eagleを使って、回路CADで作りました。このデータをもとにプリント基板を作成しました。これによって、LEDmatrixを上下左右に繋ぎ合わせても点灯させることができるようになりました。
<ハード設計>
ハードとしては、得点板使うLEDmatrixや点灯に使う電源やラズパイなどを箱型のケースの中に全て収めて、大量の配線が外から見えないように工夫しました。素材としては、アクリル板を購入してCADで作成した図面をもとに、レーザーカッターでカットした板同士をアクリル用の溶着材で接合しました。また、電源やラズパイ、LEDmatrix同士の連結にはネジ穴を開けて、ねじ止めして固定しました。
<LEDmatrixの表示>
LEDmatrixの表示には様々な機能を付け足しました。基本的には表示したいものを画像に変換し、ピクセルごとの色のRGBをLEDmatrix上のドットに合わせることで表示しています。これによって、文字の表示や画像の表示、スクロールなどができるようになりました。
<商品としての価値>
社会人や大学生、小中高生規模のスポーツの大会は日本中で行われているため、需要は大きいと思います。これによって、運営者にとっての大会管理の大変さも参加者の大会の楽しみ方も大きく変わるため、画期的な商品だと思います。大会運営をしていた仲間たちは、作ってほしいと皆口をそろえて言っていたことから、製作に取りかかったが、実現可能性も高く、売れる製品になると思います。
<今後の課題>2
今後の課題としては以下のようなことを考えています。
- GUI,HPのデザインの整備
- LEDmatrixを表示器として応用(動画の再生など)
- 音声認識の向上(リアルタイム性)
- 様々なスポーツの大会の現場で使える仕様にする
<IoT演習を通しての感想>
IoT演習を通して、短い制作期間の中、自分の作りたかった成果物を作ることができて本当に良かった。IoT演習では自分の好きなものを費用の制限なく作ることができる、滅多にない機会なので、作りたいものが明確にある後輩にはオススメしたい。今回の制作では実際に手を動かして多くを学べました。レーザーカッターや回路CADに触れることは初めての経験で、またAzureなどのクラウドについての知識やSNSなどのAPIの知識、ラズパイの操作の知識、音声認識の仕組みやプログラムの知識やHP設計の知識などなど、本当にたくさんのことを習得できたと思います。IoTメディアラボでたくさんアドバイスをしてくださった、石山さん、萩尾さん、山岡さん、ほんとうにありがとうございました。