OBD2データモニター&データロガーを作成に向けて、前回の作業では液晶制御が確立できた。今回はその制御を煮詰めていくことにしよう。やはりこのページも車のカスタムネタというより電子工作ネタでしかない。
今回作成する制御基板には以下の機能を搭載する。
上記機能を達成するために準備したのは以下の部品だ。
よし、完成だ??
はい、動きませんでした...初めて作るものなので、回路設計が悪いのかプログラムが悪いのか、基本に返ってじっくり確認しよう...結果、回路は悪くない...はずで、以下のソフト的な修正が必要だった。
今回は、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先生に教えを乞うと...正攻法での回避方法が見つかったよ。ありがとう、根本調査をやってくれた人たち。
この回避方法を実現するためには以下のソフトをインストールする必要がある。
これらのソフトウェアがインストールできれば、以下を実行しよう。
espefuse.py -p comポート set_flash_voltage 3.3V
一度、これを実行しておけば、あとは、GPIO12の初期電圧に関わらず、内部で3.3V設定にしてくれる。
これはタイトルのとおり。家に転がっていた64GBのSDカードを入れてみたが「認識しねぇ...」。Windows10でフォーマットする場合、このサイズだとexFATかNTFSフォーマットになっちゃうが、それだとESP32は認識しない。サードパーティアプリを使ってFAT32フォーマットにするべし。
こちらも結構悩んでしまった。「回路...OK」、「プログラム...OK」、「なのに、車から全然レスポンスがが返ってこねぇ...」。こちらも先人に感謝。
もうすこしプログラムを作りこんだら、いよいよ車への取り付け、、、のためにはなんらかのケースにいれなきゃならない。そして、今の時代のキーワードと言えば、「3Dプリンター」だよね。いや、これ(3Dプリンター)はあくまでも「手段」で、絶対「目的」にならないようにしないと。