MicroPython 开发
MicroPython 入门教程
初次接触 ESP32 MicroPython 开发,想要快速上手?我们为您准备了一套通用的 ESP32 MicroPython 入门教程。
- 第1节 搭建开发环境
- 第2节 基础知识
- 第3节 GPIO 数字输出/输入
- 第4节 ADC 模拟输入
- 第5节 PWM 输出
- 第6节 UART 通信
- 第7节 I2C 通信
- 第8节 SPI 通信
- 第9节 Wi-Fi 基础用法
- 第10节 网页服务器
- 第11节 蓝牙
- 第12节 综合项目
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
配置开发环境
1. 配置 Thonny 和烧录 MicroPython 固件
- 请参考 搭建 MicroPython 开发环境教程 烧录 MicroPython 固件。
2. 其他提示
-
目前开发板使用定制的固件进行开发,固件在 ESP32-S3-LCD-1.28 示例程序 中,固件合并成单个文件,注意下载地址是 0x00 位置
-
固件路径:
...\ESP32-S3-LCD-1.28-Demo\Firmware\MicroPython-bin -
若通过 乐鑫 Flash 下载工具 烧录 MicroPython 固件,烧录地址为
0x0。 -
factory-bin 文件夹下的 bin 文件为测试板载功能的文件,在此处无需烧录
-
MicroPython 固件制作来自 链接,MicroPython 固件编译 更多学习链接
Thonny 使用说明
如果你刚入门学习 ESP32 和 Thonny,还不知道如何使用 Thonny,那么请展开看看,希望可以帮助到你!
选择开发板及型号
- 下载安装最新 Thonny IDE 后,打开 Thonny IDE -> Configure interpreter...,如下图所示


- 选择 ESP32 与选择对应的 COM 口

- 点击该按钮,可看到 shell 中输出语句,则说明开发板固件成功使用

上传例程
下文以使用“ESP32-S3-Touch_1.28 ”例程为例,若使用其他例程,操作步骤类推。
- 如何找到您想要的示例程序,如果最开始没有 files 这一栏,我们可以在 view 里面找到


- 将本地文件上传到开发板,选择文件,鼠标右键,找到"upload to/",进行下载

- 以下是全部上传完成的界面,下载的文件请务必与红框内文件保持一致 ,否则可能会运行失败

- 选择.py 后缀的文件,点击绿色按钮烧录运行

- 运行另一份文件时要先点击红色 stop 按钮,这样另一份文件才能正常运行

示例程序

ESP32-S3-LCD-1.28 示例程序
| 示例程序 | 基础例程说明 |
|---|---|
| alien.py | 随机显示 “alien.jpg” 图像 |
| bitarray.py | 创建并展示多个随机位置的 “吃豆人” 精灵动画 |
| hello.py | 随机显示不同颜色的 “Hello!” 文本,并且可以通过循环切换不同的旋转角度 |
| hershey.py | 循环展示不同的问候语 |
| jpg.py | 轮流显示两张 JPEG 图片 |
| noto_fonts.py | 展示三种不同字体的名称 |
| pbitmap.py | 显示一个预编译的位图图像 |
| rotation.py | 循环展示不同旋转值下的文本显示效果 |
| scroll.py | 在显示屏上实现字符的平滑滚动显示 |
上传例程及特殊例程
上传例程
-
将本地文件上传到开发板,选择文件,鼠标右键,找到"upload to/", 进行下载

-
以下是全部下载完成的界面,下载的文件请务必与红框内文件保持一致 ,否则可能会运行失败

-
选择.py 后缀的文件,点击绿色按钮烧录运行(运行图置于后文)

-
运行另一份文件时要先点击红色 stop 按钮,这样另一份文件才能正常运行

特殊例程
- 在所给例程中,boot.py 为自动生成的空白文件,bluenarble.py 存放的是图片,运行无现象

alien.py
【程序说明】
- 该程序用于在特定显示屏上随机显示 “alien.jpg” 图像
【硬件连接】
- 将开发板接入电脑

【代码分析】
- GC9A01() :GC9A01 构造函数重要性在于建立硬件连接、设置初始参数并创建可操作的显示屏对象,为后续的显示操作奠定基础
spi_interface:建立与显示屏的 SPI 通信width和height:设置显示屏分辨率reset_pin:连接显示屏的各种控制引脚rotation:设置初始旋转角度
【运行效果】
- LCD 屏幕显示

bitarray.py
【程序说明】
- 该程序是在特定显示屏上创建并展示多个随机位置的 “吃豆人” 精灵动画
【硬件连接】
- 将开发板接入电脑
【代码分析】
-
pacman 类的 move 方法 :负责更新 “吃豆人” 精灵的状态,实现其在屏幕上的移动和动画效果
- 首先增加精灵的当前步数,然后通过取模操作确保步数在规定的
SPRITE_STEPS范围内循环,对应精灵的不同动画帧或状态 - 接着在水平方向上移动精灵的位置,当精灵的水平位置达到特定值 302 时,重置步数,是为了触发特定动画状态或行为。最后,通过取模操作确保精灵的水平位置在一定范围内循环,避免超出显示区域
- 首先增加精灵的当前步数,然后通过取模操作确保步数在规定的
-
tft.map_bitarray_to_rgb565
tft.map_bitarray_to_rgb565函数根据精灵的当前步数从SPRITE_BITMAPS中选取位图数据,将其转换为 RGB565 格式的缓冲区sprite。同时,指定了精灵的宽度以及前景色和背景色
-
tft.blit_buffer
tft.blit_buffer函数将转换后的缓冲区绘制到显示屏上特定的位置,该位置由精灵的当前坐标确定,并指定了精灵的宽度和高度
【运行效果】
- LCD 屏幕显示

