2026 M-Design设计竞赛 - 基于XIAO RP2040开发板的小提琴玩具设计与制作
该项目使用了XIAO RP2040开发板及MP3语音芯片,实现了一款小提琴玩具的设计,它的主要功能为:将小提琴的琴弓触碰琴弦时,会自动播放音乐,离开时暂停播放,实现模拟真人演奏的效果。
标签
mp3
#2026 M-Design
XIAO RP2040
chinaking
更新2026-06-09
上海大学
21

基于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开发板,主要使用了1DI输入、1DO输出以及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)

# 初始化UART0TX=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,编程更加灵活。

附件下载
小提琴电路原理图v2.0.pdf
原理图
main.py
MicroPython代码
团队介绍
老胡,自动化工程师
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号