face book ページも更新中! https://www.facebook.com/taisukem1

twitterも更新中! https://twitter.com/marutai_nara

2023年10月10日火曜日

ギア比チェッカーの開発

 


モーター制御を履修し始めて約半年が経ちました

前作の車高ゲージの開発からプログラミングや電子工作のスキルが向上してきました

新しいスキルを習得するのは楽しいですね~


さてとある方からレシオを測定するツールを安く作れないか?という依頼がありお盆ごろから検討を進めていました

ベースになったツールはこれ
すごく立派なツールですがなかなかのお値段らしく一般化が難しいことが課題のようです
筐体もしっかりしてそうだし真面目に開発して販売台数からしたら妥当なものなのかも…

そこで既存品を活用してコストダウンを考えてみますが,結構ハマったポイントもあったのでブログで紹介します

当初の自分のコンセプトとしては

  1. タイヤ回転数検知は非接触でメカニカルな部品を排してコストダウンする
  2. マイコンはarduino、一般的なLCDに表示させる

1について

ホイールに黒いテープを貼ったり,何かカバーを被せて反射率を変えて検知できると思ってました

このセンサーは反射型フォトセンサーで市販されている回転数計にも似たようなセンサーが搭載されています

写真のセンサーは秋月で1個50円で売られているのでこれで検出できればコストも下がりそう

これでホイールの白と黒の部分の閾値を読み取って黒になった瞬間にカウントを1上げるといったロジックで計算できると思いきや…
確かに読み取りはできるが成功率がかなり低く,実際は500rpm程度で回っているはずが100rpm程度と表示されます

センサーの出力だけでは不安定なのか?とも思いLM358NというアンプICと可変抵抗をユニバーサル基板に搭載してみて反射センサーの信号を増幅してかつデジタル信号にしてみます
閾値は可変抵抗で変えられるといった構造です

これは検知するしないがめちゃくちゃシビアで可変抵抗の角度が少しでもずれると検知しなくなります
環境が安定している屋内でこれなら屋外ユースでは間違いなく成立しないと思い
反射型は断念しました


フォトセンサーを安定して検知できるのはやっぱりこの構成なのかな


結局Amazonで販売されている安いロータリーエンコーダー(2000円程度)で対応しました

ちゃんと筐体を検討して製造できればマウスエンコーダーが適用できて100円程度に圧縮できるがいったん保留


2について

当初は一般的に売ってるarduino + LCDを検討していましたが

いろいろ調べてみたらSwitchScienceが輸入しているM5Stackシリーズという便利なマイコンに出会いました



面倒な配線の実装が不要なだけでなくLCD専用のライブラリのインストールも不要で本当に便利な世の中というものを体現した商品


ということでM5Stackとロータリーエンコーダーを適用したレシオチェッカーという組み合わせでつくったのがこれ


LCDの表示がきれいにできるのでテンション上がりますね

エンコーダーについては不要なホイールレンチをぶった切ったものを市販のカップリングで繋いで接続してます



タイヤ回転数、モーター回転数、ギア比を同時に表示させてます

モーター回転数がどうしてもフラつくので左のボタンを押すと5秒間のレシオの平均値を測定して表示させています.レシオ5.806の車両に対して5.81と表示するのはかなり近いものかなと


ここで終わりにするつもりでしたが

上のM5StackBasicは実売で6000円程度します

車検風景の動画があったので見てみましたが流れ作業でレシオだけ確認していてタイヤの回転数情報とか不要では…?レシオだけ数値がデカデカと表示されればいいのでは?

ということでM5StackBasicから1枚目の写真のようにM5StickCpulsに変更しました

本家サイトが一番安くて3800円で購入できます
これでも6軸IMUとWifiモジュールが入ってます すごい


もはやエンコーダーよりも同等か小さいサイズになったので3Dプリンタで筐体も作ってみました


いろいろ画面のレイアウトいじってみましたがレシオ以外にも表示できそう

本体の”M5”ボタンを押すとモーターの回転数とタイヤの回転数を切り替えて表示できます





動作はこんな感じ

撮影しながらでうまく保持できていないのでギア比がふらふらしちゃってますが

とりあえずちゃんと計測できてそうです

さてプログラム的にハマったところはBasicでもCpulsでもどちらもGPIOポートにモーターに張り付けるホールセンサー信号とロータリーエンコーダー信号を入力しています

最初はDigitalReadで読んでみましたが回転数が数千回転以上では精度よく計測できないことがわかりました

なので割り込み関数を使ってコード作成をしています

どちらも内部プルアップして検知できています

ちなみに使用したホールセンサーはこちら


1個30円のICです

スルーホール部品でリード線をつけるためにピッチ変換基板に無理やりつけて

3Dプリンタで作ったモーター固定治具にグルーガンで封止した構造にしてみました



ここまで構築できたので次のレースでは車検係として運用してみて問題点を洗い出してみようと思います

またギア比縛りレースだけではなく図らずもタイヤ回転数制限のレースでも使えるものになったのでそちらでも様子見できればなと思います