M5 Stick Cでミニ四駆ラップタイマーを作りました。
ミニ四駆を始めたのですが、ある事に気がつきました。
オーバルホームサーキットで走らせているとタイムが速くなったのか遅くなったのかわからないのです。
公式ラップタイマーは生産終了
で、ミニ四駆用ラップタイマーが昔はあったような気がしたので調べましたが、タミヤ謹製ラップタイマーは生産が終わっていました。
残された道は高い中古ラップタイマーを買うか、謎のメーカーの謎タイマーを買うか自作しかありません。
スマホで計測もできるようですが、気軽さに欠けます。
僕のスマホは僕が使うので。
何か他に手段があったら教えて下さい。
自作するにあたっての要件
ただ作るだけではおもしろくないので色々機能をつけましょう
SNSに投稿する機能をつけようと思います。
あとは適当なセンサーでタイムが測れればいいです。
M5Stackが余ってないのでM5StickCで作ります。
センサーはgroveで繋げるのでM5StickCでも問題ありません。
センサーは当初、光センサーを計画していたのですが、家にあった超音波測距センサーにしました。
プログラムが楽なのと、適当な光検知センサーがなかったので
最終的な目標としては、M5StickCに搭載されているマイクだけで運用できるようにしたいですね。
用意するもの
M5StickC
複数個用意します。
アマゾン商品データの取得に失敗しました
ESP-32 picoの入ったマイコンボードです。
初期不良が多く、僕のボードも一個壊れて画面が映らなくなったので複数個購入した方がいいです。
grove 超音波測距センサー
Grove Ultrasonic Ranger のセンサーを用意します。
これは微妙に入手性が悪い気がします。
アマゾン商品データの取得に失敗しました
平行輸入品はアマゾンにもありますが、送料が高いです。
国内の共立や秋月などのパーツ屋で探した方がいいです。
リンクを貼りたいところですが、僕の収入にならないですしセッション切れでリンクがうまく貼れないので検索して探してください。
アマゾン商品データの取得に失敗しました
セットでついてくる事もあるようです。単品で十分なのですが、よく在庫切れになっているので頑張って探してください。
詳細は以下のとおりです。
http://wiki.seeedstudio.com/jp/Grove-Ultrasonic-Ranger
この記事を書いている時点では共立エレショップに在庫がありました。
プログラムについて
ソースコードはgithubで公開しています。
https://github.com/crowpilot/m5stick_mini4wd_laptimer
検出周辺
groveの超音波センサーはライブラリが存在していますが、ライブラリ使うほどのものでもないですし自分でコーディングしました。
周回数は表示の関係で6周にしました。
周回選択画面も作った方がよかったかな?
SNS連携について
SNS連携は当初wifi接続を考えていたのですが、twitter APIの安全な運用、特に組み込みの配布ソースコードへの記入が難しいのでQRコード読み取り形式にします。
QRコードも表示サイズに限りがあり、古いスマホでの読み取りが厳しい事があります。
新しめのスマホでも情報量を増やしたバージョン6以上は読み取れませんでした。
よってバージョン5の最大文字数106文字の中で、twitter web intent を作る必要があります。
詳細ラップは当然文字数が足りないので今回は合計、平均、最速タイムのみ投稿するようにしました。
よく考えたら時の桁いらないのでもう少し詰めれそうですね。
表示
画面サイズが小さいので表示できる文字数に限りがあります。
フォントを変えると同じサイズでも微妙に一行に詰めれる文字数が増えたりするようです。
画面が小さいので拡大しましたが画像がブレてますね。
取り付けについて
当然ですがラップタイマーはコースに取り付ける必要があります。
最初ダンボールで作ったのですが、音が変な反射するようでうまくいきませんでした。
そこで、3Dプリンタで作成します。
センサー取り付け角度を45度とるようにして、センサーの取りこぼしを防いでいます。
fusion 360で設計したのち、curaでスライスデータに変換します。
印刷してできあがったのがこちら
糸くずみたのはニッパーで簡単にとれます。
動かしてみよう(動画)
動かした動画がこちら。
ちゃんと検出していますね。
使い方について
電源ON
左側面のボタンを長押しするか、電源ケーブルを刺すと自動で起動します。
最初のオープニング画面(作り忘れてた)でセンサーをリセットしています。
具体的には、10回ほど距離を測定し、デフォルト距離として記憶しています。
この画面の途中でミニ四駆が走ったりするとうまく測定できないので気をつけて下さい。
コース選択
コースはオーバルホームサーキット、ジャパンカップジュニアサーキット(JCJC)、その他を用意しました。
ソースコードを書き換えればいくらでも追加できます。
右側のボタンで選択を切り替えます。
M5と書かれている大きなボタンで決定します。
決定後、LAPとだけ表示された画面に推移します。
ラップ計測
最初にセンサーを通過した時点から1周目が開始となります。
6周走ると自動で計測を終了し、リザルトを表示します。
Tはtotal
AはAverage
BはBest
となっています。
Detailを押すと各周ごとのタイムを表示できます。
SNS連携
リザルト画面でSHAREボタンを押すと投稿SNS選択画面が表示されます。
現在TwitterとMastodonに対応しています。
SNSを選択するとQRコードを表示できます。
QRコードの読み取りは画面に映り込みなどがあるとできません。
角度や距離をうまいこと調整してください。
古いスマホなど、カメラ性能が弱い場合は読み取りに時間がかかるかもしれません。
今後の改善点
ラップ6周だけってどうなん
永久に走らせたい人もいるかもしれないよ
2周くらいで止めたい人もいるかもしれない
電源の自動オフ機能が欲しい
1分くらいセンサーが反応しなかったら電源オフでいいかな?
連続で計測するときのセンサーリセットいらないかも
ディスカッション
コメント一覧
まだ、コメントがありません