この記事は<JLCPCB>様の提供で執筆しています。
ESP32の汎用テストボード作成
目次
作成するテストボードの仕様設定
ESP32を使用するときに以下のようなボードを一般的に使用されていると思います。
ESP32 ESP-32S 開発ボード 2.4GHz
実際に使用するときって、このボードをブレッドボードにさして、そこからLEDやセンサを表示器を繋いでいくと思います。
テストをしていくと回路自体がスパゲッティ配線になったりと、わかりにくく、なんとなく使いづらいなと思っていました。
それならば、「自分が一番使いやすいESP32の汎用テストボード」を作ってしまえばいい!!
ということで、「僕の考えた最強のテストボード」の機能等を考えていきましょう!
必要な機能
今回テストボードに搭載する機能を洗い出していきました。
- できるだけ多くの入出力
- 入出力ピンすべてにLEDの表示機能
- ボード内で使用できるデジタル入力用スイッチ
- ボード内で使用できるアナログ入力用ポテンショメーター
- プログラムが自動書き込みできるシリアル通信可能なUSBインターフェース
- デバッグ用LCD表示機
- SDカードへの書き込みが可能なデバイス
以上の機能を搭載できる、テストボードを設計していきます。
シリアル通信機能
シリアルインターフェースにはFT232を使用します。
USB端子とFT232インターフェースICとトランジスタを図のような感じで配線して、
USB通信によるプログラム自動書き込み機能とシリアル通信時の通信確認用LEDを搭載しています。
この時、LEDをGNDに落としてしまうと点灯しなくなってしまうので注意です!!(昔、やらかした……)
MicroSDカード通信機能
なんと、MicroSDカードの読み書きもできるようにしちゃいます。
ログを残したたり、中にテキストファイルとかを入れて読み込ませたりなどに活用できます。
私はあまり使用することはないのですが、テストボードなので勢いで搭載しました。
無いよりもあったほうが、公開しなくてすむでしょう!!
今回使用したSDカードソケットはDetectピンが搭載されているものを使用しています。
Detectピンをどこかの入力に接続することで、SDカードの挿入状態がわかります。そしてLEDでも確認できるようにしています。
SDカードを使用するときはWifiなどが使用できなくなってしまうことは理解して使用する必要があります。
LCD表示機能
今回のテストボードで一番搭載しておきたかった機能!!
LCD表示パネル!! です。
これが、あるだけでだいぶデバッグが楽になります。
プログラムさえ組んでしまえば、パソコンなしでもテストボード一枚でセンサのデバッグなどができてしまうので、だいぶありがたい機能です。
普通にLCDを表示させるとIOピンをたくさん使用してしまうので、今回はI2C接続できるIOエキスパンダー「PCF8574」を使用して図のような回路でLCDを表示させます。
使用するLCDはできるだけ情報量を多くしたかったので4x20の最大80文字表示させることが可能なLCD「SC2004CSWB-XA-LB-G」を採用しました。
もちろんバックライト照明も点灯するようにしています。
汎用テストボード回路設計と発注
上記の仕様をいろいろとまとめて回路図に起こしてみるとこんな感じになりました。
これをいい感じに、kicadを使用して、配線図を書いていきます。
なんやかんやで、こんな感じでまとめました。
上記に書いていた使用以外に3.3Vと5.0Vの外部出力できる電源端子を用意しました。
各入出力ピンに関してもオス・メスどちらのピンでも挿せるようにしています。
そして、今回は基板にちょっとお絵描きとして、20mmx20mmのアイコンのシルクを入れてみました。
絵がつぶれてしまうかもしれないなぁと不安を感じつつチャレンジしてみます!
この基板で、毎度お世話になっているJLCPCB様で基板発注を行いました。
発注図面の作成、及び発注方法は過去の記事<【ESP32で電子工作-2】デジタル時計の作成(1)【プリント基板の作成】>見ていただければと思います。
基板製作と動作確認
基板の開封と組み立て
発注していた基板が届いたので、さっそく確認していきましょう。
今回の基板は白色で作成しました。テストボードって白色のイメージがある…
きれいに作っていただきました。シルクもきれいに印刷されています。
白背景に黒のシルクはとても美しい!!
そして、気になるアイコンですが…
↑のようになりました! もっと潰れてしまうと思っていましたがしっかりと自分のアイコンだと認識できるモノになっていました。
このサイズで十分認識できるレベルの印刷ができているので、今後はアイコンマークのシルクを載せていこうと思います。
これぐらいのサイズなら全然認識できるので、この記事を読まれている方も自作基板に自分の色を出すのはいかがでしょうか??
そして、部品の実装をせっせと行っていき、完成したのが以下のような感じです。
サイズ感も使いやすいサイズで、ほぼ想定通りです。
DIPスイッチをいっぱいつけていろいろと機能の切り替えをできるようにしているけど、もうちょっと減らせそうだなぁという感想。
さっそく、動作テストをしていきましょう!!!
動作テスト
ということで、完成した基板を動かしていきました。
実際に、動作している動画がこちらになります。
スイッチによるデジタル入力、ポテンショメーターによるアナログ入力の値をLCDに表示をさせています。
そして、マイコンからのデジタル出力をLEDで確認しています。
きれいに、そして想定通りに動作しています。
今回の反省点は、ESP32 wroverのIO16, IO17にデジタル入力スイッチを繋げてしまったことと、LCD用IOエキスパンダーのSCLとSDAをテレコにしてしまったぐらいです。
上の回路図を参考にする人は気を付けてください。(なぜ、こんな間違いをしてしまったのか…
今後、改善点としては
- I2C入力は固定しちゃって出力ピンから消去(常にLCDつなぐだろ)
- デジタル入力ピンのピン番号の切り替え(使えないスイッチ2ピンの切り替え)
- シリアル通信基板はそこまで機能を使用しないから「FT232」ではなく「CH340」とかに変更
- プッシュスイッチも国内で買える安価なものに変更
ぐらいですかねぇ…
この辺を修正したら、完璧な気がします。
修正後は、プレゼントとかの企画とかもしてみたいと思っています。
お知らせはたぶんtwitterで行いますので、ぜひフォローをお願いします!!
今回の記事は以上となります。
それでは、良き電子工作ライフを!!
See You …