这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【2025 Let's do 第3期】-- 拾色播放器DIY活动过程帖

共1条 1/1 1 跳转至

【2025 Let's do 第3期】-- 拾色播放器DIY活动过程帖

菜鸟
2025-12-09 13:35:38     打赏


硬件准备

在开始之前,请确保你准备好了以下物品:

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. 杜邦线 若干

以上硬件模块按照下图所示使用杜邦线进行连接。

TCS3200颜色传感器_bb.png


代码实现

# 创建显示组和文本标签
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 # 在显示设备上显示文本


效果展示

2025-12-09_11-10-52.gif


基础任务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]))


效果展示

2025-12-09_11-14-43.gif


基础任务3、实现蜂鸣器驱动,并播放八阶音符;

硬件准备

1. Adafruit ESP32-S3 Reverse TFT Feather 开发板 1 块

2. 数字蜂鸣器模块 1 个

3. 杜邦线 若干

参考 基础任务1 硬件准备 将模块与开发板连接。再参考下图所示,将数字蜂鸣器模块连接到开发板即可。

d87f8105-944f-4608-ae15-1b469c744d1f.png


代码实现

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["欢乐颂"])


效果展示

8a4a80e6-44ab-4e6a-aecc-7063e37b722b.png





关键词: Let's do     ESP32     DIY     Circui    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]