项目介绍
本项目基于ESP8266模组构建,是一个支持12键触摸检测的智能钢琴,具备OLED显示、Web控制、教学模式等功能。采用SC12B触摸芯片实现高精度多键检测,支持和弦演奏和混音播放。
本项目的硬件成本来说应该是比较低的,主要的部分就是ESP8266和SC12B,TP4056不需要也可以删掉。
小时候,玩家很少,留存至今的一件玩具是二舅小时候送我的电子琴玩具,前些年还记得修修补补还能发声,后来被家里的小朋友玩坏了,也没有多少修的必要了,恰逢嘉立创EDA开源硬件平台有开源这个简易的电子琴项目,制作复刻相对也比较简单,遂制作两个给宝宝玩。
项目功能
ESP8266具有强大的 WiFi 功能和丰富的 GPIO 接口,本项目充分利用这些特性,实现了一个功能完整的智能钢琴系统。通过 SC12B 触摸芯片实现 12 键同时检测,结合蜂鸣器音频输出和 OLED 显示,为用户提供完整的钢琴演奏体验。
固件功能
- ✅ 支持12键同时触摸检测,实现和弦演奏
- ✅ OLED实时显示当前按键和音符信息
- ✅ Web界面远程控制,支持手机操作
- ✅ 教学模式,内置小星星、两只老虎等经典曲目,OLED预览教学
- ✅ 混音播放,支持多音符同时发声
- ✅ 可调节音符持续时间、八度偏移、触摸灵敏度
- ✅ 自动播放功能,可播放预设曲目
项目参数
- 采用ESP8266作为主控,内置WiFi功能
- SC12B触摸芯片,支持12路电容触摸检测
- 128x32 OLED显示屏,实时显示演奏信息
- 无源蜂鸣器音频输出,支持多音符混音
- 支持5个八度音域,共60个音符
- Web界面支持响应式设计,适配手机和电脑
硬件设计
主控电路主控选用ESP8266,集成WiFi功能,提供丰富的GPIO接口。
- Flash:4MB
触摸检测电路
采用SC12B触摸检测芯片,支持12路电容触摸检测,并且自带消抖处理,支持持自动校正,2.5V ~ 6.0V 宽电压。
通过I2C接口与主控通信,可同时检测多个按键按下状态,实现和弦演奏功能。
- 检测通道:12路
- 通信接口:I2C
- 检测精度:高精度电容检测
- 响应时间:<10ms
- 支持同时多键检测
原理图
PCB设计
触控PAD正面
在电容触控的PCB设计中为了使其有较强的抗干扰能力,本项目触控PAD与铺地间距控制在1.5mm,使其有效平衡系统抗干扰度和触控灵敏度。
触控PAD背面
在电容触控PAD的背面做了镂空处理,减少寄生电容,改善灵敏度,在触控区和主电路区域放置地过孔隔离。
走线规则
对于相邻触摸信号线距离及铺地距离设置在15mil,避免串扰
对于触控信号线走线线宽设置为5mil
所有信号线均不跨越其他信号线,走线周围0.5mm内不走其他信号线
如果想让触控延时尽量保持一致,还可为每条触控信号线设置等长处理
封装
钢琴键已设计成封装,方便引用。
丝印部分参考:https://oshwhub.com/47uF/mini_piano 工程修改
显示电路使用128x32像素的OLED显示屏,通过I2C接口连接。实时显示当前按键状态、音符信息、模式状态等。支持图形和文字混合显示。
- 分辨率:128x32像素
- 驱动芯片:SSD1306
- 通信接口:I2C
- 显示内容:钢琴键盘、音符、状态信息
音频输出电路使用无源蜂鸣器作为音频输出设备,通过PWM信号驱动。支持不同频率的音符输出,可实现混音播放效果。
- 输出设备:无源蜂鸣器
- 驱动方式:PWM
- 音域范围:5个八度
- 支持功能:单音、和弦、混音
电池充电电路使用TP4056锂电池充电芯片。
稳压电路使用TP4056锂电池充电芯片。
接口使用TP4056锂电池充电芯片。
复刻问题:为了精简及成本考虑,未板载下载电路,实际固件烧录过程中发现成功率比较低,需要些耐心,建议加上CH340系列串口芯片,烧录更加丝滑。
记得还有些ESP-12F模块来着,翻了大半天没有找到,最终使用了两片ESP-07,同样是ESP8266,引脚和程序都兼容。
焊接好,经历多次烧录失败,终于成功之后,发现进入WEB页面可以播放内置的音频,触摸却没有声音,调节可调电容也没有任何变化,询问好几天,终于得到作者解答,对比发现元器件没有买错,最后短接可调电容,可以出声了。奈何还是不太清楚问题所在!
外壳使用嘉立创3D打印,需要注意的是,现在免费打印限制比较多,开源复刻可能遇到不能直接使用模型打印,提示需要原创或者二创才行,可以导入Fusion360等软件进行修改修改。X树脂每天限量,可以在头一天或者当天8点多提交,9点进行付款。X树脂包邮,有打印券的话可以一起下单其他的壳,绑定发货省一个邮费。
当然,花钱就没有多少限制了。
PCB同样也会有拆单打印提示,源文件中调整下丝印,加点过孔,修改修改即可下单。
固件烧录
烧录时需要使用串口工具,TX RX对调链接RX TX,IO0和GND短接,GND 3V3接入,由于没有设计按钮,需要多次尝试插拔3V3使得模组顺利进入烧录模式。
听听看,弹奏了个啥?
外壳没有设计固定螺孔,比较松散,最后拿塑料胶带固定。简单玩玩还是可以的。更多内容参见原开源页面



全部评论