999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Arduino的電子音樂發聲器設計

2017-04-13 16:02:56趙云娥吳振強
電子產品世界 2017年2期

趙云娥 吳振強

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

關鍵詞:Arduino;音樂發聲器;音高;節拍

DOI:10.3969/j.issn.1005-5517.2017.2.010

引言

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

1 系統硬件設計

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

2 軟件設計

2.1 樂曲播放原理

2.1.1 單音符的演奏原理

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

2.1.2 節拍

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

2.2 樂曲播放的軟件實現

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

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

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 結論

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

主站蜘蛛池模板: 97色伦色在线综合视频| 欧美成人区| 久热精品免费| 国产精品成人一区二区| 日韩午夜福利在线观看| 欧美人人干| 精品国产欧美精品v| 最新亚洲av女人的天堂| 久久黄色免费电影| 国产va在线观看免费| 国产成人在线小视频| 69av在线| 欧美性久久久久| 国产91丝袜在线播放动漫| 日本不卡免费高清视频| 欧美无遮挡国产欧美另类| 久久国产乱子伦视频无卡顿| 国产精品无码久久久久AV| 欧美日韩北条麻妃一区二区| 免费看久久精品99| 免费国产高清精品一区在线| 91娇喘视频| 亚洲美女高潮久久久久久久| 91蜜芽尤物福利在线观看| 激情乱人伦| 制服丝袜一区二区三区在线| 亚洲综合18p| 亚洲人成影院午夜网站| 亚洲中久无码永久在线观看软件 | 亚洲欧美精品一中文字幕| 午夜精品久久久久久久无码软件 | 亚洲热线99精品视频| 天天做天天爱天天爽综合区| 国产人人射| 亚洲伊人电影| 首页亚洲国产丝袜长腿综合| 丝袜无码一区二区三区| 亚洲精品色AV无码看| 国产精品入口麻豆| 99视频只有精品| 青青热久免费精品视频6| 四虎国产成人免费观看| 五月天在线网站| 欧美影院久久| 午夜欧美理论2019理论| 国国产a国产片免费麻豆| 91丝袜乱伦| 欧美一级特黄aaaaaa在线看片| 日韩专区欧美| 国产美女精品在线| yy6080理论大片一级久久| 十八禁美女裸体网站| 波多野结衣在线一区二区| 色综合激情网| 69av免费视频| 国产精品无码制服丝袜| 日日拍夜夜操| 久久女人网| 久草国产在线观看| 欧美日本中文| 亚洲第一国产综合| 伊大人香蕉久久网欧美| 日韩激情成人| 在线亚洲精品自拍| 中文字幕在线观| 欧美色图久久| 国内毛片视频| 亚洲国产精品日韩av专区| 亚洲欧美日韩视频一区| 91在线国内在线播放老师| 97在线免费| 人妻夜夜爽天天爽| 久久综合九九亚洲一区| 日韩精品毛片人妻AV不卡| 毛片免费在线| 在线免费看片a| 国产成人综合日韩精品无码不卡| 青青草原偷拍视频| 国产素人在线| 色精品视频| 1769国产精品视频免费观看| 亚欧成人无码AV在线播放|