モーター制御を履修し始めて約半年が経ちました
前作の車高ゲージの開発からプログラミングや電子工作のスキルが向上してきました
新しいスキルを習得するのは楽しいですね~
さてとある方からレシオを測定するツールを安く作れないか?という依頼がありお盆ごろから検討を進めていました
- タイヤ回転数検知は非接触でメカニカルな部品を排してコストダウンする
- マイコンはarduino、一般的なLCDに表示させる
1について
ちゃんと筐体を検討して製造できればマウスエンコーダーが適用できて100円程度に圧縮できるがいったん保留
2について
当初は一般的に売ってるarduino + LCDを検討していましたが
いろいろ調べてみたらSwitchScienceが輸入しているM5Stackシリーズという便利なマイコンに出会いました
面倒な配線の実装が不要なだけでなくLCD専用のライブラリのインストールも不要で本当に便利な世の中というものを体現した商品
ということでM5Stackとロータリーエンコーダーを適用したレシオチェッカーという組み合わせでつくったのがこれ
LCDの表示がきれいにできるのでテンション上がりますね
エンコーダーについては不要なホイールレンチをぶった切ったものを市販のカップリングで繋いで接続してます
タイヤ回転数、モーター回転数、ギア比を同時に表示させてます
モーター回転数がどうしてもフラつくので左のボタンを押すと5秒間のレシオの平均値を測定して表示させています.レシオ5.806の車両に対して5.81と表示するのはかなり近いものかなと
ここで終わりにするつもりでしたが
上のM5StackBasicは実売で6000円程度します
車検風景の動画があったので見てみましたが流れ作業でレシオだけ確認していてタイヤの回転数情報とか不要では…?レシオだけ数値がデカデカと表示されればいいのでは?
ということでM5StackBasicから1枚目の写真のようにM5StickCpulsに変更しました
もはやエンコーダーよりも同等か小さいサイズになったので3Dプリンタで筐体も作ってみました
いろいろ画面のレイアウトいじってみましたがレシオ以外にも表示できそう
本体の”M5”ボタンを押すとモーターの回転数とタイヤの回転数を切り替えて表示できます
動作はこんな感じ
撮影しながらでうまく保持できていないのでギア比がふらふらしちゃってますが
とりあえずちゃんと計測できてそうです
さてプログラム的にハマったところはBasicでもCpulsでもどちらもGPIOポートにモーターに張り付けるホールセンサー信号とロータリーエンコーダー信号を入力しています
最初はDigitalReadで読んでみましたが回転数が数千回転以上では精度よく計測できないことがわかりました
なので割り込み関数を使ってコード作成をしています
どちらも内部プルアップして検知できています
ちなみに使用したホールセンサーはこちら
1個30円のICです
スルーホール部品でリード線をつけるためにピッチ変換基板に無理やりつけて
3Dプリンタで作ったモーター固定治具にグルーガンで封止した構造にしてみました
ここまで構築できたので次のレースでは車検係として運用してみて問題点を洗い出してみようと思います
またギア比縛りレースだけではなく図らずもタイヤ回転数制限のレースでも使えるものになったのでそちらでも様子見できればなと思います