資料介紹
摘要:Arduino 是一塊基于開放原始代碼的Simple I/O平臺,具有使用簡單,功能多樣,價格低廉等優點,廣泛應用于電子系統設計和互動產品開發方面。系統以ArduinoUNO開發平臺為控制核心,充分利用其內部Tone 庫,以數組形式組織樂曲的音高和節拍數據,通過串口和外圍無源蜂鳴器進行通信,實現了電子音樂播放,隨音樂節拍亮滅的LED為設計添加了溫馨感。本系統成本低廉,可靠性高,可實現樂曲DIY,有良好的擴展性。
引言
Arduino是一個基于開放原始代碼的Simple I/O平臺,由硬件(MCU及外圍電路)和軟件(編程接口和語言)兩部分組成。它基于單片機系統開發,具有使用簡單,功能多樣,價格低廉等優點,廣泛應用于電子系統設計和互動產品開發方面。目前市場所見電子音樂發聲器調節不便,價格較高,不能很好地實現和使用者的交互。本電子音樂發聲器的設計以ArduinoUNO板為控制核心,在相關樂理基礎知識上,充分利用Arduino編輯器自帶Tone擴展庫,以數組形式輸出各音符的指定頻率和節拍,送到無源蜂鳴器和彩色LED,實現了音樂播放和隨音樂節奏亮滅的LED效果。在操作方面,可以通過簡單修改數組數據(音高和節拍)實現電子音樂的DIY,在欣賞美妙音樂的同時,充分發揮使用者的創造性。
1 系統硬件設計
本發聲器以ArduinoUNO為控制核心,外部電路包括控制電路、蜂鳴器電路、LED顯示節奏電路,系統硬件電路圖如圖1所示。開關S1對整個電路起控制作用,當檢測到開關按下,即D3端口為高電平時,電路開始工作。預先組織好的音符數據(音高和節拍)通過數字端口D8發送到5V無源蜂鳴器J1,無源蜂鳴器接收到特定頻率的(即特定的音高)方波去驅動它,可以發出“Do Re Mi Fa Sol La Si”的音樂效果。各數據加上延時(即節拍數據)即可實現樂曲的播放。無源蜂鳴器的優點是聲音頻率可控,可以和LED復用一個控制口。所以,D8端口的數據同時加到LED1、LED2、LED3上時,其節奏性的亮滅實現了節拍的顯示。
2 軟件設計
2.1 樂曲播放原理
2.1.1 單音符的演奏原理
一首樂曲由若干音符組成。從物理的角度來說,每一個音符唯一對應一個發聲頻率。Arduino只要把這個頻率數據發送給蜂鳴器或喇叭,就會發出對應的音符。Arduino IDE自帶的頭文件“pitches.h”中以宏定義的形式給出了各個音符和頻率的對應關系表。例如“#define NOTE_C4 262”語句給出了鋼琴標準鍵盤小字一組C4(唱名為Do)按鍵對應的頻率是262Hz。因此,只要能夠識別給定的樂譜,就能得到一組對應該樂曲的頻率數據,即制作出其數組形式的韻律函數。
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( )開頭,loop( )作為主體的一個程序構架。本發聲器的軟件實現過程中, loop( )函數內部包含了控制按鍵判斷函數,樂曲播放函數和延時函數。其中,樂曲播放函數play( )是發聲器軟件實現的核心語句,函數內所有語句周而復始地循環執行。下面以《生日快樂歌》(簡譜見圖3)的第一小節為例,給出了play( )函數的實現過程。
引言
Arduino是一個基于開放原始代碼的Simple I/O平臺,由硬件(MCU及外圍電路)和軟件(編程接口和語言)兩部分組成。它基于單片機系統開發,具有使用簡單,功能多樣,價格低廉等優點,廣泛應用于電子系統設計和互動產品開發方面。目前市場所見電子音樂發聲器調節不便,價格較高,不能很好地實現和使用者的交互。本電子音樂發聲器的設計以ArduinoUNO板為控制核心,在相關樂理基礎知識上,充分利用Arduino編輯器自帶Tone擴展庫,以數組形式輸出各音符的指定頻率和節拍,送到無源蜂鳴器和彩色LED,實現了音樂播放和隨音樂節奏亮滅的LED效果。在操作方面,可以通過簡單修改數組數據(音高和節拍)實現電子音樂的DIY,在欣賞美妙音樂的同時,充分發揮使用者的創造性。
1 系統硬件設計
本發聲器以ArduinoUNO為控制核心,外部電路包括控制電路、蜂鳴器電路、LED顯示節奏電路,系統硬件電路圖如圖1所示。開關S1對整個電路起控制作用,當檢測到開關按下,即D3端口為高電平時,電路開始工作。預先組織好的音符數據(音高和節拍)通過數字端口D8發送到5V無源蜂鳴器J1,無源蜂鳴器接收到特定頻率的(即特定的音高)方波去驅動它,可以發出“Do Re Mi Fa Sol La Si”的音樂效果。各數據加上延時(即節拍數據)即可實現樂曲的播放。無源蜂鳴器的優點是聲音頻率可控,可以和LED復用一個控制口。所以,D8端口的數據同時加到LED1、LED2、LED3上時,其節奏性的亮滅實現了節拍的顯示。
2 軟件設計
2.1 樂曲播放原理
2.1.1 單音符的演奏原理
一首樂曲由若干音符組成。從物理的角度來說,每一個音符唯一對應一個發聲頻率。Arduino只要把這個頻率數據發送給蜂鳴器或喇叭,就會發出對應的音符。Arduino IDE自帶的頭文件“pitches.h”中以宏定義的形式給出了各個音符和頻率的對應關系表。例如“#define NOTE_C4 262”語句給出了鋼琴標準鍵盤小字一組C4(唱名為Do)按鍵對應的頻率是262Hz。因此,只要能夠識別給定的樂譜,就能得到一組對應該樂曲的頻率數據,即制作出其數組形式的韻律函數。
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( )開頭,loop( )作為主體的一個程序構架。本發聲器的軟件實現過程中, loop( )函數內部包含了控制按鍵判斷函數,樂曲播放函數和延時函數。其中,樂曲播放函數play( )是發聲器軟件實現的核心語句,函數內所有語句周而復始地循環執行。下面以《生日快樂歌》(簡譜見圖3)的第一小節為例,給出了play( )函數的實現過程。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- AY-3-8910發聲器開源(Arduino Nano控制)
- 基于單片機電子音樂Proteus仿真程序 0次下載
- 基于AT89C51單片機按鍵選播電子音樂Proteus仿真及程序 4次下載
- 51單片機程序設計——電子音樂盒
- 使用單片機設計電子音樂門鈴的程序免費下載 28次下載
- 使用單片機實現按鍵選播電子音樂的程序和仿真資料免費下載 27次下載
- 使用單片機按鍵選播電子音樂的proteus仿真電路圖 21次下載
- 單片機播放電子音樂的程序資料免費下載 5次下載
- 基于8051的Proteus仿真-按鍵選播電子音樂 17次下載
- 無源蜂鳴器設計電子音樂 0次下載
- 多功能電子音樂霓虹燈顯示裝置
- 按鍵選播電子音樂(基于8051+Proteus仿真)
- 用單片機設計電子音樂門鈴
- 電子音樂門鈴對講雙用計電路及制作
- 電子音樂盒設計
- 蜂鳴器的發聲原理 蜂鳴器電路圖分享 1.5w次閱讀
- 基于Arduino的音樂創作系統設計 1271次閱讀
- 電力變壓器保護設計方案 772次閱讀
- DIY電子調頻閃爍燈電路 1544次閱讀
- 節拍器聲音發生器的電子電路圖 2543次閱讀
- 帶有觸摸開關和定時器的音樂鈴電路圖 2652次閱讀
- 如何利用Arduino UNO和SD卡制作音樂播放器 8104次閱讀
- 如何使用通用單片機制作MIDI鍵盤 7096次閱讀
- 蜂鳴器的發聲原理及選型時的參數注意 2.2w次閱讀
- 工程師制作電子音樂木管樂器 3207次閱讀
- 電子電路設計方案的步驟和注意事項 1.5w次閱讀
- 使用51單片機設計倒計時發聲器的資料概述 5493次閱讀
- 無線語音門鈴怎么樣?無線語音門鈴工作原理淺析 3502次閱讀
- 三路搶答器電路設計方案匯總(三款模擬電路設計原理圖詳解) 8.4w次閱讀
- 帶柔性開關的報警發聲器 2215次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多