基于ESP32的卡林巴琴制作教程
作为一个理工男,对音乐总有着迷之兴趣。但是在这方面一直缺乏指导,只在小学的时候上过几节音乐,记得少许简谱的概念。后来中学忙于文化课,大学选择了电子专业,与音乐就越来越远。笔者现在已经参加工作了,小时候埋在心里的种子终究会发芽,工作闲暇利用自己专业相关的知识,设计了一款电子乐器,与诸君分享。
1 卡林巴琴简介
卡林巴琴本是非洲的一种民族乐器,通过弹拨发出声音。本设计模仿卡林巴琴的外观,采用图1 所示的鼠标按键代替卡林巴琴的金属弹片,蓝牙连接手机,在手机上发出声音。
图1 鼠标按键
2 硬件设计
该设计采用ESP32 作为主控单元,ESP32 是一颗功能强大的物联网芯片,可同时支持WiFi 和蓝牙功能,20+ 可用GPIO,运行频率最高可达240 MHz,可以采用C 语言、Ardiuno、MicroPython 等方式进行开发。
整体的设计思路是先使用ESP32 的蓝牙功能实现MIDI 协议,连接手机后,与手机上的APP 配合,手机在手机上发出声音。编程语言使用的是MicroPython,上手相对比较简单,非电子专业的同学也可以尝试做一下。
图2 电子卡琳巴琴
工作原理也非常简单,当程序检测到有按键按下时,ESP32 通过蓝牙发送相应的MIDI 指令到手机,手机收到相关的指令后,在手机上播放对应的音符。
讲完了工作原理,接下来我们看下硬件设计。如果你没有PCB 板设计经验,可以尝试制作如图3 所示的简易版本,使用现成的ESP32_Dev_Kit 开发板配合鼠标按键,在一款较大的洞洞板上简单焊接就完成了。
注意,使用鼠标按键的上面;上面两个引脚分别连接GND 和ESP 的引脚。
(a)正面
(b)背面
图3 简易版卡林巴琴
如果你有一定的PCB 设计能力,建议制作图4 所示的版本,集成了锂电池充电电路和WS2812 彩灯,同时外观也更为美观,电路原理图见图5,元器件布局见图6。为了追求美观,所有的走线都放置在了PCB 板的背面。
图4 彩灯版卡林巴琴
图5 彩灯版卡林巴琴的原理图
图6 彩灯版卡林巴琴的元器件布局
3 软件设计
编程语言使用的是MicroPython,开发环境使用的是uPyCraft,程序的逻辑是先通过蓝牙实现MIDI 服务,等待手机连接,手机连接成功后当检测到有按键按下,就发送相关的MIDI 指令到手机上。
核心代码请参考电子产品世界网站论坛。代码运行后,根据手机平台的不同,使用如下方式与设备建立连接,iOS 平台见图7,安卓平台见图8。连接成功就可以在手机上演奏了。
图7 iOS平台设备连接示意
图8 安卓平台设备连接示意