物联网开发笔记(62)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:环境搭建
一、目的
这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程的第一步:环境搭建。
关键字:3.2寸SPI串口TFT液晶显示屏模块 ILI9341驱动 LCD触摸屏 240*320 LVGL图形化编程 XPT2046触摸屏芯片IC
二、环境
ESP32 + 3.2寸 ILI9341触摸屏 + Thonny IDE + 几根杜邦线
接线方法:
上图接线比较多,显得乱,大家看下面表格连接即可:
ILI9341屏幕 | ESP32开发板 |
VCC | 5V或3.3V |
GND | GND |
CS | D5 |
RESET | D27 |
DC | D26 |
SDI(MOSI) | D23 |
SCK | D18 |
LED | 5V |
SDO(MISO) | D19 |
T_CLK | D18 |
T_CS | D5 |
T_DIN | D23 |
T_OUT | D19 |
T_IRQ | 不连接 |
三、固件烧录
大家下载如下固件就行烧录,此固件只适用于ESP32。烧录方法前面文章讲过,大家往前翻一下。找不到留言给我。固件名字:lv_micropython.v1.19.1-ili9341-xpt2046.bin
链接: https://pan.baidu.com/s/16S0r9m8j65zITQ0UPCty4A 提取码: umi1 复制这段内容后打开百度网盘手机App,操作更方便哦
四、代码
我们编写一段代码,测试下环境是否搭建成功:
import lvgl as lv
import time
from espidf import VSPI_HOST
from ili9XXX import ili9341
from xpt2046 import xpt2046# ------------------------------ 屏幕初始化操作 --start------------------------
# 屏幕宽高
WIDTH = 240
HEIGHT = 320# 创建显示屏对象
disp = ili9341(miso=19, mosi=23, clk=18, cs=5, dc=26, rst=27, power=14, backlight=-1, backlight_on=0, power_on=0, rot=0x80,spihost=VSPI_HOST, mhz=60, factor=16, hybrid=True, width=WIDTH, height=HEIGHT,invert=False, double_buffer=True, half_duplex=False, initialize=True)# 创建触摸屏对象
touch = xpt2046(cs=25, spihost=VSPI_HOST, mosi=-1, miso=-1, clk=-1, cal_y0 = 423, cal_y1=3948)
# ------------------------------ 屏幕初始化操作 --stop------------------------# 1. 创建显示screen对象。将需要显示的组件添加到这个screen才能显示
scr = lv.obj()# 2. 封装的需要显示的按钮
class CounterBtn():def __init__(self, scr):self.cnt = 0btn = lv.btn(scr) # 将当前按钮与screen对象进行关联# btn.set_pos(20, 10) # 相对于屏幕左上角 x为20,y为10btn.set_size(120, 50) # 设置按钮的宽度为120, 高度为50btn.align(lv.ALIGN.CENTER,0,0) # 居中(第1个0表示x的偏移量,第2个0表示相对于y的偏移量)btn.add_event_cb(self.btn_event_cb, lv.EVENT.ALL, None) # 设置按钮被按下后的回调函数label = lv.label(btn) # 在按钮上创建一个标签Label,用来显示文字用label.set_text("Button") # 设置文字内容label.center() # 相对于父对象居中def btn_event_cb(self, evt):code = evt.get_code() # 获取点击事件类型码btn = evt.get_target() # 获取被点击的对象,此时就是按钮if code == lv.EVENT.CLICKED:self.cnt += 1# Get the first child of the button which is the label and change its textlabel = btn.get_child(0)label.set_text("Button: " + str(self.cnt)) # 修改文字内容# 3. 创建按钮
counterBtn = CounterBtn(scr)# 4. 显示screen对象中的内容
lv.scr_load(scr)# ------------------------------ 看门狗,用来重启ESP32设备 --start------------------------
try:from machine import WDTwdt = WDT(timeout=1000) # enable it with a timeout of 2sprint("提示: 按下Ctrl+C结束程序")while True:wdt.feed()time.sleep(0.9)
except KeyboardInterrupt as ret:print("程序停止运行,ESP32已经重启...")
# ------------------------------ 看门狗,用来重启ESP32设备 --stop-------------------------
五、演示效果
我们点一下下图屏幕中的按钮,数字就加1
六、购买
屏幕某宝链接如下:我买的普亮款(触控IC的型号是XPT2046)
搜索关键字 “3.2寸SPI串口TFT液晶显示屏模块 ILI9341驱动 LCD触摸屏 240*320”
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.6cde2e8dECy2Od&id=652798852741&_u=bp01rch9a4e
ESP32 开发板某宝链接如下:我买的第一个
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.6cde2e8dECy2Od&id=559077746939&_u=bp01rch2cbd
七、项目分享
我在gitee找到的Micropython + lvgl的开源代码:
lv_micropython: Micropython bindings to LVGL for Embedded devices, Unix and JavaScripthttps://toscode.gitee.com/michaelhyg/lv_micropython
同时找到了一个很不错的国外的网站,都是英文:
Awesome MicroPythonA curated list of MicroPython libraries, frameworks, software and resources.https://awesome-micropython.com/
物联网开发笔记(62)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:环境搭建相关推荐
- 物联网开发笔记(64)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:控件显示
一.目的 这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:控件显示. 二.环境 ESP32 + ILI9341 3.2寸TFT-L ...
- 物联网开发笔记(63)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:显示中文
一.目的 这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程的第一步:显示中文. 二.环境 ESP32 + 3.2寸 ILI9341触 ...
- arduino与java,Arduino具有与Java和C语言类似的IDE集成开发环境和图形化编程环境
Arduino具有与Java和C语言类似的IDE集成开发环境和图形化编程环境 更多相关问题 听力原文:W: Hi, Steve, good to see you are up and around a ...
- 【笔记】29元microbit套装如何玩——那些支持microbit的图形化编程开发环境
微信关注公众号 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 继续microbit! 今天来简单盘点一下那些支持microbit的图形化编程开 ...
- MLX90640开发笔记(一)概述及开发资料准备
现在自己在做红外成像仪的越来越多了,两年前有个井下机电设备运行状态的科研项目,当时使用了AMG8833(8*8像素).前段时间因为公司生产电路板测试需要,打算买一台红外成像仪测量电路板发热是否正常,商 ...
- 麦昆mciro:bit开发板机器人小车——支持makecode图形化编程,支持基于Mind+的图形化编程及python编程
麦昆4.0中文版 随着时代发展的趋势,以及各个政策的出台,市场上的机器人兴趣班.编程兴趣班越来越火爆,编程课也慢慢走进了学校的课堂.但是作为工薪阶层的普通家庭来说连续数年的学习一定有很大的经济压力.所 ...
- ADSP-21489的图形化编程详解(3:音效开发例程-直通三个例程讲清楚)
Fireware 烧写好了之后,SigmaStudio 图形化开发的基本条件就达成了.我们重新来链接一下硬件,进入图形化编程的阶段,这个阶段我尽量多写一些例程,让大家能够尽快熟悉这个软件开发的全过程. ...
- 适用于arduino uno物联网学习套件智能家居系统scratch图形化编程
适用于arduino uno物联网学习套件智能家居系统scratch图形化编程 成品到手可用 有资料程序 实现功能:1.手机可以单独控制车库,储物间,卧室,客厅,阁楼灯光 2.手机控制风扇 3.手机控 ...
- 物联网开发笔记(9)- 使用Wokwi仿真MicroPython on ESP32开发板实现温度和湿度检测并使用屏幕显示
一.测试环境 我们同样使用在Wokwi网站上选择Micropython with ESP32进行仿真,来进行温度和湿度的检测. ESP32官方技术参考手册: https://www.espressif ...
最新文章
- 怎么在python下载网站内容-python从网站上下载东西
- 玩转oracle 11g(39):oracle11g密码过期后的解决方法
- Error parsing XML: not well-formed (invalid token)
- Bootstrap下拉菜单标题
- 【云速建站】会员注册弹窗添加及设置
- :Android网络编程--XML之解析方式:SAX
- leetcode java输入输出方法,有关IntelliJ IDEA中LeetCode插件配置问题
- 帧起始定界符_检测帧起始定界符的方法、装置、设备及计算机存储介质与流程...
- XCODE 出现 The operation couldn't be completed.(LaunchServicesError error 0.)错误修复
- 北广传媒RTMP流媒体服务器漏洞
- Springboot之idea之pom文件图标不对
- mysql主从同步开启后的iptables的设定问题
- php 正则表达式 匹配 字符串,PHP 字符串与正则表达式匹配
- tomcat乱码解决办法
- 外卖扫码点餐独立全开源小程序源码+VUE前端
- Java学习笔记(二)
- 数据仓库中历史拉链表的更新方法
- (十三)office2016-excel提取出生年月
- 计算机主机拆装注意事项,电脑硬件拆装前要注意什么 拆装电脑的注意事项
- 实习 | 深圳市彼岸心智科技有限公司招募新成员啦