macsbug

How to use the UTFT Library the TFT LCD in ESP8266

leave a comment »

ESP8266 と TFT LCD 240×320 SPI で UTFT Library を使用する方法。          2016.04.18


前置き:
TFT LCD を動かすには Rinky-Dink ElectronicsUTFT Library が便利です。
UTFT Library は Arduino, chipKt, TI LaunchPad に対応した多彩なライブラリーです。
ESP8266 が出始めた頃は TFT LCD を動かすライブラリーはありませんでした。
約1年位でしょうか ESP8266 対応のTFT LCD Library が整ってきました。
開発者に大変感謝致します。
ここにはドネーションボタンがあり援助できる方はよろしくお願い致します。
_ 課題:サンプルのデモは速いが「3D Cube」は 非常に速度が遅いです。
_   
_   これは ESP8266 への最適化が行われていない為かとも思われます。

TFT LCD の重要な機能としてタッチセンスがあります。
使用している TFT LCD は TOUCH SENS と SD CARD が装備されています。
これはLCDの表面にタッチセンスが張られており専用ICがコントロールしています。
タッチセンスがあればスイッチ等のハードが不要で多彩な入力が実現できます。
ただし、まだタッチセンス(UTouch Library)が動く事を確認していません。
理由は 動くライブラリがまだ見つからない為です。


準備:
1. D1 mini with TELECTFT LCD 240×320 SPI Module:計1600円
_  
2. Library:gnulabis/UTFT-ESP8266:gnulabis に感謝
_  DLしUTFT-ESP8266-master.zip を解凍する。
_  UTFT-ESP8266-masterフォルダーができます。
_  UTFT-ESP8266-masterの中にある UTFT フォルダーを Library フォルダーへ移動します。


方法:
1. Library>UTFT_ESP8266>ESP8266>UTFT_Demo_320x240_Serial_SW をロード。
2. SPIの配線とスケッチを合わせます。
_  スケッチ設定値:27行目:UTFT myGLCD ( ILI9341_S5P, 13, 14, 15, 5, 4 );
_  私の配線は以下で、27行目を変更します。
_  
_  D1 mini  :UTFT myGLCD ( ILI9341_S5P, D7, D5, D1, D8, D4 );
_  ESP8266:UTFT myGLCD ( ILI9341_S5P, 13, 14, 5, 15, 2 );
_  この1行の変更でサンプルデモはエラーも無く動きました。



画像を表示する方法:examples に UTFT_Bitmap サンプルがあります。
_ スケッチ:UTFT フォルダ>examples>Arduino (AVR)>UTFT_Bitmap。
_ 画像変換:Windows 用アプリで変換。例:xx.jpg を x.c に変換します。
_      UTFT フォルダー>Tools>ImageConverter565.exe、ImgConv.exe
_      UTFT Image Converters.pdf を参照の事。
_ この方法は 240×320 の画像を2枚しか表示できません。コンパイルエラーがでます。
_ 240×320で150KByte程度です。このエラーの件は調べていません。

例:Fuji の画像。320×240 pixels 153.6 KBytes。Generated by: ImageConverter 565 v2.3

#include <UTFT.h>
extern uint8_t SmallFont[];
UTFT myGLCD ( ILI9341_S5P, D7, D5, D1, D8, D4 );
extern unsigned int fuji[0x12C00];

void setup(){
  myGLCD.InitLCD();
  myGLCD.setFont(SmallFont);
  myGLCD.fillScr(255, 255, 255);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawBitmap (0, 0, 320, 240, fuji);
}

void loop(){
}

参考:
UTFT フォルダのDocumentationの中に重要なマニュアルがあります。
UTFT フォルダ>Documentation>
_ UTFT_Requirements.pdf:Pin Assign。
_ UTFT_Supported_display_modules_&_controllers.pdf:TFT Conrtroller。
_ UTFT.pdf:UTFT Multi-Platform Universal TFT display library Manual:命令表。


感想:
前回、初めてTFT LCDがESP8266で動いて驚きましたが、さらに驚いたのは費用です。
1600円 です。国内のあらゆるESPボードより安く 表示器付きでも遥かに安いのです。
さらに低価格にするにはWeMosへESP-WROOM-02 with TELECを搭載したバージョンを
お願いして出荷してもらう事です。実現すれば 表示器付きで 1049円 が可能になります。

Arduinoの時にはUTFTのおかげでTFT LCDを有効に使う事ができました。ESP8266のチップが
出た時はライブラリが無くなにも出来ない状態でしたが このLibraryで動きほっとしました。
サンプルデモの表示は速いですが、3D Cubeが遅い理由は解りません。
他のライブラリーも試してますが理解力に乏しくあいまいながら進めています。

上は、Arduinio で 320×480 TFT LCD を使用した時のオシロスコープとFFTです。
下は、32bit Arinc 429 Signal を表示。タッチキーで数値入力や機能の選択をします。
ESP8266は このパラレル方式のLCD 320×480 は GPIOポートが少なく使えません。
Arduinoの5倍の速度を持ちながら GPIOポートが少なく能力を発揮できない訳です。


Written by macsbug

4月 18, 2016 @ 12:17 am

カテゴリー: ESP8266

コメントを残す