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

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

2023年3月26日日曜日

車高ゲージの開発

こんなものを作ってみました

最近モーターを制御してみようプロジェクトをひっそりと進めているのですが

自分はコーディングスキルが全くなく,モーターの回る理論がわかってもゲートドライバにどのような信号を与えればよいのか分かっていない状況でした.

もちろん最近はオートコーディングやChatGPTがコード生成してくれる便利な機能がたくさんあります.

ただ基本のキが分かっていないのにそういった便利な道具を使うのは性に合ってないのでarduinoを題材に電子工作でコーディングスキルを磨いてみようという動機から始めてみました.


電子工作で作ってみたいなーと思っていたのはこんな感じのセッティングボード

車高は赤外線センサの非接触のもの
タイヤの下に独立した板を配置してその板はロードセルで支持
この構造でまず車高は置くだけで、しかもボディが付いていても測定できる
かつ4輪荷重を同時に測れていることでコーナーウェイトも測定できる

セッティングボードの前で正座スタイルでツイーク調整で接地荷重を合わせていますがこういうツールでもっと楽にできないかなと
しかもツイーク調整の後,車高がズレたりすることもあるので同時に車高が分かればセッティング工数も減りそう


ただこれをやるには
・arduinoでLCDに結果を表示させるコードの履修
・arduinoでロードセル、測距センサのアナログ値を読み取るコードの履修
・割と精度が求められるセッティングボードの加工
と結構手間がかかりそう

そんな中、京商のチームメイトのK上氏のツイートからヒントをもらいました
なるほど、とりあえず車高だけ測ってみようと

とりあえず簡単なものを作ってみてスキルをあげつつ
最終的な目標の便利デジタルセッティングボードの開発に移るような段階を踏んだ開発にしてみようと思います.


ということでひとまず手持ちのOPTION No.1製の車高ゲージを持っていたのでこれを改造してみます

筐体は3Dプリンタで自作

構造としてはもともと目盛りのついていた左側の高さを可変抵抗で読み取るものとしました.

表示は数字だけでいいと思ったので7セグLEDにしてみます.


7セグLEDを光らせるのにあんまり工数かけたくなかったので
このモジュールを選択
複数桁の配線やダイナミック点灯のコードなど面倒なことをせずに豊富なライブラリとI2C通信で表示させる数字を表示できます.

Githubでライブラリが公開されているのでarduinoIDEにインストールして使用しました.

書いたコードはこんな感じ
可変抵抗はA0ポートに接続してグローバル変数に定義しています.

#include "HT16K33.h"
#include "wire.h"
#include "Arduino.h"
#include "math.h"

///////////////////////////////////////////////
//変数定義
float INPUT_PIN = A0;
float VOLUME;
float Slidedistance;
///////////////////////////////////////////////

HT16K33 seg(0x70);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);   //I2C通信レート定義
  seg.begin();
  seg.displayOn();
  seg.brightness(5);   //7セグLED輝度設定
  seg.displayClear();
  Wire.setClock(100000);

}

void loop() {
  // put your main code here, to run repeatedly:
  VOLUME = analogRead(INPUT_PIN);

  Slidedistance = VOLUME * 0.0194 + 3.0429 - 3.55;  //測定値1mm当たりの可変抵抗変位をCADから算出

  Serial.print("VOLUME: ");
  Serial.println(Slidedistance);


  seg.displayFloat(Slidedistance);

  delay(500); //数値更新頻度

}

このコードでの動作確認はこんな感じ


たった37行で動作するのは楽ちんでいいですね


ただSlidedistanceを定義しているところが苦しい感じ
3Dプリンタをモデリングしたときに測定値1mm当たりの可変抵抗が動く距離を計算してコードの中に入れてみましたが,これだと筐体のガタ等で値がバラついてしまいます.

なのでA1ポートにはタクトスイッチを取り付けているので
5mmの基準高さを測ったときに校正し,相対値として測れるコードにアップデート予定

あと数字がパラパラ変わって見づらいので平均値をとるようなコードに一緒に変更予定


とりあえずちゃんと回路が組みあがって動作したのがうれしいのが今日の記事
電子工作が新しい趣味になりそう



ただやっぱりこの構造だと繰り返し精度に難ありな感じ
やっぱり非接触かな~

2023年3月1日水曜日

しらかば2in1 RallyFestivalレポート ~マスダンパーの開発~

 


今年も真冬の恒例行事にもなっているしらかば2in1主催のスノーラリーに行ってきました!

去年の記事では3Dプリンター製のガルアームサスアームを採用してレースに備えていましたがコロナの影響でレースは開催されず

ただスカイホビーで走らせた結果としては従来の真っすぐなサスアームに対してギャップ走破性はかなり向上していました

でもやっぱりギャップを受け止めきれずストレートではピョコピョコ跳ねてしまいます

これはロマン重視のラリーカーには実車感があんまり出てない動きだし

スピードとしてもストレートで跳ねた瞬間はタイヤが地面から離れてしまうので加速の効率は悪くなってしまいます.

普段通っているZENのF1カーにはバッテリーを可動体としたマスダンパーを装着されたF1が良く走っているのでこれをインスパイアしてラリーカーにもマスダンパー適用を検討してみました

