前回概要を説明した反応時間を計測するデバイスについて、デバイスの構成と動作をより詳しく書いてみる。
デバイスの構成
デバイスの内部構造は写真のようになっている。
構成は以下の図のようになっている。
各マイコンの処理をシンプルにしたいため、あえてマイコンを複数実装している。センサ制御用のマイコンは、加速度センサの初期処理を実行した後は、常時加速度センサの値を取得してメインのマイコンに送信し続けているだけである。
写真下部に写っている基板がBLEモジュールで、BL652の基板を使用している。メインの基板作成時には想定しておらず、後付けになってしまったため、少し無理のある実装になった。メインのマイコンとのUART通信をそのままBLEにスルーして、PCと通信ができるようにしている。
デバイスの動作
以下の図は動作の概要を示したものである。
BLE経由でUARTのコマンドを受けると、計測中の状態に移行する。時間をカウントするとともに、LEDバーの表示を更新している。時間のカウントにしたがってLEDバーを更新し続け、点灯幅を短くしていく。
この間、加速度センサの値をモニタしており、加速度に一定の変化があれば、デバイスが動いたものとしてトリガを発生させる。
動きを検出すると、計測完了状態に移行する。時間のカウントを停止し、計測結果をUARTから出力、BLE経由で送信される。この状態ではまだLEDバーは、検出時の状態で点灯している。
この後、計測終了のコマンドを受信して、待機中の状態に戻る。ここでLEDバーは消灯する。
また、計測中に動きが検出されないまま規定時間が経過すると、計測不可と判断する。計測不可であることを送信し、計測終了コマンドを受信することで、待機中の状態に戻る。
以上のような動作を繰り返している。