オートラップ計測ロボットを作る ー 基礎モジュール編
インドアR/Cカー(KYOSHO MINI-Z)をより楽しむため、ラップタイム計測ロボットをarduinoを使って作ってみました。
ちなみに愛車はPorsche 911 GT3 RS lavaorange(右)とNISSAN SILVIA K'S(S13) Aero Pearl White(左)です。
特徴
・ロボットですが動きません(なんとなく形からロボットと命名しました)。
・計測できるのは一台のR/Cカーのみです。
・スタートシグナルが点灯します(レッド二回、グリーン一回)。
・スタートシグナルと同時にサウンドが鳴ります(ぴっ、ぴっ、ぴー)。
・10周で計測を完了します(デフォルト)。
・通過時LEDを点灯します(以前のベストタイムを更新したときはグリーン、そうでなければレッドが点灯します)
・最終ラップ時は、レッドLEDが点滅します。
・完走すると、各週のタイムと合計、平均、ベストラップをシリアルコンソールに出力します。
・バーボス(おしゃべり)モードを設定すると、応援メッセージ・ブーイングメッセージをシリアルコンソールに出力し、盛り上げてくれます。
仕様
利用しているユニットやパーツは以下の通りです。
・Arduino UNO R3
・測距センサ(SHAPR GP2Y0A21YK)
・LED
・圧電ブザー
回路図
簡単な回路なんで、なくてもわかると思うけど、賑わしておきます。
スケッチ(プログラム)
GitHubでinoファイルを公開していますので、こちらを自由にご利用ください。本業がプログラマなんで、割と柔軟にパラメータなど変えられるようにしてあります。改善あれば、プルリクよろしくです。
プロトタイピング
プロトタイプはお決まりのブレッドボードで実験していました。思い出として記録しておきます。不必要なジャンパ入ってますが、無視してください。
通過計測
最近のR/Cカーレースでは、各マシンにRFタグを貼付して計測しています。KYOSHOからもICTAGラップカウンター(ホームエディション)として販売されているのですが、ちょっと値が張るし、一人遊びなんで複数台計測は必要ないので、今回は赤外線測距センサ(PSD - Position Sensitive Detector)でやってみました。
このセンサは80cmぐらいまで計測できるものですが、プログラムではさらに絞って20cmぐらいで反応するようにしています。
以前から電子工作されている方なら、今回のロボットは5,000円-7,000円で作成できると思います。
お子さんと電子工作を楽しむための教材としても使えるといいなと思っています。たぶん、トイラジコンカーでも遊べると思います。
また気が向けば、RFリーダー編をやってみようと思います。
赤外線センサの前はかなりアナログなものでやってました。少し厚みのある紙を折り曲げて、内面にアルミテープを貼って、R/Cカーが上を通過すると通電するというスイッチです。
R/Cカーが通過する部分は、サンドペーパーを貼ってあります。どうしてもいいタイムを狙って、通過前にスロットル引くので、滑りまくります(笑)。
これでも結構楽しめましたが、やはり紙がタレてきます。
シリアルコンソール
結果はこんな風に表示されます。lap3,lap4はクラッシュしました(笑)。
Auto Lap Counter beta-6 Ready.
---- RESULTS ----
lap:1 05.77
lap:2 08.42
lap:3 10.47
lap:4 11.55
lap:5 07.98
lap:6 06.78
lap:7 07.38
lap:8 07.38
lap:9 06.49
lap:10 05.63
---- ANALYTICS ----
best lap: 10 time: 05.63
total: 77.88
avg: 07.78
次回はIoT(Internet of Things)編
ここで終わると面白くないので、最終的には以下のような機能追加を目指します。むしろ本業はこちらなんです。
・WiFiモジュールを付加して、計測データをクラウドへアップロードする。
・Google Homeのアクションを開発して、過去のデータを検索してもらって、教えてもらえるようにする。
「ねぇ、Google。スコアマネージャにつないで」
「スコアマネージャです。」
「現在のコースレコード教えて」
「2018年10月20日の13:30に記録された05:32秒です。」
「ほんとに速かつた・ですね。」
とか、言わそうと思います。