4千円でMINIのインジェクションの様子をモニターするSPI Monitorを制作した。(HW編)
MEMSを接続するのは5Vのシリアルを制御できればよいので、ワンチップマイコンがあれば簡単に接続できる。今回はWOL装置で扱ってみて簡単だったEPS32を使ってみた。必要なのは、MEMSと接続するケーブルと表示装置のLCDという簡単な構成。この前に激安と言っていたけど、5Kも出せばおつりがくると思う。私は時間がかかっても安い方がいいので、Aliexpressから調達している。Amazonからも買えると思うけど、ちょっとお高くなると思う。
用意するもの。
1.ESP32
これは、EPS32と開発ボードのセットを買ったがよい。自分が買ったときは674円だったけど、今日見たけど上がっていて808円だった。
2.LCDパネル(I2C接続の20文字X4行)
Arduino用LCDディスプレイモジュール,シリアルインターフェイスアダプター,青,緑,白の画面,20×4文字,iic,i2c,2004, 2004 – AliExpress 502
なんか軒並み価格ががんがんが上がっている。私が買ったときは450円だったけど、今は、732円だった。バックが青と緑があるので好みで買うとよい。
3.タイコーのコネクター
MEMSに接続するためのコネクター。これはMEMSケーブルを制作するときの余りを使った。それと、インタフェースを合わせるために、2K、3KΩの抵抗が必要。それに大昔のCD-ROMのオーディオケーブルが3芯だったので、これを分解してケーブルに利用した。入手に関しては、下記を参考にするとよい。
MINIのECUにPCと接続するMEMS激安ケーブルを作った。 | misagoのページ
締めて808+732X2+757=3837円で出来てしまう。
接続:
今回、ESP32と各デバイスの接続は下記の通り、EPSデバイスの詳細表示で接続デバイスを表示させてみた。
- GPIO Info:
————————————————– - GPIO : BUS_TYPE[bus/unit][chan]
- ————————————————–
1 : UART_TX[0] - 3 : UART_RX[0]
- 16 : UART_TX[2]
- 17 : UART_RX[2]
- 21 : I2C_MASTER_SDA[0]
- 22 : I2C_MASTER_SCL[0]
GPIO1,3はデバックで使うPC端末の通信で使うシリアルポート。GPIO16,17は、MEMSとのシリアル通信で使ったポート、21,22は、LCDを接続するためのi2cのポートの3種類である。これ以外では電源と、デバック用のUSBケーブルなど。今回は車載を見込んでいるので、開発用のブレットボードを使うことにした。丸で示してあるところに各々接続すればよい。各接続デバイスにシルクで書かているので、それに合わせて接続すればよい。
一つ注意がいるのは、MEMSは5Vのシリアル接続であること。EPS32の端子は3.3Vで作らているので、つじつまを合わせてやる必要がある。特に。MEMSから、ESP32に流す方向の端子は、電圧を変換してやる必要がある。そんなに難しいことはなく、分圧の法則を利用して抵抗で作ればよい。下がシャンク箱から抵抗を引っ張り出して、抵抗の定数を決めた。3K,2KΩを組み合わせれば生成できそうだった。なお、EPS32からMEMSに行くラインは、ノイズマージンが悪くなるだけなので、直結することにした。いまのところ問題なく動いている。
開発ブレットボードのGNDを利用して、電圧変換のための抵抗を組んでいるところ。
これでケーブルは完成。シリアルは反転で受けるので、受け側は下記のようになった。
次にLCDとの接続はI2Cで行った。こればブレットボードのそのままI2Cの端子がまとまっていたので、そのまま直結とした。しかし、接続しても文字が出なかったけど、コントラスト調整が全くあっていないので、これはかならず、半固定抵抗を回して調節すること。また、2枚使いにする場合には、I2Cのアドレスを変更しないと動かないので、2枚目を下記のように調整すること。
今回、20X4のLCD一つでいいかと思ったけど、一度に情報出ていた方が使いやすいと思って、2枚使いにした。I2Cはそのまま、同じ端子を分岐して、接続すればよい。本当は、一本調子のように配線するがいいだけど、面倒なんで2分岐で作ってしまった。
これでHWの構成は完了。文字で出るか確認して、出てくればうまくできている。
本当にシンプルな構成でMEMSの情報を引っ張り出すことができる。前は結構豪華なシステムでないとダメっただけどねえ。こんなに簡単にできるとちょっと意外だった。
最近のコメント