亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Arduino助力美好生活—以音樂播放器的設(shè)計(jì)為例

        2016-11-07 01:27:55趙云娥吳振強(qiáng)
        甘肅科技縱橫 2016年10期
        關(guān)鍵詞:蜂鳴器播放器音符

        趙云娥,吳振強(qiáng)

        (1.青海建筑職業(yè)技術(shù)學(xué)院,青海西寧810012;2.陜西師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,陜西西安710119)

        Arduino助力美好生活—以音樂播放器的設(shè)計(jì)為例

        趙云娥1,吳振強(qiáng)2

        (1.青海建筑職業(yè)技術(shù)學(xué)院,青海西寧810012;2.陜西師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,陜西西安710119)

        Arduino是一塊基于開放原始代碼的SimpleI/O平臺(tái),具有資源豐富、功能多樣、操作簡單、價(jià)格低廉等優(yōu)點(diǎn),廣泛應(yīng)用于電子系統(tǒng)設(shè)計(jì)和互動(dòng)產(chǎn)品開發(fā)方面,也被稱為“電子積木”。本論述介紹了Arduino開發(fā)平臺(tái)的軟件和硬件組成,以音樂播放器的設(shè)計(jì)為例展示了基于Arduino的電子產(chǎn)品設(shè)計(jì)的基本過程,使讀者初步掌握Arduino的功能和特點(diǎn)。

        Arduino;電子產(chǎn)品設(shè)計(jì);音樂播放器;音高;節(jié)拍

        DOI10.3969/j.issn.1672-6375.2016.10.005

        1 概述

        Arduino是一個(gè)基于開放原始代碼的SimpleI/O平臺(tái),由硬件(MCU及外圍電路)和軟件(ArduinoIDE)兩部分組成。Arduino的硬件平臺(tái)包括基于AVR單片機(jī)的主控制電路板,以及大量的各式輸入/輸出電子模塊,比如開關(guān)輸入模塊、溫度壓力傳感器輸入模塊、超聲測距傳感器輸入模塊、LCD顯示輸出模塊等。用戶可以不熟悉底層電子元器件的電氣特性,只要會(huì)“拼接”模塊,就能夠進(jìn)行電子產(chǎn)品互動(dòng)設(shè)計(jì)。ArduinoIDE具有類似Java、C語言的Processing/Wiring開發(fā)環(huán)境,易學(xué)易用,同時(shí)有著足夠的靈活性,可以在Windows、MacintoshOSX、Linux三大主流操作系統(tǒng)上運(yùn)行。Arduino的硬件原理圖、電路圖、IDE軟件及核心庫文件都是開源的,Arduino官方網(wǎng)站上有大量的庫文件供使用者下載。同時(shí),在開源協(xié)議范圍內(nèi),使用者可以任意修改作品的原始設(shè)計(jì)及相應(yīng)代碼為自己服務(wù)。Arduino可以獨(dú)立運(yùn)行,也可以與MacromediaFlash,Processing,Max/MSP,PureData甚至Androi等軟件進(jìn)行交互式設(shè)計(jì)。因此,使用者可以利用Arduino軟件和硬件平臺(tái),充分發(fā)揮個(gè)人想象力和創(chuàng)造性,開發(fā)出很多令人驚艷的互動(dòng)產(chǎn)品。本論述以音樂播放器的設(shè)計(jì)為例,對(duì)Arduino軟件、硬件平臺(tái)及其在產(chǎn)品開發(fā)方面的應(yīng)用進(jìn)行了介紹。

        2 ARDUINO簡介

        2.1硬件平臺(tái)

        Arduino主控板的微處理器主要采用Atmel公司研發(fā)的AVR單片機(jī)(如ATmega328),除了購買官方版的Arduino(圖1為比較典型的ARDUINOUNO主控板),用戶可以在主控單片機(jī)的外圍自行搭建電路,DIY自己的Arduino。目前,市面上Arduino主控板種類繁多,各有特色,有滿足可穿戴設(shè)備設(shè)計(jì)的ARDUINOGEMMA,有用于3D打印技術(shù)的METERIA101等等,用戶可按需挑選。不同的主控板有不同的數(shù)量和功能的I/O接口,方便連接外部IC模塊。通過外部擴(kuò)展,用戶可以替Arduino加上眼睛(如紅外線和超聲波傳感器)、耳朵(麥克風(fēng))和手腳(如舵機(jī)),加上與之對(duì)應(yīng)的控制程序,就能做出各種自動(dòng)控制應(yīng)用。例如:加上溫度傳感器及一些控制線路,就能讓Arduino自動(dòng)控制空調(diào)的運(yùn)轉(zhuǎn);加上舵機(jī)/步進(jìn)電機(jī),以及障礙物傳感器即可組裝一臺(tái)智能行走的機(jī)器人。由于Arduino擁有豐富的系列產(chǎn)品、大量簡便的輸入輸出資源模塊,讓Arduino得到了更為廣泛的應(yīng)用和支持。

        圖1 ArduinoUNO

        圖2 ArduinoIDE界面

        2.2軟件平臺(tái)

        ArduinoIDE界面見圖2所示。整個(gè)界面采用windows形式,簡潔明了。除了用戶熟悉的常用菜單命令如文件、編輯外,點(diǎn)擊窗口的右上方的SerialMonitor命令,可實(shí)現(xiàn)對(duì)串口通信數(shù)據(jù)的監(jiān)視。Arduino編程語言是改良式的C語言,把AVR單片機(jī)相關(guān)的一些參數(shù)設(shè)置都參數(shù)化了,開發(fā)者不了解其底層系統(tǒng)也可以容易地進(jìn)行項(xiàng)目開發(fā)。所有Arduino程序都是由setup()函數(shù)和loop()函數(shù)兩大區(qū)塊組成。Setup()函數(shù)主要進(jìn)行程序參數(shù)設(shè)置,里面的代碼從頭到尾只執(zhí)行一次;loop()函數(shù)是Arduino軟件項(xiàng)目的主體,系統(tǒng)上電后先運(yùn)行setup()函數(shù),然后就不斷循環(huán)運(yùn)行l(wèi)oop()函數(shù),執(zhí)行相關(guān)控制命令。Arduino軟件平臺(tái)自帶大量的軟件庫資源,模塊化程度高,程序開發(fā)效率高,可以快速完成互動(dòng)作品設(shè)計(jì)。

        3 基于Arduino的音樂播放器的設(shè)計(jì)

        3.1系統(tǒng)硬件設(shè)計(jì)

        本音樂播放器以ArduinoUNO板為控制核心,充分利用ArduinoIDE自帶Tone擴(kuò)展庫,以數(shù)組形式輸出各音符的指定頻率和節(jié)拍,送到無源蜂鳴器和彩色LED,實(shí)現(xiàn)了音樂播放和隨音樂節(jié)奏亮滅的LED效果。播放器的外部電路包括選曲鍵盤矩陣電路、蜂鳴器電路、LED顯示節(jié)奏電路,系統(tǒng)硬件電路圖見圖3所示。系統(tǒng)上電后,當(dāng)檢測到鍵盤矩陣的某個(gè)開關(guān)按下,對(duì)應(yīng)歌曲的音符數(shù)據(jù)(音高和節(jié)拍)通過數(shù)字端口發(fā)送到無源蜂鳴器,無源蜂鳴器受到特定頻率的方波驅(qū)動(dòng),可以發(fā)出“多來米發(fā)索拉西”的音樂效果。無源蜂鳴器的優(yōu)點(diǎn)是聲音頻率可控,可以和LED復(fù)用一個(gè)控制口。所以,各數(shù)字端口的數(shù)據(jù)加到LED上面時(shí),其節(jié)奏性的亮滅實(shí)現(xiàn)了節(jié)拍的顯示。

        圖3 系統(tǒng)硬件電路圖

        圖4 播放器程序流程圖

        3.2軟件設(shè)計(jì)

        從物理的角度來說,音樂是有規(guī)律出現(xiàn)的聲波振動(dòng),包含音高和節(jié)奏兩大主要因素。每一個(gè)音符唯一對(duì)應(yīng)一個(gè)發(fā)聲頻率。ArduinoIDE自帶的頭文件“pitches. h”中就以宏定義的形式給出了各個(gè)音符和頻率的對(duì)應(yīng)關(guān)系表,因此,使用者可以通過查表方式,得到每個(gè)音符的發(fā)聲頻率數(shù)據(jù),從而制作出數(shù)組形式的樂曲韻律函數(shù)。例如,需要得到鋼琴標(biāo)準(zhǔn)鍵盤小字一組C4(唱名為Do)按鍵對(duì)應(yīng)的頻率,可以使用“#defineNOTE_C4 262”語句,所產(chǎn)生音符的頻率是262Hz;而音符演奏的持續(xù)時(shí)間,決定了音樂進(jìn)行的快慢程度和節(jié)奏類型,是構(gòu)成旋律的另一個(gè)重要因素。本發(fā)聲器的設(shè)計(jì)根據(jù)樂譜給定的節(jié)拍速度先確定一個(gè)基本的延時(shí)單位,如果四分音符為一拍,每拍延時(shí)1/2s,則二分音符延時(shí)1秒,八分音符延時(shí)為1/4s,以此類推。最終,采用note-Durations[thisNote]數(shù)組來存放樂譜的節(jié)拍數(shù)據(jù)。這樣,音符數(shù)據(jù)按照節(jié)拍數(shù)據(jù)給定的時(shí)值來驅(qū)動(dòng)蜂鳴器,就實(shí)現(xiàn)了該首樂曲的播放。

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

        下面以《生日快樂歌》(簡譜見圖5)的第一小節(jié)為例,給出了音樂播放函數(shù)play()的實(shí)現(xiàn)過程。

        圖5 《生日快樂歌》簡譜

        //韻律函數(shù)

        intmelody[]={

        NOTE_G4,//5

        NOTE_G4,//5

        NOTE_A4,//6

        NOTE_G4,//5

        NOTE_C5,//1.

        NOTE_B4,//7

        0,

        ……};

        //節(jié)拍函數(shù)

        intnoteDurations[]={

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

        4,

        ……

        };

        //播放函數(shù)

        voidplay()

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

        intnoteDuration=1000/noteDurations[thisNote];

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

        intpauseBetweenNotes=noteDuration*1.30;

        delay(pauseBetweenNotes);

        noTone(8);

        }}

        4 結(jié)束語

        Arduino具有豐富的軟件和硬件資源,是開發(fā)人機(jī)互動(dòng)產(chǎn)品的良好平臺(tái),具有價(jià)格便宜、互動(dòng)多樣、易學(xué)易用等特點(diǎn),目前應(yīng)用比較廣泛。本論述以音樂播放器的設(shè)計(jì)為例展示了基于Arduino的電子產(chǎn)品設(shè)計(jì)的基本過程,使讀者初步掌握Arduino的功能和特點(diǎn)。Arduino就像一個(gè)萬花筒,期待進(jìn)一步加入人們智慧的魔法,變化出奇妙無比的新型電子設(shè)計(jì),為人們創(chuàng)造更美好的生活。

        [1]趙英杰.Arduino互動(dòng)設(shè)計(jì)入門[M].北京:科學(xué)出版社,2014.

        [2]MichaelMcRoberts.BeginArduino[M].楊繼志,郭敬,譯.北京:電子工業(yè)出版社,2013.

        [3]楊繼志,楊宇環(huán).基于Arduino的網(wǎng)絡(luò)互動(dòng)產(chǎn)品創(chuàng)新設(shè)計(jì)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2012,25(1):99-100.

        [4]楊繼志,郭敬.Arduino的互動(dòng)產(chǎn)品平臺(tái)創(chuàng)新設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(4).

        [5]蔡睿妍.Arduino的原理及應(yīng)用[J].電子工程設(shè)計(jì),2012(16):155-157.

        [6]趙云娥,陳學(xué)煌.基于AT89C51的電子節(jié)拍器設(shè)計(jì)[J].電子測量技術(shù),2008(3).

        TP368

        A

        2016-6-22

        趙云娥(1983-),女,漢族,山西呂梁人,碩士,講師,主要研究方向:電子信息工程技術(shù)。

        猜你喜歡
        蜂鳴器播放器音符
        電動(dòng)自行車產(chǎn)品車速提示音檢測現(xiàn)狀和整改技術(shù)研究(2)
        掌控板制作簡易鋼琴
        一串快樂的音符
        Walkman誕生40周年 索尼適時(shí)發(fā)布NW-ZX500和NW-A100系列播放器
        基于STM32的MP3播放器設(shè)計(jì)
        電子制作(2019年9期)2019-05-30 09:41:44
        春天的音符
        單片機(jī)驅(qū)動(dòng)蜂鳴器的程序設(shè)計(jì)
        Moon ACE播放器/放大器一體機(jī)
        豐田凱美瑞240V車間隙警告蜂鳴器異常鳴響
        音符(兩首)
        讀寫算(上)(2016年9期)2016-02-27 08:44:58
        国产欧美日韩中文久久| 午夜福利啪啪片| 日本巨大的奶头在线观看| 亚洲V无码一区二区三区四区观看 久久精品国产亚洲综合色 | 成人免费ā片在线观看| 偷拍区亚洲区一区二区| 国产一区二区丁香婷婷| 日韩精品久久午夜夜伦鲁鲁| 欧美精品国产综合久久| 亚洲色大成网站www永久一区| 99成人无码精品视频| 精品国产日韩亚洲一区在线| 国产精品久久久久一区二区三区 | 亚洲蜜桃视频在线观看| 亚洲久悠悠色悠在线播放| 国产一区二区内射最近更新 | 亚洲国产成人精品无码一区二区| 97欧美在线| 精品少妇白浆一二三区| 精品天堂色吊丝一区二区| av狠狠色丁香婷婷综合久久 | 免费一级黄色大片久久久| 久久国产精品免费一区二区三区 | 男女爽爽无遮挡午夜视频| 在线视频一区二区日韩国产| 亚洲国产大胸一区二区三区| 久久久久久久亚洲av无码| 亚洲av无码一区二区三区网站| a√无码在线观看| 亚洲av色图一区二区三区| 国产乱码精品一区二区三区四川人| 99ri国产在线观看| 伊人狼人激情综合影院| 国产综合色在线精品| 亚洲av永久无码精品秋霞电影影院 | 日本淫片一区二区三区| 亚洲乱码国产乱码精品精| 国产精品久久久久久久成人午夜 | 色婷婷久久综合中文蜜桃| 天堂中文最新版在线中文| 国产在线成人精品|