这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » Let'sdo2025第三期活动【拾色播放器DIY】颜色传感器色彩控制蜂鸣器发声

共1条 1/1 1 跳转至

Let'sdo2025第三期活动【拾色播放器DIY】颜色传感器色彩控制蜂鸣器发声

菜鸟
2025-12-06 21:14:44     打赏

CircuitPython 是一种基于 Python 的编程语言,专为教育和简易学习设计,适用于低成本微控制器‌。它建立在 MicroPython 基础上,提供了硬件支持,使 Python 开发者能轻松进入嵌入式领域‌。ESP32-S3 是一款集成 2.4 GHz Wi-Fi Bluetooth 5 (LE) MCU 芯片,支持远距离模式 (Long Range),搭载 Xtensa® 32 LX7 双核处理器,主频高达 240 MHz,内置 512 KB SRAM (TCM),具有 45 个可编程 GPIO 管脚和丰富的通信接口‌。ESP32-S3 支持 CircuitPython MicroPython,适合物联网和嵌入式开发‌。

在本项目中需要避免的错误,我在调试过程中进行说明;下载开发用的IDE-----Mu Editor。下载地址连接:https://codewith.mu/   下载项目提供的资料,如图:

image.png 

首先要升级TinyUF2 Bootloader,确保其在0.33版本以上首先下载tinyuf2-adafruit_feather_esp32s3_reverse_tft-0.33.0-combined.bin,地址image.pnghttps://adafru.it/1alW

这份资料在开发板资料里有;

然后打开Adafruit WebSerial ESPTool网页工具,地址https://adafruit.github.io/Adafruit_WebSerial_ESPTool/

image.png 

这是网站已经连上开发板的状态

开发板先不上电,按住D0不放,再接电脑USB输出的数据线,短按复位键后放下来,注意这个时候在电脑端不会显现出来盘符内容,板子也没有任何显示,不过这个时候通过Adafruit WebSerial ESPTool网页工具进行连接可以看到如下串口信息:

 image.png

擦除,等待完成后选择之前下载的bin文件在第一个选项里:

image.png 

如图所示:

image.png 

完成下载,然后链接开发板,并双击Reset按键,注意双击间隔大概1到2s,不要太短,进入Boot界面开发板出现:

image.png 

将之前下载的CircuitPython 10UF2文件拉到盘符后就会自动升级了,这个时候可以看到盘符的变化:电脑上也会出现:

 image.png

这里为了测试颜色传感器,借鉴了楼主 付明的帖子,感谢!!接线和源代码也借鉴了,谢谢。

image.png 

Lib中存放以下文件:

image.png 

另外将A0引脚接到麦克风,目的是将颜色值改为蜂鸣器频率输出;先导入楼主链接的程序:

[DIY拾色播放器]-任务一:TCS3200拾色传感器-电子产品世界论坛

MU中导入code.py按照如下代码进行修改

if Button1_Value:

   # 读取并显示TCS3200颜色传感器的频率值

      if color_sensor is not None:

            try:

                   # 调用read_rgb_freq方法读取频率值

                R_Val, G_Val, B_Val = color_sensor.read_rgb_freq()

                # 更新显示

                text_area_r.text = "R: {:.3f}".format(R_Val)

                text_area_g.text = "G: {:.3f}".format(G_Val)

                text_area_b.text = "B: {:.3f}".format(B_Val)

                text_area_h.text = "#: {:.3f},{:.3f},{:.3f}".format(R_Val, G_Val, B_Val)

                print("RGB: {:.3f},{:.3f},{:.3f}".format(R_Val, G_Val, B_Val))

                led.value = True

                time.sleep(R_Val/12800)

                led.value = False

                time.sleep(B_Val/12800)

            except Exception as e:

                print(f"读取颜色传感器错误: {e}")

                R_Val = 128

                G_Val = 128

                B_Val = 128

再点击保存:

可以见到LED闪动,修改led.value=True  或者led.value=False  之后的时间可以调整LED闪动的频率;当然需要定义麦克风输入引脚

led = digitalio.DigitalInOut(board.A0)

然后将蜂鸣器接上A0引脚和VCCGND可以在按下D1键之后产生鸣叫,因为该了这里的代码:

                                   led.value = True

                time.sleep(R_Val/12800)

                led.value = False

                time.sleep(B_Val/12800)

所以颜色改变,声音也改变了:如下视频。

 

 



共1条 1/1 1 跳转至

回复

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