hello.py
【程序说明】
- 该程序是在特定的显示屏上随机显示不同颜色的 “Hello!” 文本,并且可以通过循环切换不同的旋转角度
【硬件连接】
- 将开发板接入电脑
【代码分析】
-
tft.text :在显示屏上绘制文本 “Hello!”
- 使用指定字体,文本位置通过随机数在显示屏范围内确定,前景色和背景色由随机生成的 RGB565 颜色值决定
-
while True :实现 “Hello!” 文本在不同旋转角度下的随机显示动态效果
- 通过无限循环和遍历四个旋转角度,设置显示屏旋转角度后清空屏幕,计算文本显示范围,循环调用
tft.text函数在随机位置以随机颜色显示文本
- 通过无限循环和遍历四个旋转角度,设置显示屏旋转角度后清空屏幕,计算文本显示范围,循环调用
【运行效果】
- LCD 屏幕显示

hershey.py
【程序说明】
- 该程序是在一个特定的显示屏上循环展示不同的问候语
【硬件连接】
- 将开发板接入电脑
【代码分析】
-
main :函数中的循环部分,在显示屏上循环显示不同字体、颜色和问候语
- 逐行移动显示位置,获取下一个颜色、字体和问候语,清除上一行内容并绘制新内容,当超出一定范围时重置行位置,添加延迟控制显示速度
-
cycle :创建可循环迭代的对象
- 接受参数,若可迭代则直接循环,若单个元素则转换为可迭代列表并循环返回,用于方便地循环使用颜色、字体和问候语列表
【运行效果】
- LCD 屏幕显示

jpg.py
【程序说明】
- 该程序是在特定的显示屏上轮流显示两张 JPEG 图片
【硬件连接】
- 将开发板接入电脑
【代码分析】
-
main :
- 遍历图片文件名列表,调用
tft.jpg函数在特定位置以较慢方式显示图片,然后等待 5 秒
- 遍历图片文件名列表,调用
-
tft.jpg :在显示屏上显示指定的 JPEG 图片
- 读取、解码图片文件并绘制到显示屏,根据传入参数确定显示位置和模式
【运行效果】
- LCD 屏幕显示


noto_fonts.py
【程序说明】
- 该程序是在特定的显示屏上展示三种不同字体(NotoSans、NotoSerif、NotoSansMono)的名称,并且将这些字体名称以居中的方式显示在不同的行上
【硬件连接】
- 将开发板接入电脑
【代码分析】
-
main :程序主入口,初始化显示屏并展示三种字体名称
- 创建显示屏对象并初始化,填充背景为黑色,调用 center 函数依次显示三种字体名称
-
center :将给定字符串以指定字体在显示屏上居中显示
- 获取显示屏宽度,计算字符串宽度,若小于屏宽则水平居中计算坐标,否则左对齐,最后在指定位置显示字符串
【运行效果】
- LCD 屏幕显示

pbitmap.py
【程序说明】
- 该程序是在特定的显示屏上显示一个预编译的位图图像
【硬件连接】
- 将开发板接入电脑
【代码分析】
-
main :程序主入口,初始化显示屏并显示位图
- 创建显示屏对象,初始化后填充黑色背景,调用
tft.pbitmap显示预编译位图模块中的图像
- 创建显示屏对象,初始化后填充黑色背景,调用
-
tft.pbitmap :在显示屏上显示预编译位图
- 读取位图数据并绘制到显示屏,根据传入参数确定显示位置
【运行效果】
- LCD 屏幕显示

rotation.py
【程序说明】
- 该程序是在特定的显示屏上循环展示不同旋转值下的文本显示效果
【硬件连接】
- 将开发板接入电脑
【代码分析】
-
main :程序主入口,初始化显示屏并循环展示不同旋转值下的文本效果
- 创建显示屏对象并初始化,在循环中依次设置不同旋转值,清空屏幕后显示包含旋转值信息的文本并等待观察
-
tft.rotation :设置显示屏旋转角度
- 根据传入参数调整显示屏显示方向置
【运行效果】
- LCD 屏幕显示

scroll.py
【程序说明】
- 该程序是在特定的显示屏上实现字符的平滑滚动显示
【硬件连接】
- 将开发板接入电脑
【代码分析】
-
main :程序主入口,初始化显示屏、设置颜色并滚动显示字符
- 创建显示屏对象,设置颜色生成器获取前景色,初始化显示屏后设置滚动区域,在循环中清除顶部行、在新行显示字符并更新颜色和字符值,通过设置滚动地址实现滚动并控制速度
-
cycle :创建可循环迭代对象
- 接受参数,若可迭代则直接循环,若单个元素则转换为可迭代列表并循环返回
【运行效果】
- LCD 屏幕显示
