新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于ESP32的卡林巴琴制作教程

        基于ESP32的卡林巴琴制作教程

        作者:張鵬(電子產品世界特約作者) 時間:2022-04-19 來源:電子產品世界 收藏

        作為一個理工男,對音樂總有著迷之興趣。但是在這方面一直缺乏指導,只在小學的時候上過幾節(jié)音樂,記得少許簡譜的概念。后來中學忙于文化課,大學選擇了電子專業(yè),與音樂就越來越遠。筆者現在已經參加工作了,小時候埋在心里的種子終究會發(fā)芽,工作閑暇利用自己專業(yè)相關的知識,設計了一款電子樂器,與諸君分享。

        本文引用地址:http://www.104case.com/article/202204/433243.htm

        1   簡介

        本是非洲的一種民族樂器,通過彈撥發(fā)出聲音。本設計模仿的外觀,采用圖1 所示的鼠標按鍵代替卡林巴琴的金屬彈片,藍牙連接手機,在手機上發(fā)出聲音。

        image.png

        圖1 鼠標按鍵

        2   硬件設計

        該設計采用ESP32 作為主控單元,ESP32 是一顆功能強大的物聯(lián)網芯片,可同時支持WiFi 和藍牙功能,20+ 可用GPIO,運行頻率最高可達240 MHz,可以采用C 語言、Ardiuno、MicroPython 等方式進行開發(fā)。

        整體的設計思路是先使用ESP32 的藍牙功能實現MIDI 協(xié)議,連接手機后,與手機上的APP 配合,手機在手機上發(fā)出聲音。編程語言使用的是MicroPython,上手相對比較簡單,非電子專業(yè)的同學也可以嘗試做一下。

        1650350344417865.png

        圖2 電子卡琳巴琴

        工作原理也非常簡單,當程序檢測到有按鍵按下時,ESP32 通過藍牙發(fā)送相應的MIDI 指令到手機,手機收到相關的指令后,在手機上播放對應的音符。

        講完了工作原理,接下來我們看下硬件設計。如果你沒有PCB 板設計經驗,可以嘗試制作如圖3 所示的簡易版本,使用現成的ESP32_Dev_Kit 開發(fā)板配合鼠標按鍵,在一款較大的洞洞板上簡單焊接就完成了。

        注意,使用鼠標按鍵的上面;上面兩個引腳分別連接GND 和ESP 的引腳。

        1650350408741018.png

        (a)正面

        1650350443218501.png

        (b)背面

        圖3 簡易版卡林巴琴

        如果你有一定的PCB 設計能力,建議制作圖4 所示的版本,集成了鋰電池充電電路和WS2812 彩燈,同時外觀也更為美觀,電路原理圖見圖5,元器件布局見圖6。為了追求美觀,所有的走線都放置在了PCB 板的背面。

        1650350554151004.png

        圖4 彩燈版卡林巴琴

        1650350591261478.png

        圖5 彩燈版卡林巴琴的原理圖

        1650350623586482.png

        圖6 彩燈版卡林巴琴的元器件布局

        3   軟件設計

        編程語言使用的是MicroPython,開發(fā)環(huán)境使用的是uPyCraft,程序的邏輯是先通過藍牙實現MIDI 服務,等待手機連接,手機連接成功后當檢測到有按鍵按下,就發(fā)送相關的MIDI 指令到手機上。

        核心代碼請參考電子產品世界網站論壇。代碼運行后,根據手機平臺的不同,使用如下方式與設備建立連接,iOS 平臺見圖7,安卓平臺見圖8。連接成功就可以在手機上演奏了。

        1650350727115177.png

        圖7 iOS平臺設備連接示意

        1650350757623322.png

        圖8 安卓平臺設備連接示意

        (本文來源于《電子產品世界》雜志2022年4月期)

        image.png




        關鍵詞: 202204 卡林巴琴

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 繁昌县| 修文县| 义马市| 台湾省| 陆丰市| 永城市| 永清县| 光泽县| 蒲城县| 徐汇区| 广德县| 峨眉山市| 若羌县| 乌兰察布市| 金川县| 韩城市| 仁怀市| 确山县| 靖安县| 神池县| 灵寿县| 革吉县| 周口市| 历史| 沾益县| 铜鼓县| 潼关县| 太湖县| 灵丘县| 来宾市| 朝阳市| 扶绥县| 特克斯县| 文登市| 泸水县| 伊通| 阿拉尔市| 扎鲁特旗| 三明市| 高密市| 万山特区|