电子专业的学生,或多或少估计都制作过电子乐器,相对简单的作品使使用按键模拟电子琴。本文章就给大家介绍一款可以拉的电子乐器。外观参考了我们的民族乐器二胡,保留了通过弓弦拉的动作,不同时的将按弦的动作换成了按键。
电子二胡成品
视频演示连接如下: https://www.bilibili.com/video/BV1sh411i7at
设计思路
与上一篇文章介绍的卡林巴琴类似,这个二胡也采用了ESP32 作为主控单元,通过蓝牙连接手机在手机上发声。不同的是这个乐器的核心元器件是如下图所示的EC11编码器,演奏的时候将一根绳子拴在编码器上,拉动编码器的旋转,程序检测编码器的转速,转的越快声音就越大。
EC11编码器和机械键盘按键
按键部分采用的是机械键盘的按键,按不同的按键,发送不同的MIDI指令控制手机播放不同的音符。值得一题的是,我在安卓系统上没有找到能够通过蓝牙MIDI播放二胡音源的APP,后面的演示都是基于iSO的库乐队APP,如果想要做这个乐器的话,需要先检查一下手头上的设备是否支持。
库乐队下载及操作
安装好库乐队后,在库乐队中依次点击 设置 > 高级 > 蓝牙MIDI设备,即可扫描到周围符合条件的设备。
硬件设计
完整的原理图如下图所示:
电路板上板上集成了USB转串口调试器,电池充电芯片,16颗机械键盘按键,1个EC11编码器,4颗WS2812B彩色LED灯。由于整个乐器过长,PCB设计时将其拆分了上下两部分(可在捷配领券免费打样),组装的时候需要使用排针,将上下两部分连接起来。
所有的硬件设计资料都在立创广场开源: https://oshwhub.com/Dr.Zhang/edrum_copy_copy
另外需要注意的是,普通的编码器在旋转的时候时候有转动的,为了使拉动比较顺滑,需要拆开编码器,将里面的弹片按下去,这样旋转的时候就不会有震动了。机械按键建议选择力不教轻且无段落感的红轴按键,按起来比较顺畅。
EC11编码器去阻尼 红轴机械按键
软件设计
相比于卡林巴琴,该乐器的实时性要求比较高,使用MicroPython会有一定的延时,所以使用效率更高的C语言编程,程序开源地址如下:
https://github.com/ospanic/eerhu
当然,如果你不熟悉ESP32的开发,也可以直接使用我编译好的固件,焊接好硬件,将固件烧录到芯片即可运行。(点击这里下载)。
固件烧录方法
烧录完固件,重启设备,找一根绳子做一个弓,连接手机库乐队APP后,就可以演奏了。
元器件列表:
名称 | 型号 | 封装 | 数量 | 备注 |
USB接口 | MicroUSB | 贴片 | 1 | |
串口芯片 | CH340N | SOP-8 | 1 | 修改电路可用CH340C替换 |
电容 | 0.1uF(104) | 0805 | 5 | |
电阻 | 1K | 0603 | 1 | 用作LED限流 |
电阻 | 2K | 0603 | 1 | 用作锂电池充电限流 |
电阻 | 10K | 0603 | 1 | 用作EN引脚上拉 |
按键 | K4-6×6_TH | 直插 | 2 | 用作复位及Boot选择 |
开关 | MSS22D18G2 | 直插 | 1 | |
ESP32模块 | ESP32-S | SMD | 1 | |
编码器 | EC11 | 直插 | 1 | 梅花柄 20mm |
机械按键 | 红轴 | 直插 | 16 | 注意选择 三脚带弯柄 |
红色LED | * | 0603 | 1 | 用作充电指示 |
5V-3.3V芯片 | AMS1117 3.3 | SOT-223 | 1 | |
锂电池充电 | TP4055 | SOT-23-5 | 1 | |
彩色灯珠 | WS2812 | 贴片 | 4 | 可选 |
锂电池 | 3.7V 1000mAh | * | 1 | 500mAh – 2000mAh均可 |