目的
特にこれを作ると言う意思も無かったが、ESP32-2432S024Cを購入した。
黄色いボード色を特徴としたESP32ボードシリーズの比較的最新作。
液晶とタッチパネルがビルトインなので、後で配線を忘れると言う事も無い。
タッチパネルは容量式で触り心地が良いのではと思っている。
バッテリー接続端子も付いており、モバイルも可。※バッテリーは別売りだよ。
最大の特徴はCPUがESP32-WROOMだと言う事、之なら技適警察の目に触れないだろう。
◆◆◆ よし、携帯型のファミコン擬きでも作ってみるか ◆◆◆
ゲームパットはどうしようかな。タッチパネルによる操作で満足できるだろうか。
経緯
AliEXのセールを見ていたら、黄色いボードが目についた。
ESP32-2432S024Cを含むシリーズは、7~1.28インチの表示器が存在するようだ
24Cは比較的新しい様で資料が少ない、ESP32-2432S028の方が有名なのだろう。
しかしシリーズなのだろうが回路が同一でも無い様で、多少の変更が必要のようだ。
ESP32-2432S024には24N(タッチ無し)、24R(抵抗タッチ)、24C(容量タッチ)の3種類が有る。
多少高めだがタッチの操作性の良いと考え24Cを購入した。
※抵抗式は指先で強く押さないと、反応が鈍いような。
24Cの資料は製造元が「ESP32-2432S024.ZIP」の名称で公開している。
※登録が必要なサイトも有るが、登録無しで利用できるサイトも存在していた。
「jingcai ESP32 module」で見つけたが、正式かどうかが不明なのでURLは割愛。
見た限りでは2432S028と2432S024Cの違いは、
バックライトの制御信号ピン 28:21 24C:27
タッチパネル 28:XPT2046(抵抗式) 24C:CST820(容量式)
又、28,24C共にバックライトの店頭処理が必要で、Adafruitの例等は追加処理が必要。
※モバイル利用を想定して居るのと思う。
タッチパネルに使用しているCST820のライブラリは2種類見つかった。
bb_captouchとしてライブラリとして公開されているもの。
24Cのデモプログラムに含まれているもの、cst820.cpp。
何れもシングルポイントには対応しているが、それ以外の動作は挙動が良く判らない。
bb_captouchでは2点タッチに対応して居るが、タッチ後約100ms程度で一旦停止する。
※何らかの初期化が必要なのだろうが、cst820.cppに書かれている方法では動作せず。
※cst820.cppにはゼスチャーについての記載が有るが、これも動作せず。
※肝心な部分は契約しないと開示しないのだろう。しょうがないか。
参考プログラムのMovingIcons,BallMazeを動作させるにはLovyanGFXライブラリの導入が必要だが、之は2432S028迄にしか対応して居ない。
24Cで使用する場合は先ずLovyanGFXライブラリを導入後、下記ファイルを該当位置のファイルと交換が必要。
※LovyanGFXの1.1.12をベースにしており、それ以外ではこのファイルを使用しない事。
※簡単な変更なのでファイルの差し替えでは無く、ライブラリの該当位置の書き換えの方が望ましい。
「LovyanGFX一時的更新ファイル」
LGFX_AUTODETECT.hpp
LGFX_AutoDetect_ESP32_all.hpp
この状態で放置するとライブラリ更新が発生した場合、更新点が抹消されるので、
ライブラリ名称を「LovyanGFX+24C」に変更し、library.propertiesを差し替えておく事により更新されなくなる。
なお資料のZIPが見つかれば必要無いだろうが、参考として回路図を下記に上げておく。
「ESP32-2432S024C回路図」
開発環境設定
arduino環境は、ググれば一杯出て来るだろう。
参考プログラムのincludeに記載が有れば、別途ライブラリの導入を行ってください。
ライブラリを書き換える場合、通常は、ドキュメント\Arduino\libraries下に格納されている筈。
参考プログラム
動作下記人したプログラムをgithubに上げておく。
元のデモプログラムを24C用にアレンジしただけだが、プログラム理解の一助になれば幸いである。
「ESP32-2432S024C 参考プログラム」
動作画面
参考プログラムの簡単な動作説明を下記に示す。
1.LED
基板動作確認用、3色LEDが点滅する。
2.graphicstest
LCD確認用、AdafruitのILI9341サンプルに24Cのピンを割り当てた。
※動作が遅いのは汎用になって居る為だろう。
3.touch1
タッチパネルに使用しているCST820の動作確認。bb_captouchに2点タッチ時の表示を追加。
タッチ情報はシリアルに出力するので、シリアルモニタを表示しておくこと。
4.touch2
同上、タッチ結果をLCDに表示している。
※2点タッチで画面をクリアする。※2点目の位置が間違って居る気がする。
5.Keypad_240x320
タッチパルから数字の入力を行う。
タッチパルとLCDの、入力と表示エリアの協調動作確認用。
※キャリブレを取って無いので、位置ズレしてる場合はプログラムによる補正が必要。
6.MovingIcons
LovyanGFXによる動作例。ピンを合わせただけ。
ライブラリの一時的更新をしていれば、ESP32-2432S024Cをdefineするだけで動作する筈。
※よく出来たライブラリ、描画の早い事にちょっと驚き。
7.BallMaze
画面を左右に回転させ迷路内のボールを下に落し、迷路から脱出するゲームらしい。
之も同様にESP32-2432S024Cで動作するように、デモソフトに改造を施したもの。
24Cには物理ボタンが無いので、釦の機能をパネルに作り込んだ。
回転は画面中央付近の左右タッチで、右回転・左回転を始める。※之は元々の仕様。
上部でチョロチョロして居るのは拡大率調整、左右スライドで変更可。
下部でチョロチョロして居るのは回転速度調整、左右スライドで変更可。
※チラチラするのは希望する動作では無く、描画のタイミングが不味い為だが良く判らない。
8.Factory_samples_Capacitive_touch
元々書き込まれていたサンプルソフト。
このプログラムをコンパイルするには、下記の変更が必要。
User_Setup.h,lv_conf.hをTFT_eSPIライブラリの所定位置にコピー。
ライブラリのlvgl\src\demosフォルダを、lvglフォルダ直下にコピー。
感想
単にESP32とLCDをドッキングしただけの代物だが、使い勝手は良い。
何より安い。日本でも買えるがAliEXで買えば部品代よりも安いのでは。
1~2週間で届くものも有る。※郵送費が多少(0.5K程度)増えるが。
なお支払いは念の為にpaypal経由で行っている。※之がどれ程信用出来るかは不明だけど。
なお、上記記載内容は全て無保証であり、各自の責任においてご利用願います。