基于XIAO RP2040开发板的小提琴玩具设计与制作
一、项目简介
本项目是为 2026 贸泽电子M-Design创意设计大赛(第二季) 而准备,选题为 方向五:教育与创意互动。
本项目基于Seeed Studio公司的 XIAO RP2040开发板,结合MP3语音芯片等元件,设计了一款语音播放控制板,并制作完成了一款小提琴玩具。将小提琴的琴弓触碰琴弦时,会自动播放音乐,离开时暂停播放,实现模拟真人演奏的效果。
它的工作原理是,当琴弓触碰琴弦时,开发板会收到开关量接通信号,进而发送播放命令到MP3芯片,实现音乐播放;当琴弓离开琴弦时,开关量信号断开,开发板向MP3发送暂停播放的指令。这样即可实现放音和暂停功能。
电路板上有7个按键,分别控制播放/暂停、曲目选择、音量调节、循环播放等功能。

二、硬件电路设计
硬件电路用到的主要物料如下
序号 | 名称 | 型号 | 厂商 | 备注 | 采购渠道 |
1 | MCU开发板 | XIAO RP2040 | Seeed Studio | 赞助商 | 贸泽电子 |
2 | MP3语音芯片 | MY1680U-16S | 迈优科技 |
|
|
3 | NOR FLASH | GD25Q64CSJGR | GigaDevice |
| 贸泽电子 |
4 | 音频放大器 | LM4871MMX/NOPB | Texas Instruments | 赞助商 | 贸泽电子 |
5 | 扬声器 | 8欧 0.5W |
|
|
|
系统框图

电路原理图
硬件电路使用立创EDA设计
电源
电源直接使用充电宝供电,后续也可使用锂电池。

MP3电路
MP3芯片可通过UART口和MCU通讯,芯片具有USB接口,连接到电脑可直接更新语音,需要外挂FLASH实现音乐文件存储。使用德州仪器的LM4871实现音频功放。


模拟量ADC连接到MP3芯片的ADKEY引脚上,MP3芯片根据电阻分压得到的不同电压,执行对应的控制功能。

MCU电路
MCU控制器使用XIAO RP2040开发板,主要使用了1路DI输入、1路DO输出以及UART口。

DI输入信号,使用D0端子,当接地时,信号触发。
UART接口和MP3通讯,发送播放和暂停指令。
PCB图
PCB为两层。下图为顶层和底层设计图。

下图为PCB实物图


三、软件设计
本项目使用MicroPython进行开发。
首先,要为开发板更新固件,在micropython.org网站上,下载uf2固件文件。
然后使用Thonny编程。
主要功能是,D0引脚的开关量输入,UART0为串口输出。根据开关量信号变化,控制UART发送播放或暂停的指令到MP3芯片。
主要代码
from machine import Pin, UART
import time
# 配置引脚
led = Pin(25, Pin.OUT) # 板载LED(低电平亮)
button = Pin(26, Pin.IN, Pin.PULL_UP) # D0引脚,内部上拉
user_led = Pin(3, Pin.OUT)
# 初始化UART0(TX=GPIO0, RX=GPIO1)
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
# 定义十六进制命令
CMD_PRESS = bytes([0x7E, 0x03, 0x11, 0x12, 0xEF]) # 按下时发送 播放命令
CMD_RELEASE = bytes([0x7E, 0x03, 0x12, 0x11, 0xEF]) # 松开时发送 暂停命令
# 初始状态
last_button_state = 1 # 1表示未按下(上拉电阻)
while True:
current_state = button.value()
# 检测状态变化(按下瞬间:1->0)
if current_state == 0 and last_button_state == 1:
led.value(0) # LED亮(低电平)
uart.write(CMD_PRESS) # 发送十六进制命令
print("发送按下命令:", CMD_PRESS.hex())
# 检测状态变化(松开瞬间:0->1)
elif current_state == 1 and last_button_state == 0:
led.value(1) # LED灭
uart.write(CMD_RELEASE) # 发送十六进制命令
print("发送松开命令:", CMD_RELEASE.hex())
last_button_state = current_state
time.sleep(0.01) # 10ms防抖延时
四、演示效果
将小提琴的琴弓触碰琴弦时,会自动播放音乐,同时XIAO RP2040板载蓝色LED点亮;琴弓离开时暂停播放,蓝色LED灯灭,实现模拟真人演奏的效果。


具体效果请看视频。
五、心得体会
本项目实现了一款音乐小提琴玩具制作,可模拟真人演奏效果。
项目后续还有一定的升级空间。
1.目前使用充电宝5V供电。电源部分可考虑采用干电池或充电电池供电,并设计升压或充电电路。
2.电路板按键和控制功能可进行分类,分成两块电路板,便于后续缩小体积,并与外壳结构更好的融合。
3.目前ADC按键功能直接接入MP3芯片,后续可以接入MCU,编程更加灵活。