• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Arduino的電子音樂發(fā)聲器設(shè)計

      2017-04-13 16:02:56趙云娥吳振強
      電子產(chǎn)品世界 2017年2期
      關(guān)鍵詞:音高

      趙云娥 吳振強

      摘要:Arduino是一塊基于開放原始代碼的Simple 110平臺,具有使用簡單,功能多樣,價格低廉等優(yōu)點,廣泛應(yīng)用于電子系統(tǒng)設(shè)計和互動產(chǎn)品開發(fā)方面。系統(tǒng)以ArduinoUNO開發(fā)平臺為控制核心,充分利用其內(nèi)部Tone庫,以數(shù)組形式組織樂曲的音高和節(jié)拍數(shù)據(jù),通過串口和外圍無源蜂鳴器進行通信,實現(xiàn)了電子音樂播放,隨音樂節(jié)拍亮滅的LED為設(shè)計添加了溫馨感。本系統(tǒng)成本低廉,可靠性高,可實現(xiàn)樂曲DIY,有良好的擴展性。

      關(guān)鍵詞:Arduino;音樂發(fā)聲器;音高;節(jié)拍

      DOI:10.3969/j.issn.1005-5517.2017.2.010

      引言

      Arduino是一個基于開放原始代碼的Sireple I/O平臺,由硬件(MCU及外圍電路)和軟件(編程接口和語言)兩部分組成。它基于單片機系統(tǒng)開發(fā),具有使用簡單,功能多樣,價格低廉等優(yōu)點,廣泛應(yīng)用于電子系統(tǒng)設(shè)計和互動產(chǎn)品開發(fā)方面。目前市場所見電子音樂發(fā)聲器調(diào)節(jié)不便,價格較高,不能很好地實現(xiàn)和使用者的交互。本電子音樂發(fā)聲器的設(shè)計以ArduinoUNo板為控制核心,在相關(guān)樂理基礎(chǔ)知識上,充分利用Arduino編輯器自帶Tone擴展庫,以數(shù)組形式輸出各音符的指定頻率和節(jié)拍,送到無源蜂鳴器和彩色LED,實現(xiàn)了音樂播放和隨音樂節(jié)奏亮滅的LED效果。在操作方面,可以通過簡單修改數(shù)組數(shù)據(jù)(音高和節(jié)拍)實現(xiàn)電子音樂的DIY,在欣賞美妙音樂的同時,充分發(fā)揮使用者的創(chuàng)造性。

      1 系統(tǒng)硬件設(shè)計

      本發(fā)聲器以ArduinoUNO為控制核心,外部電路包括控制電路、蜂鳴器電路、LED顯示節(jié)奏電路,系統(tǒng)硬件電路圖如圖1所示。開關(guān)S1對整個電路起控制作用,當(dāng)檢測到開關(guān)按下,即D3端口為高電平時,電路開始工作。預(yù)先組織好的音符數(shù)據(jù)(音高和節(jié)拍)通過數(shù)字端口D8發(fā)送到SV無源蜂鳴器J1,無源蜂鳴器接收到特定頻率的(即特定的音高)方波去驅(qū)動它,可以發(fā)出“Do Re Mi Fa sol La si”的音樂效果。各數(shù)據(jù)加上延時(即節(jié)拍數(shù)據(jù))即可實現(xiàn)樂曲的播放。無源蜂鳴器的優(yōu)點是聲音頻率可控,可以和LED復(fù)用一個控制口。所以,D8端口的數(shù)據(jù)同時加到LED1、LED2、LED3上時,其節(jié)奏性的亮滅實現(xiàn)了節(jié)拍的顯示。

      2 軟件設(shè)計

      2.1 樂曲播放原理

      2.1.1 單音符的演奏原理

      一首樂曲由若干音符組成。從物理的角度來說,每一個音符唯一對應(yīng)一個發(fā)聲頻率。Ard uino只要把這個頻率數(shù)據(jù)發(fā)送給蜂鳴器或喇叭,就會發(fā)出對應(yīng)的音符。Arduino IDE自帶的頭文件“pitches.h”中以宏定義的形式給出了各個音符和頻率的對應(yīng)關(guān)系表。例如“#define NOTE_C4 262”語句給出了鋼琴標(biāo)準(zhǔn)鍵盤小字一組C4(唱名為Do)按鍵對應(yīng)的頻率是262 Hz。因此,只要能夠識別給定的樂譜,就能得到一組對應(yīng)該樂曲的頻率數(shù)據(jù),即制作出其數(shù)組形式的韻律函數(shù)。

      2.1.2 節(jié)拍

      除了音高,構(gòu)成旋律的另一個重要因素是節(jié)拍,即音符演奏的持續(xù)時間。它決定了音樂進行的快慢程度。本發(fā)聲器的設(shè)計中,通過讀取旋律的節(jié)拍速度,來確定基本的延時單位。如二分音符為一拍,每拍延時1/2秒,則四分音符延時1/4秒,八分音符延時為1/8秒,均為基本延時的偶數(shù)倍。最終,采用了noteDurations[thisNote]數(shù)組來存放每個音符的節(jié)拍數(shù)據(jù)。在應(yīng)用過程中,我們也可以通過調(diào)節(jié)基本延時來調(diào)節(jié)樂曲速度。頻率數(shù)據(jù)按照節(jié)拍數(shù)據(jù)的延時來驅(qū)動蜂鳴器,就實現(xiàn)了一首樂曲的播放。

      2.2 樂曲播放的軟件實現(xiàn)

      ArduinoIDE包含的Tone庫可以很方便地幫助用戶制作音樂。本設(shè)計主要采用了Tone(pin,frequency,duration)函數(shù)來產(chǎn)生電子音樂。此函數(shù)中,pin表示頻率數(shù)據(jù)的數(shù)字輸出接口,int型;frequency是音符頻率,int型;duration是節(jié)拍數(shù)據(jù),單位是毫秒,unsigned long型。只要把上述頻率和節(jié)拍數(shù)據(jù)連續(xù)賦值給Tone函數(shù),就可以實現(xiàn)樂曲的播放,系統(tǒng)軟件實現(xiàn)的程序流程圖見圖2。

      Arduino語言是以setup()開頭,Ioop()作為主體的一個程序構(gòu)架。本發(fā)聲器的軟件實現(xiàn)過程中,Ioop()函數(shù)內(nèi)部包含了控制按鍵判斷函數(shù),樂曲播放函數(shù)和延時函數(shù)。其中,樂曲播放函數(shù)play()是發(fā)聲器軟件實現(xiàn)的核心語句,函數(shù)內(nèi)所有語句周而復(fù)始地循環(huán)執(zhí)行。下面以《生日快樂歌》(簡譜見圖3)的第一小節(jié)為例,給出了play()函數(shù)的實現(xiàn)過程。祝你生日快樂

      intmelody[]={

      NOTE_G4,//5

      NOTE_G4,//5

      NOTE_A4,//6

      NOTE_G4,//5

      NOTE_C5,//1.

      NOTE_B4,//7

      0,

      ……};

      int noteDurations[]={

      8,8,4,4,4,4,

      4,

      };

      void play()

      {

      for(int thisNote=0;thisNote<29;thisNote++)

      {

      int noteDu ration:1000/noteDurations[thisNote]

      tone(8,melody[thisNote],noteDuration);

      int pauseBetweenNotes=noteDuration*1.30;

      delay(pauseBetweenNotes);

      noTone(8);

      }}

      3 結(jié)論

      本系統(tǒng)利用了目前較為流行的Arduino電子互動平臺,通過對ARDUINO IDE平臺進行軟件開發(fā)來控制外圍部件,實現(xiàn)了電子音樂的播放和節(jié)奏的顯示。Arduino是基于源代碼的軟硬件平臺,具有價格便宜,互動多樣,支持實時ISP在線燒錄等特點。因此,本發(fā)聲器價格低廉,操作簡單,編輯方便,節(jié)拍速度可以調(diào)節(jié),靈活性較高。該發(fā)聲器功能可以進一步拓展,如果使用者具有一定的音樂素養(yǎng),可以實現(xiàn)電子音樂DIY,為生活添加樂趣。

      猜你喜歡
      音高
      喬治·克拉姆《大宇宙Ⅲ》音高組織分析
      音樂生活(2024年1期)2024-03-13 08:07:58
      庫塔克《四首隨想曲》的音高材料與創(chuàng)作觀念研究
      里蓋蒂《小提琴協(xié)奏曲》中的“雙律制音高組織”研究
      樂府新聲(2021年1期)2021-05-21 08:09:14
      改進音高輪廓創(chuàng)建和選擇的旋律提取算法
      序列的蛻變——皮埃爾·布列茲室內(nèi)樂作品《無主之槌》音高組織初探
      樂府新聲(2017年1期)2017-05-17 06:06:37
      音樂是一種特殊的語言——聊聊音高的魅力
      學(xué)與玩(2017年5期)2017-02-16 07:06:28
      剑川县| 达州市| 理塘县| 忻城县| 西乡县| 贺兰县| 蓝田县| 资溪县| 永丰县| 彝良县| 贺州市| 无为县| 年辖:市辖区| 石台县| 阆中市| 泽州县| 镇安县| 吴堡县| 桂阳县| 南投市| 明星| 济南市| 怀柔区| 亳州市| 昂仁县| 榆社县| 高台县| 望谟县| 衡阳市| 乌鲁木齐县| 长汀县| 华容县| 报价| 宿松县| 台前县| 青田县| 墨脱县| 鸡泽县| 固原市| 遂溪县| 永寿县|