Esp8266 / nodeMCU / wemos D1 MINI GUIslice的配置(官翻)
- 确定显示屏型号
- 扩展版类(shield)
- 转接板类(breakout Board)
- 目前支持的显示屏类型
- 选择正确的显示驱动库
- TFT_eSPI
- 分别测试触摸和显示库
- STEP3: 配置GUIslice_config
- STEP4:根据硬件连接配置引脚的相关设置
- STEP5测试基本的GUIslice显示操作
- STEP6测试基本的GUIslice触摸操作
- Step 6A: 确认触摸屏配置信息
- Step 6B: 运行触摸例程
- Step 6C: 触摸操作的问题解决
- 选择正确的显示和触摸驱动
- 使用GUIslice 触摸屏的诊断/ 校准功能
- 常用的触摸控制处理程序(==没有逐一翻译,后续陆续更新翻译==)
- 其他触摸屏设置的细节:(==没有逐一翻译,后续陆续更新翻译==)
- 引入校准设置(import Calibration Touch)
- 运行诊断程序
- 调试触摸屏相关问题issue
- Step 7: 运行其他的 GUIslice 例程
- Step 8: Customize GUIslice Configuration
- 参考文献
GUIslice库可以支持很多型号的硬件,它默认的配置是针对Arduino UNO/ATmega2560+2.8’'TFT+STMPE610使用Adafruit-GFX库。所以为了能在Esp8266 / nodeMCU / Wemos D1 Mini上使用我们需要进行下面几步操作。
- 确定显示屏的图形驱动芯片以及它的触摸芯片型号
- 确定单独的图形驱动库和触摸屏库是否能正常使用
- 选择一个适合自己显示屏的GUIslice自带的例程库
- 更新
"GUIslice_config.h"
令其包含例程中的配置 - 确定连线引脚
- 确认GUIslicede 的基本图形识别函数可以正常工作(
ex01_ard_basic
) - 对于触摸屏,运行GUIslice诊断测试,按照上一步更新引脚/标定设置
- 根据具体用户的需求配置相关的操作和调整
- 运行其他的GUIslice例程
- 可以选择的:使用GUIslice Builder来创建GUI应用
确定显示屏型号
扩展版类(shield)
这列引脚时固定的
转接板类(breakout Board)
需要根据用户的连接更改相关配置文件中的引脚
目前支持的显示屏类型
选择正确的显示驱动库
TFT_eSPI
- 针对ESP8266&ESP32,官方强烈建议使用TFT_eSPI显示驱动库。这个库做了特别的优化,速度要快很多。
- 如果使用TFT_eSPI库的话,需要在GUIslice的配置文件中设置
"DRV_DISP_ESPI"
,这样GUIslice就可以使用TFT_eSPI库了。在ESP的例程"configs/esp-tftespi-*"
中默认已经进行了这项设置。 - 显示屏可能支持的时电阻或者电容的触摸屏。这两者拥有不同的驱动库。一般电阻类的触摸屏会有在液晶屏上提供4根模拟引脚而没有触摸芯片。这种情况可以选择
"simple touch driver(DRV_TOUCH_ADA_SIMPLE)"
。如果没有触摸或者不需要触摸功能可以选择"no touch(DRV_TOUCH_NONE)"
。 - 需要注意的是
Adafruit_TouchScreen
库并不支持ESP8266或者ESP32,所以事实上简单的4线触摸方式的电阻触摸方式并不建议使用。 - 目前提供了下面四种配置的例子
CPU | Display Driver | Touch | Example Config |
ESP8266/ESP32 | TFT_eSPI | None | |
ESP8266/ESP32 | TFT_eSPI | STMPE610(res) | |
ESP8266/ESP32 | TFT_eSPI | XPT2046(res) | |
ESP8266/ESP32 | TFT_eSPI | FT6202(cap) |
分别测试触摸和显示库
- 在测试GUIslice之前,需要确定TFT_eSPI库中的显示例程已经配置正确并能正常运行。因为如果TFT_eSPI中的例程不能工作,GUIslice也是无法工作的。所以这一步非常关键,不可省略。
- 必须确认TFT_eSPI库所需要的依赖库已经全部安装好。这一步可以根据TFT_eSPI库的教程依据你的具体连线来配置
User_Setup
文件。然后打开TFT_eSPI例程进行测试。
File → Examples → TFT_eSPI → 320x240 → TFT_graphicstest_one_lib (或者其适合你的例子也可以)
具体的而操作可以参考下面博主写的详细教程:
ESP8266/ESP32/nodeMcu/wemos D1 MINI开发板用TFT_eSPI库驱动ST7789(240*240)TFT显示屏 - 确认程序运行无误且显示正确。
STEP3: 配置GUIslice_config
- GUIslice通过
"/src/GUIslice_config.h"
文件来加载针对不同设备的特定配置文件。这个文件夹里包含了"/config"
目录中所有例程的头文件,根据你的具体显示屏和触摸屏型号来将对应的文件前的注释去掉。如果这个位置全部注释时,程序会默认加载/src/GUIslice_config_ard.h
这个文件。
用户可以通过复制现有例程并在GUIslice_config.h
文件中进行声明的方式建自己的配置文件。 - 可以通过如下的方式定位到GUIslice_config.h。在ArduinoIDE的菜单栏打开首选项页面,复制项目文件夹的路径到文件管理器中打开。
Tips注意下配置GUIslice的格式
GUIslice的配置主要有下面几种方式:
- 第一种方式: 直接更改配置文件中相应选项的值,如:
#define <mode ><value> 或者 #define <mode > - 第二种方式: 配置文件中存在多行 #define <mode > 的设置,(比如: DRV_DISP_*, 其中只有一行没有注释, 其余行都被注释掉了(用//). 改变这种的只需要跟你的具体需求将需要用到的配置前面的
//
去掉,将之前默认没有加//
的语句注释掉即可。 - 第三种方式: 配置文件中 #define <mode ><value> 中的value值被限定在
0
和1
, 此处的值代表着“disable”
和"enable”
两种状态。根据情况在0
和1
之间进行切换即可。
STEP4:根据硬件连接配置引脚的相关设置
GUIslice支持很多型号的显示和触摸芯片。我们需要通过正确的配置来使程序调用到正确的驱动。
因为TFT_eSPI库的User_Setup.h
文件中已经详细叙述和设置过过这个部分,所以GUIslice中无需再做这部分的操作。
GUIslic例程里内置了关于TFT_eSPI使用的例程。
- GUIslice中TFT_eSPI库相关设置例程演示
GUIslice /configs
路径下例程命名的方式为:"设备类型 +显示芯片型号 +触摸芯片型号"
-<display_driver>-<display_controller>-<touch_controller>.h
比如ESP8266/ESP32类设备的display_driver
名就是esp-tftespi
- 如果存在匹配的配置文件,记得在
GUIslice_config.h
文件中将其对应的代码前的//
去掉。注意,一次只能对应一个。 - 例程中的示例会不断更新,鼓励用户在github上提交自己的配置。
STEP5测试基本的GUIslice显示操作
- 在Arduini IDE中,打开ex01_ard_basic例程。操作方式为:
File → Examples → GUIslice → arduino → ex01_ard_basic
- 打开Arduino IDE中的窗口调试器:
Tools → Serial Monitor
- 将串口波特率改为9600(在窗口的右下角),这个波特率时GUIslice例程默认使用的波特率(可以通过搜索
Serial.begin(9600);
来进行查找)。如果设置的波特率有例程使用的波特率不匹配,串口监视器中收到的信息将会是乱码。 - 上传程序到开发板。
- 观察串口监视器中的报错信息,确认显示器是否如下图所示正确显示灰色的背景以及一个白色矩形边框。
STEP6测试基本的GUIslice触摸操作
如果上述的例程运行成功,则可进一步调试屏幕的触摸功能。
Step 6A: 确认触摸屏配置信息
确认触摸屏可以如预期般工作一般需要一系列操作。请安接下来的步骤来进行设置。
- XPT2046: 如果你使用的时XPT2046触摸控制芯片,TFT_eSPI提供了两个可供使用的驱动:
依赖库 | 上层库 | 配置文件名称 | 设置值 |
XPT2046_Touchscreen | TFT_eSPI | esp-tftespi-default-xpt2046.h | DRV_TOUCH_XPT2046_PS(XPT2046_Touchscreen) |
TFT_eSPI | TFT_eSPI | esp-tftespi-default-xpt2046_int.h | DRV_TOUCH_TFT_ESPI |
- 建议
XPT2046_Touchscreen
驱动而不非TFT_eSPI
。原因很简单,前者已经集成在GUIslice的配置文件中用起来会更容易。
Step 6B: 运行触摸例程
- 在ArduinoIDE中打开ex02_ard_btn_txt 例程。
File → Examples → GUIslice → arduino → ex02_ard_btn_txt
- 上传程序到开发板,屏幕会显示一个“ok”按钮,点击后程序会显示结束运行。重启开发板后会再次运行。
Step 6C: 触摸操作的问题解决
如果触摸屏幕内容时位置感觉不够准确,可能需要重新调整下触摸屏的touch-to-display mapping
设置。
选择正确的显示和触摸驱动
详见STEP1。
使用GUIslice 触摸屏的诊断/ 校准功能
为了确保已经正确配置了触摸屏的相关设置。GUIslice提供了三个诊断例程。
-
diag_ard_touch_detect
: 检查简单的4-wire电阻触摸显示方式下引脚配置是否正确Detects pin -
diag_ard_touch_calib
: 检查电阻触摸屏校准设置是否正确 -
diag_ard_touch_test
: 展示现有的显示屏进行校准操作的步骤。
注意:
- 上述的诊断程序中有些是针对特定的触摸屏型号的(例如:电阻型),不能被用于其他类型的检测。
- 强烈建议用户在运行其他涉及触摸功能的例程前先运行这些校准和检查例程。
- 电阻型显示屏需要进行屏幕校准,TFT检查提供了可供粘贴到配置文件中的代码。
- 例程中的多数配置默认包含了校准的参数,但是这些默认的参数可能不使用所有的显示器。
一旦确认GUIslice中触摸屏配置并运行正确,可能就需要一些其他的帮助令触摸功能更贴合用户使用感受。
常用的触摸控制处理程序(没有逐一翻译,后续陆续更新翻译)
请通过 DRV_TOUCH_*
中Section1
部分的设置来获取更详细的信息。
- DRV_TOUCH_FT6206: FT6206 电容触摸
- DRV_TOUCH_STMPE610: STMPE610 电阻触摸
- DRV_TOUCH_XPT2046: XPT2046 电阻触摸
- DRV_TOUCH_TFT_ESPI: TFT_eSPI XPT2046 电阻触摸
- DRV_TOUCH_SIMPLE: 4-wire Simple 电阻触摸
其他触摸屏设置的细节:(没有逐一翻译,后续陆续更新翻译)
引入校准设置(import Calibration Touch)
运行诊断程序
调试触摸屏相关问题issue
diag_ard_touch_test diagnostic
可以帮助查找触摸屏使用中出现的问题,它会展示触摸屏运行时的一些细节,如果想要调试时获取这些细节,可以将配置文件中 SECTION 10
位置中的DBG_TOUCH
前的注释去掉。去掉注释后,串口监视器会显示触发的相应细节。
一些其他的调试需求会在之后版本中提供。
Step 7: 运行其他的 GUIslice 例程
上述的显示和触摸功能都运行正常后,可以上传运行其他例程,Arduino IDE中的操作方式如下:
-
File → Examples → GUIslice → arduino → ex01_ard_*
(普通内存程序) -
File → Examples → GUIslice → arduino_min → ex01_ardmin_*
(最小内存程序)
上述例程均在/examples/
目录下.
注意: 关于ESP例程
ESP8266相较其他Arduino器件并不太存在RAM容量的问题,所以可以直接使用examples/arduino
下的例程,examples/arduino_min
路径下的例程目前运行时反倒可能出现不兼容的问题。
Step 8: Customize GUIslice Configuration
This section will be added soon。—待添加。
参考文献
- 兼容硬件列表: https://github.com/ImpulseAdventure/GUIslice/wiki/Device-Compatibility 2.官方Esp8266&ESP32配置英文教程: https://github.com/ImpulseAdventure/GUIslice/wiki/Configure-GUIslice-for-ESP8266-&-ESP32
- 官方建议强烈建议的TFT_eSPI库下载地址: https://github.com/Bodmer/TFT_eSPI