自動タイム測定器とは
自動でタイムを正確に測定する装置です。正確といっても、ビデオのコマ送りから算出されたタイムよりは正確ではないですが、少なくとも手動測定よりは正確、かつ平等になると思います。
筆者の息子は陸上クラブで短距離走を嗜んでいますが、タイムの測定は、計る人や計り方により大きくずれが生じる印象を持ちました。ということで、そこら辺で手に入る機材やスマホを利用して、自動タイム測定器を作ってみようと思った次第であります。
仕組み
自動タイム測定器には、2つの装置が必要になります。それぞれの役割は以下の通りです。
-
ゴール判定装置
Raspberry Pi 3 に測距センサーを取り付けた装置で、ゴールラインに向けて配置します。測距した距離の値が大きく変化するとランナーが通過 (ゴール) したと判定します。ゴール後に、測定タイムをコントローラーへ送ります。 -
コントローラー
「よーいドン」をするスターターが持つ Android アプリです。スタートボタンをタップすると、ゴール判定装置にスタート命令を送り、ゴール判定装置のストップウォッチをスタートします。
通信方法
この測定器の仕組みでは、コントローラーからゴール判定装置に対して、"スタート命令" をネットワーク経由で送信します。短距離走はミリ秒を競う競技であり、レイテンシーが殆どないことが望ましいので、プライベートネットワークの使用を考えていました。
しかしながら、モバイルバッテリーでも動作する省電力の Wi-Fi ルーターだと 100m の距離はまず届かない (天候条件により届く場合もあるかもしれませんが) ので、装置間通信はインターネットを経由させることにします。
こうなるとレイテンシーが大きくなることが予想されますが、現段階ではこれといった対応策は考えていません 実装していく過程で考えていこうと思います。
実装について
-
ゴール判定装置
Raspberry Pi 3 の OS には Windows 10 IoT Core を使用します。
この中で動作するゴール判定のアプリは、.Net Core (C#) で開発します。 -
コントローラー
Android (6.0 Marshmallow 以降) のスマホで、アプリは Xamarin.Android (C#) で開発します。
とりあえず用意するもの
- Android スマホ
- Raspberry Pi 3
- microSD カード 8GB 以上 (OS インストール用)
- 開発用の PC (Windows 10 + Visual Studio 2017)
とりあえずこれだけです。他にも電子回路のパーツが必要になりますが、回路設計の記事の時に詳しく説明します。
まとめ
今回は作りたいものの概要を説明しただけで、これと言って技術的な内容ではありませんでしたが、次回は、Raspberry Pi 3 に Windows 10 IoT Core をインストールし、作業 PC から動作確認できるようにします。
なお このシリーズは、現時点で完成品が存在せず、実際に開発しながらの不定期連載となります。なので、記事数も未定であり、そもそもモノが無事に完成するかもわかりませんが、これをご理解の上 読んでいただけるとありがたいです