詳細については”すだぴょん”氏に動画にしてもらいました!
23年3月1日時点で再生回数が1万回を超える動画になりすだぴょん氏にも褒められてしまいましたw


構造としては動画にある通りなんですがアッパーデッキ上に平行リンクを組んで,スプリングで支える構造としました

ただスプリングを付けるだけではマウントしづらいのでダンパーケースを使ってマウントする構造を取りました


製作は割と手間がかかっていて,リンクはボールエンドと板厚2mmのカーボンプレート

バッテリーは板厚0.8mmのカーボンプレートで作っています

手間がかかることは目に見えているので前もって可動範囲やバネレートは事前に検討してから製作に移りました


先ずはマスダンパーとはどのように考えるか、ですが

wikipediaには動吸振器の項で記事になっています

いろんな数式が書いていますが根底の理論としては

”車体を持ち上げる(落下する)力と反対方向の力を掛けて振動を防ぐ”

というものとなります.

このことを念頭に置いておけば数式が示す意味も理解しやすくなります



マスダンパーオモリ変位量:Xa[mm]
車体変位量:Xm[mm]
車体加振力:f(t)[N]
マスダンパーバネレート:ka[N/mm]
車体バネレート:km[N/mm]
車体ダンピング:ζm[N・m/s]
上記のようにラジコンカーを簡単な形状にモデリングします
難しい言葉で書くと2自由度強制振動系となります
先ほど青字で書いたことを上図でいうとf(t)と釣り合う力をmaを用いて出すという考えです

(t)とか出てくると何のこと!?となってしまいますが時間の関数なのでエクセルで0sec,0.001sec,0.002secといったようにオートフィルしていけば計算できるので身構えなくても大丈夫です

今回走らせる想定の路面をモデル化しました
これを計算すると18Hzのsin波となります.1秒進む間に18山のギャップを踏むイメージですね.これは過去の動画を見ながらギャップの数を数えたら多くともこんな感じでした

20mmというのは正直エイヤと出しました.タイヤの1/3の径より大きいと超えられないと聞いたこともあるし,今のラリーカーの車高は20mm程度なのでひとまずこの値で置いています

さてwikiの記事によるとマスダンパーの固有振動数(ωa)と路面の周波数(Ω)が同じときに逆位相でマスダンパーが動くと記載されています

マスダンパーの固有振動数は
この数式で示せる
電卓でもできますね.maは1Sサイズリポバッテリーの150gでその時,ωa=Ωが成り立つkaは1.8N/mmとなります.普段使うスプリングの柔らかいもので代用できそうです

kaを求めたらxa(車体の変位)がゼロとなる変数を下記式を使って求めてみます


前述のようにtの関数となるのでエクセルのオートフィルを用いて計算します.
計算結果は下記グラフのようになりました

マスダンパーのストロークと支えるバネレートを求めました
今回の1Sサイズバッテリーは150gなので必要なストローク量は約3mm,スプリングレートは1.8N/mmとなります.

グラフにある通りマスが小さいと長いストロークで柔らかいスプリング
マスが重いと短いストロークで固いスプリングになるので
じゃあ20gぐらいのオモリを20mmぐらい動かした方が簡易な構造でいいじゃん!となりますが新たな指標として質量比を考慮する必要があります
マスダンパー重量から車重で割った質量比μの関係は下記図になります

wikipediaより
今回はバッテリー150gに対して車重は1350g (総重量は1500g)なので質量比μは0.11
上図でいうと赤プロットに近いところになります
X軸に注目するとΩ/ωa=1の時振動を完全に消失でき同調状態になります.ただΩ/ωa=1の両隣に進むと振幅であるY軸が大きくなってしまう

そして質量比が大きいほど振幅の上昇度合いが少ないので,大きい値をとる方がロバスト性が高いと言えます 

Ωは正直写真からカウントした数になるので毎度同条件になるとは限らないので,ある程度の範囲でマスダンパーが機能するようにしておくのが重要です

参考までに減衰を付与するとさらに安定度が高くなる
今回のスノーラリーの期間中に減衰まで弄る時間がありませんでしたが,腰を据えてやるならこのアプローチもありですね


実際に走行させてみた
スノーラリーではインナーボディを付けるので車載映像は取れず
オフロードコースではアクションカメラが汚れそうだったので近所のスピードバンプで試してみました

動作は問題なくしてますね.効果は…まぁ…あるんでしょう.アクションカメラの手振れ補正が半端ないのでマスダンパー有り無しでも差がわからなさそう



さてスノーラリーの結果としてはミニレースが行われ
すだ氏の動画にもありますがレース2で優勝しました!
頑張って作ったラジコンがよく走ると楽しいですね


さてこのマスダンパー検証
本来の目的はオンロードツーリングカーへの応用が主目的でした
ラリーみたいなギャップが激しいカテゴリーで効果検証ができればよりギャップの低いオンロードだと効果は見込めるだろうと

全日本のあるグリーンパークではギャップ対策に苦労した面もあるのでこの辺りも応用できないかと目論んでいました

ギャップ高さ5mmでのシミュレーション結果

質量比をどのくらい置くか,減衰はどうするか?
そもそもオンロードの路面のギャップってどの程度なのか?すべて妄想ですが40gぐらい積んで0.5N/mmのスプリングで支え,2mm動くギミックがあればとりあえず効果検証は出来そう