IchigoJamとエレキットの赤外線センサーを使って、車が往復コースを走るタイムを計測します。
動画はこちら。
手作り感あふれる装置です(笑)
ベースの板はホームセンターで買った桐の集成材(92×40cm)、壁はamazonの段ボール箱です。
メインの計測コンピュータはIchigoJam。
液晶シールド基板を新たに作りました。計測用の入力ポートとして、OUT5・OUT6ポート(プログラムでIN10・IN11ポートに切り替え)を付けています。100kΩの抵抗でプルアップ。
センサーはエレキットの「リレー付き赤外線通過・反射センサー PS-3242」。
https://www.elekit.co.jp/product/PS-3242
スタートラインとリターンラインの2セット使います。
部品点数が結構多くてはんだ付けが大変ですが、かなり賢く、いい感度で反応します。
発光部と受光部の間に電源ケーブルがあるのですが、走行する車がひっかかるので工作用紙でカバーしました。
受光している赤外線が切れると、リレーがカチンとONになります。
その出力を、そのままIchigoJamの入力につなげます。
今回はLEGO Education WeDoの車を、Scratchで制御して走らせます。
車の前に距離センサーを付けています。
Scratchのサンプルプログラム。
距離センサーの値を見て、前に壁が近づくとバックしてもどります。
計測結果。リターンラインまでのラップタイムが5.5秒、往復タイムが8.3秒でした。
センサーがリレー回路で、タイムはIchigoJamのTICK関数で計算しているので、0.1秒単位の計測がせいぜいです。今回の目的には十分でしょう。
実はこの装置、以前にArduinoを使って作りました。
http://www.white.umic.jp/jyc/2015/03/17-220000.html
それをリメイクしましたが、IchigoJamだと入出力や計測プログラムがとても簡単ですね(^_^)
あとはセンサーの配置やプログラム次第で、片道コースや周回コースのタイム計測もできます。
計時プログラムリスト
- スタートラインを切ると、計時を始めます。
- リターンラインを切ると、ラップタイムを表示します。
- 戻って、再びスタートラインを切るとゴールです。ゴールタイムを表示して計時を終了します。
- IchigoJamのボタンを押すと、最初に戻ります。
※(9/5)間違って計測がスタートしても、ボタンを押すとリセットできるように修正。
10 '*Time Measure 20 SWITCH 1 30 CLS 40 CLV 50 OUT 5,-1:OUT 6,-1 60 WAIT 60 70 ?"*Time Measure*" 80 BEEP 10,30 90 IF IN(10) CONT 100 CLT 110 ?"START!" 120 BEEP 130 '@LOOP1 140 LC 0,2 150 T=TICK() 160 ?T/60;".";T%60/6; 170 IF BTN() RUN 180 IF IN(11) GOTO 130 190 ?" LAP" 200 BEEP 210 '@LOOP2 220 LC 0,3 230 T=TICK() 240 ?T/60;".";T%60/6; 250 IF BTN() RUN 260 IF IN(10) GOTO 210 270 ?" GOAL" 280 BEEP 10,30 290 IF !BTN() CONT 300 RUN
※20行の「SWITCH 1」を削除すれば、通常のモニタ環境で動かせます。