ページ

2024/08/15

ESP32S3+丸型ディスプレイでクリノメーターを作る

以前購入したモジュールが余っていたのでクリノメーターを作ってみた。一個しか注文していないのに2個送られてきたという曰くつきの品である。アリエクでこういうことは度々あるので不良品が出るのを見越して多く送ってるんじゃないかとか色々想像する。

このモジュールは丸型ディスプレイにESP32S3のボードと6軸加速度センサーがくっついていてとても使いやすい。前に購入したESP32C3のボードとは違ってIOピンが背面に出ているので拡張するなら圧倒的に使いやすい。値段が倍くらいするのでもう少し安ければ、とは思う。

追加する回路が電源と光センサーだけなので追加基板はスカスカだ。

ちなみに秋月で買ったロームのDCDCコンバーターは入力出力にコンデンサーを追加しないと動作不安定になる。

ケースも3Dプリンターで出力する。タカチのケースに穴開けするよりずっと楽!


 画面はどこかで売ってるクリノメーター丸パクリだ。車の線画がシエラのしかなかったけど遠目で見たら見分けつかないからそのままだ。製品の動画を見たけどIMUの出力にフィルターが入っていないぽいので車が加速するのも検出して出力がカクカクしている。これはmadgwickフィルターを使っているのでほとんどカクカクしない。フィルターの係数は0.1だと収束が遅すぎるので0.5くらいにした。あとはバックライト制御の光センサーにヒステリシスをつけたら完成だ。

思ったよりかっこよくできたのでソースを公開しようと思ったけどグラフィックライブラリの設定とか色々解説しないとどうしようもないのであきらめた。

スマートウオッチのディスプレイで追加メーターを作るのはなかなか楽しい。 標準的なメーターより小さいけど運転中にこんなもん見ないし大きくても邪魔なのでこれくらいでちょうどいいかもしれない。



 

2024/07/19

TPUでエアファンネルを出力してみた

 ポイントが溜まっていたのでやっすいインテークチャンバーを購入してしまった。パチもんなので鉄でできていてクソ重い。これの本物のほうには空気を流れやすくするファンネルがついているのでこいつにも追加してみることにした。

普通に追加しようとするとチャンバーをこじ開けてもう一度溶接しなおす羽目になるのでTPUフィラメントで柔らかいファンネルを作って押し込むことにしたらうまくいった。しかしガソリンやらいろいろ吹き返してくるスロットル直上にこんなものをくっつけて無事で済む気がしない。一応TPUは耐ガソリンらしいがこんなもの信用できないのでお蔵入りかな。

実際には内部に取り付けます

 
新プリンター。手間いらずで素晴らしい


丸型ディスプレイを手に入れたのでブースト計を作る

アリエクでスマートウオッチ用の丸いディスプレイが売っていたので思わず買ってしまった。

 購入したのはESP32C3というチップが載ったやつだ。C3は入出力が少ない。ボードから取り出せるのはi2cとスイッチ入力一つだけ。i2cはプルアップ抵抗の所から取り出した。

 



グラフィックライブラリは色々試したところLovyanGFXというのが使いやすかった。他のに比べて異様に速い。気圧センサーはなんでもいいだろうと適当なものを買ったら相対気圧のセンサーでブーストセンサーには使えないことが判明した。結局、モノタロウで絶対気圧のセンサーを買いなおした。マニホールド内の気圧の他に大気圧も都度測定しないと標高が変わると誤差が増えるので通常の大気圧センサーも必要だ。

 

最初はダッシュボードの上に並べるつもりだったが3Dプリンタを新調したのでピラーマウントのフードを作ることにした。内装カバーに合わせてフードを作るのだがプリントアウトしては修正を2回繰り返したところで飽きた。多少の隙間は我慢すればいい。

 


 

センサーにチューブを接続して注射器で気圧を上下させるときちんと反応する。あとは車に取り付けるだけだが急に億劫になってきた。そのうち取り付けるだろうと思う。そもそもノーマルのジムニーにブースト計はいらないのではないか。 


丸型ディスプレイを今から買うならI/Oの取り出しピンが背後に出ているものがあるのでそっちを買ったほうが便利だと思う。安いものはi2cしかインタフェースがないので注意だ。

LovyanGFXでの設定メモ

// SPIバスの設定 

       cfg.pin_sclk = 6;            // SPIのSCLKピン番号を設定
      cfg.pin_mosi = 7;            // SPIのMOSIピン番号を設定
      cfg.pin_miso = -1;            // SPIのMISOピン番号を設定 (-1 = disable)
      cfg.pin_dc   = 2;            // SPIのD/Cピン番号を設定  (-1 = disable)

// I2Cバスの設定
      cfg.i2c_port    = 0;          // 使用するI2Cポートを選択 (0 or 1)
      cfg.freq_write  = 400000;     // 送信時のクロック
      cfg.freq_read   = 400000;     // 受信時のクロック
      cfg.pin_sda     = 21;         // SDAを接続しているピン番号
      cfg.pin_scl     = 22;         // SCLを接続しているピン番号
      cfg.i2c_addr    = 0x3C;       // I2Cデバイスのアドレス



最新の投稿

ESP32S3+丸型ディスプレイでクリノメーターを作る

以前購入したモジュールが余っていたのでクリノメーターを作ってみた。一個しか注文していないのに2個送られてきたという曰くつきの品である。アリエクでこういうことは度々あるので不良品が出るのを見越して多く送ってるんじゃないかとか色々想像する。 このモジュールは丸型ディスプレイにESP3...