App:Library:TFT eSPI

提供: robot-jp wiki
ナビゲーションに移動検索に移動

TFT_eSPI

TFT_eSPIは各種小型ディスプレイとタッチセンサに対応したディスプレイドライバです。

インストール方法

ここでは、ESP32-DevKitC + ILI9341(320*240,Touch付き) の組み合わせに対する設定をします。

Arduino IDE から、"ツール"→"ライブラリを管理"
App-Library-TFT eSPI-01.jpg

"TFT_eSPI"を検索
App-Library-TFT eSPI-02.jpg
一番下辺りの "by Boodmer" 、バージョンは最新をインストール。


次に、インストールされたファイルに対しての操作です。

回路の結線は次の接続を想定しています。

ILI9341 ESP32-DevKitC ILI9341 ESP32-DevKitC
LCD VCC +3.3V_OUT TouchPanel T_CLK D18 (VSPI-SCK)
GND GND T_CS D4
CS D14 T_DIN(MOSI) D23 (VSPI-MOSI)
RESET D33 T_DO(MISO) D19 (VSPI-MISO)
DC D27 T_IRQ D15
SDI(MOSI) D23 (VSPI-MOSI) SD SD_CS D5
SCK D18 (VSPI-SCK) SD_MOSI D23 (VSPI-MOSI)
LED D32 SD_MISO D19 (VSPI-MISO)
SDO(MISO) D19 (VSPI-MISO) SD_SCK D18 (VSPI-SCK)


LCDとタッチパネルについて、上記結線の通りに設定ファイル "User_Setup.h" を変更していきます。

"User_Setup.h" を開きます。
場所:Arduino IDE "ファイル"→"環境設定"→"スケッチブックの保存場所" の "libraries" フォルダ内

※Linuxの場合
App-Library-TFT eSPI-03b.jpg



使用するドライバが有効になっている事を確認します。
App-Library-TFT eSPI-04a.jpg


バックライトの配線も制御する場合、その制御部分を有効にします。

#define TFT_BL   32
#define  TFT_BACKLIGHT_ON HIGH


App-Library-TFT eSPI-04b.jpg



デフォルトがNodeMCUになっているので、その部分をコメントアウトします。
App-Library-TFT eSPI-04c.jpg



ESP32 Dev Boardのピン配置を回路にあわせて設定します。
※数字はピン番号ではなくポート番号です。

#define  TFT_MISO   19
#define  TFT_MOSI   23
#define  TFT_SCLK   18
#define  TFT_CS     14
#define  TFT_DC     27
#define  TFT_RST    33

#define  TOUCH_CS    4

App-Library-TFT eSPI-04d.jpg


周波数の設定内容を確認します。
特にこのままで問題ないと思います。
App-Library-TFT eSPI-04e.jpg

このファイルを上書き保存すれば完了です。

動作確認

この段階で既に TFT_eSPI 用のスケッチ例の多くがそのまま動作します。
順に確認を進めます。

TFT_eSPIの設定が問題ない事の確認 & calData取得

タッチセンサと画像表示の両方を確認し、タッチセンサのcalibrationパラメータを取得します。
"ファイル" → "スケッチ例" → "TFT_eSPI" → "General" → "Touch_caribrate"
シリアルモニタを 115200bps で起動させておきます。

上記スケッチ例の中のtft.setRotation(*)を使いたい画面の向き(1〜4)に合わせて、ESP32に書き込んで動かします。
向きが未定の場合には1〜4全ての場合でcalibrationパラメータを取得しておきます。

最初に四隅をタッチしてタッチセンサの位置を認識させます。

TFT eSPI calib 01.jpg TFT eSPI calib 02.jpg TFT eSPI calib 03.jpg TFT eSPI calib 04.jpg


シリアルモニタ上にキャリブレーションパラメータが表示されます。

// Use this calibration code in setup():

uint16_t calData[5] = { 402, 3478, 1998, 1689, 7 };
tft.setTouch(calData);

この値は後で使うため、テキストファイル等にメモしておきます。

キャリブレーションが終わると、次の画面になります。
画面上を触ってみましょう。

TFT eSPI calib 05.jpg TFT eSPI calib 06.jpg


触った所に白く跡がつけば TFT_eSPI の動作確認完了です。



戻る/Previous