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