<table id="m226q"></table>
<bdo id="m226q"><center id="m226q"></center></bdo>
  • <bdo id="m226q"><center id="m226q"></center></bdo>
    <noscript id="m226q"><noscript id="m226q"></noscript></noscript>
  • 新聞中心

    EEPW首頁 > 業界動態 > 基于ESP32的卡林巴琴制作教程

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

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

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

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

    1   卡林巴琴簡介

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

    image.png

    圖1 鼠標按鍵

    2   硬件設計

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

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

    1650350344417865.png

    圖2 電子卡琳巴琴

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

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

    注意,使用鼠標按鍵的上面;上面兩個引腳分別連接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,開發環境使用的是uPyCraft,程序的邏輯是先通過藍牙實現MIDI 服務,等待手機連接,手機連接成功后當檢測到有按鍵按下,就發送相關的MIDI 指令到手機上。

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

    1650350727115177.png

    圖7 iOS平臺設備連接示意

    1650350757623322.png

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

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

    image.png




    關鍵詞: 202204

    評論


    技術專區

    關閉
    柳岩被弄高潮大全,成人性午夜视频在线观看,国产免费一区二区三区香蕉金
    <table id="m226q"></table>
    <bdo id="m226q"><center id="m226q"></center></bdo>
  • <bdo id="m226q"><center id="m226q"></center></bdo>
    <noscript id="m226q"><noscript id="m226q"></noscript></noscript>