CIVIC(シビック)FL1のOBD2実践編:モニター&データロガー作成(IO制御)

目次

このページの目的

OBD2データモニター&データロガーを作成に向けて、前回の作業では液晶制御が確立できた。今回はその制御を煮詰めていくことにしよう。やはりこのページも車のカスタムネタというより電子工作ネタでしかない。

IO制御基板製作[2023-02-23]

今回作成する制御基板には以下の機能を搭載する。

基板設計

上記機能を達成するために準備したのは以下の部品だ。

購入品
日清紡マイクロデバイス 三端子レギュレーター(12V->5V) NJM7805SDL1-TE1:1個
MICROCHIP CANトランシーバー MCP2562FD-E/P:1個
秋月電子 マイクロSDカードスロットDIP化キット AE-MICRO-SD-DIP:1個
Alphaplus Connectors & Cables ターミナルブロック8P横 TB401-1-8-E:1個
その他、ピンヘッダー、ピンソケット、各種抵抗、コンデンサー
IO制御回路
IO制御回路
IO制御基板配線
IO制御基板配線
IO制御基板
IO制御基板
IO制御基板部品実装後
IO制御基板部品実装後
液晶へ接続
液晶へ接続

よし、完成だ??

▲目次に戻る

ESP32使用上の注意点

はい、動きませんでした...初めて作るものなので、回路設計が悪いのかプログラムが悪いのか、基本に返ってじっくり確認しよう...結果、回路は悪くない...はずで、以下のソフト的な修正が必要だった。

厳密には、SDカードのプルアップ抵抗は10kΩがお決まりのようなので、3.3kを付けちゃったのはよくないはず。でもまぁ、動くから良しとしておこう。

注意点1:ESP32でGPIO12を使う場合

今回は、SDカード制御にHSPI(GPIO12:MISO、GPIO13:MOSI、GPIO14:SCK、GPIO15:SS)を使うつもりで回路作成したのだが、これが一癖あった。
※ESP32のHSPIについてはGoogle先生に確認してほしい。

注意点:
ESP32のGPIO12は内蔵FLASHの電圧設定ピン用途が標準状態だ。このピンが電源ON時にH(3.3V)になっていると、FLASH駆動電圧を1.8Vに設定しちゃうので起動できない。L(GND)だとFLASH駆動電圧3.3V設定となり起動する
とのこと。

で、SDカード用のMISO(GPIO12)は3.3Vのプルアップ抵抗をつけてるので、電源ON時にはGPIO12に3.3Vが印可されESP32そのものが起動しない、状態となってしまった。

起動しない問題の回避方法として、GPIO12を使用せずに他ピンへ変更している例が多々あり、「えー、基板を作り直すの面倒なんだけど...」とさらにGoogle先生に教えを乞うと...正攻法での回避方法が見つかったよ。ありがとう、根本調査をやってくれた人たち。

参考url
ESP32 ブート時のGPIO12によるFLASH電圧設定機能を無効化する
https://chakoku.hatenablog.com/entry/2020/01/25/234359

この回避方法を実現するためには以下のソフトをインストールする必要がある。

必要なソフトウェア
python
https://www.python.org/downloads/
ESP-IDF
https://docs.espressif.com/projects/esp-idf/en/v4.2/esp32/get-started/windows-setup.html#get-started-windows-tools-installer

これらのソフトウェアがインストールできれば、以下を実行しよう。

espefuse.py -p comポート set_flash_voltage 3.3V

一度、これを実行しておけば、あとは、GPIO12の初期電圧に関わらず、内部で3.3V設定にしてくれる。

注意点2:ESP32で使うSDカードはFAT32フォーマットだ

これはタイトルのとおり。家に転がっていた64GBのSDカードを入れてみたが「認識しねぇ...」。Windows10でフォーマットする場合、このサイズだとexFATNTFSフォーマットになっちゃうが、それだとESP32は認識しない。サードパーティアプリを使ってFAT32フォーマットにするべし。

注意点3:ESP32ではCAN通信速度が半分になる場合がある

こちらも結構悩んでしまった。「回路...OK」、「プログラム...OK」、「なのに、車から全然レスポンスがが返ってこねぇ...」。こちらも先人に感謝。

参考url
ESP32 で arduino-CAN ライブラリを使うと通信速度が半分になる問題と解決策
https://qiita.com/thgc_Mtd_h/items/2ca63df01889f40a4232

▲目次に戻る

そして次のステップは?

もうすこしプログラムを作りこんだら、いよいよ車への取り付け、、、のためにはなんらかのケースにいれなきゃならない。そして、今の時代のキーワードと言えば、「3Dプリンター」だよね。いや、これ(3Dプリンター)はあくまでも「手段」で、絶対「目的」にならないようにしないと。

Creality Ender-3 S1 Pro
Creality Ender-3 S1 Pro
エンクロージャー
エンクロージャー

▲目次に戻る

続く...

CIVIC(シビック)FL1のOBD2実践編3:モニター&データロガー作成(いちおう完成)