張鵬







作為一個理工男,對音樂總有著迷之興趣。但是在這方面一直缺乏指導,只在小學的時候上過幾節音樂,記得少許簡譜的概念。后來中學忙于文化課,大學選擇了電子專業,與音樂就越來越遠。筆者現在已經參加工作了,小時候埋在心里的種子終究會發芽,工作閑暇利用自己專業相關的知識,設計了一款電子樂器,與諸君分享。
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。連接成功就可以在手機上演奏了。