硬件准备
在开始之前,请确保你准备好了以下物品:
1. Adafruit ESP32-S3 Reverse TFT Feather 开发板
2. USB 数据线:一条 Type-C 接口的数据线,用于连接开发板和电脑。
3. 电脑:Windows、macOS 或 Linux 系统均可。
安装 CircuitPython 固件
首先需要为开发板安装 CircuitPython 固件,让它可以运行 Python 程序。
1. 获取固件: 访问 CircuitPython 官方网站 (circuitpython.org),找到适用于 Adafruit Feather ESP32-S3 TFT 的固件文件,下载最新的 .uf2 格式文件到你的电脑。
2. 进入 bootloader 模式: 将开发板通过 USB 线连接到电脑。
方法一:快速双击开发板上的 Reset (复位) 按钮。此时,板载 RGB LED 应显示绿色,屏幕显示提示信息,并且电脑会识别到一个名为 FTHRBOOT 的可移动磁盘。
方法二:如果双击复位键无效,可以尝试先按住 D0 (BOOT) 按钮不放,然后按下复位键,再松开复位键,最后松开 D0 按钮。此时屏幕为黑屏状态。
3. 刷入固件: 将之前下载好的 .uf2 固件文件,直接拖拽或复制到电脑上出现的 FTHRBOOT 磁盘中。 开发板会自动重启。完成后,电脑上会出现一个名为 CIRCUITPY 的新磁盘,这代表 CircuitPython 环境已经准备就绪。
配置代码编辑器
CircuitPython 固件安装好后,你需要一个编辑器来编写和修改代码。这里推荐两款,你可以任选其一。
Mu Editor (官方推荐)
安装:从 Mu Editor 官网 (codewith.mu) 下载并安装。
配置:
打开 Mu Editor,根据提示选择 CircuitPython 模式。
软件通常会自动检测到你的 CIRCUITPY 磁盘。点击编辑器上方的 "Load" 按钮,打开 code.py 文件,即可开始编辑。
Thonny (替代选择)
安装:从 Thonny 官网下载安装,或通过 Python 的 pip 包管理器安装 (pip install thonny)。
配置:
打开 Thonny,进入 "Run" -> "Configure interpreter"。
将解释器设置为 CircuitPython (generic),并在端口列表中选择你的开发板对应的串口。
配置完成后,你可以在底部的 Shell 窗口中与开发板进行交互 (REPL),也可以编辑文件并保存到开发板。
基础任务1、实现颜色传感器驱动,按键获取当前颜色数据并可以通过串口或屏幕进行打印;
搭建好开发环境之后,就可以使用 CircuitPython 进行愉快地玩耍了,按照基础任务1的要求,先来点个屏吧!
硬件准备
1. Adafruit ESP32-S3 Reverse TFT Feather 开发板 1 块
2. TCS3200颜色传感器模块 1 个
3. 杜邦线 若干
以上硬件模块按照下图所示使用杜邦线进行连接。

代码实现
# 创建显示组和文本标签
text_group = displayio.Group()
# 标题
lbl_title = label.Label(font, text=title, color=title_color) # 创建文本标签对象
lbl_title.x = 2 # 设置文本的X坐标
lbl_title.y = 18 # 设置文本的Y坐标
lbl_title.line_spacing = 1 # 设置文本行间距
lbl_title.scale = 2 # 设置文本放大倍数
text_group.append(lbl_title) # 将文本标签添加到显示组中
# 显示任务名称
lbl_task = ScrollingLabel(font, text=f'{self.get_curr_task_name()}', color=title_color, max_characters=100, animate_time=0.3)
# lbl_task = label.Label(font, text=f'{self.get_curr_task_name()}', color=title_color) # 创建文本标签对象
lbl_task.x = 2 # 设置文本的X坐标
lbl_task.y = 50 # 设置文本的Y坐标
lbl_task.line_spacing = 1 # 设置文本行间距
lbl_task.scale = 1 # 设置文本放大倍数
text_group.append(lbl_task) # 将文本标签添加到显示组中
# 显示颜色标题
self._lbl_color = label.Label(self._font, text='颜色: ', color=self._title_color) # 创建文本标签对象
self._lbl_color.x = 2 # 设置文本的X坐标
self._lbl_color.y = 80 # 设置文本的Y坐标
self._lbl_color.line_spacing = 1 # 设置文本行间距
self._lbl_color.scale = 1 # 设置文本放大倍数
self._text_group.append(self._lbl_color) # 将文本标签添加到显示组中
# 显示颜色值
self._lbl_color_value = ScrollingLabel(self._font, text=f'R: {self._rgb_color[0]}, G: {self._rgb_color[1]}, B: {self._rgb_color[2]}', color=self._rgb_color, max_characters=24, animate_time=0.3)
# self._lbl_color_value = label.Label(self._font, text=f'R: {self._rgb_color[0]}, G: {self._rgb_color[1]}, B: {self._rgb_color[2]}', color=self._rgb_color) # 创建文本标签对象
self._lbl_color_value.x = 50 # 设置文本的X坐标
self._lbl_color_value.y = 80 # 设置文本的Y坐标
self._lbl_color_value.line_spacing = 1 # 设置文本行间距
self._lbl_color_value.scale = 1 # 设置文本放大倍数
self._text_group.append(self._lbl_color_value) # 将文本标签添加到显示组中
self._text_area = label.Label(self._font, text="00000000000", color=self._rgb_color, background_color=self._rgb_color)
self._text_area.x = 2
self._text_area.y = 120
self._text_area.line_spacing = 1 # 设置文本行间距
self._text_area.scale = 3 # 设置文本放大倍数
self._text_group.append(self._text_area) # 将文本标签添加到显示组中
self._display.root_group = self._text_group # 在显示设备上显示文本效果展示

基础任务2、实现板载RGB的全彩控制,实时显示当前获取的颜色;
硬件准备
1. Adafruit ESP32-S3 Reverse TFT Feather 开发板 1 块
2. TCS3200颜色传感器模块 1 个
3. 杜邦线 若干
参考 基础任务1 硬件准备 将模块与开发板连接。
代码实现
def task_2(self): """ 任务2:实现板载RGB的全彩控制,实时显示当前获取的颜色; 搭配器件:Adafruit ESP32-S3 Reverse TFT Feather + TCS3200颜色传感器 """ self._pixel.fill((self._rgb_color[0],self._rgb_color[1],self._rgb_color[2]))
效果展示

基础任务3、实现蜂鸣器驱动,并播放八阶音符;
硬件准备
1. Adafruit ESP32-S3 Reverse TFT Feather 开发板 1 块
2. 数字蜂鸣器模块 1 个
3. 杜邦线 若干
参考 基础任务1 硬件准备 将模块与开发板连接。再参考下图所示,将数字蜂鸣器模块连接到开发板即可。

代码实现
def task_3(self):
"""
任务3:实现蜂鸣器驱动,并播放八阶音符;
搭配器件:Adafruit ESP32-S3 Reverse TFT Feather + 数字蜂鸣器模块
"""
center_button.update()
if center_button.fell: # 按键按下
# print(f"执行 {self.get_curr_task_name()}")
adafruit_rtttl.play(board.D13,RTTTL_TUNES["欢乐颂"])效果展示

我要赚赏金
