• 
    

    
    

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

      ?

      基于APP控制的空氣鼓棒的設(shè)計與實現(xiàn)

      2018-07-27 11:28:30尹忠鈺
      科技視界 2018年9期
      關(guān)鍵詞:鼓棒架子鼓

      尹忠鈺

      【摘 要】架子鼓是現(xiàn)代樂隊中一個重要的組成部分,但是架子鼓存在體積大、音量大等特點,攜帶不方便,訓(xùn)練噪音大。本文設(shè)計了一套基于APP控制的空氣鼓棒,只有兩個電子鼓棒,通過揮動鼓棒,手機(jī)上的APP發(fā)出相應(yīng)的擊鼓聲音,達(dá)到了攜帶方便,音量可控,訓(xùn)練不擾民等優(yōu)點,完美解決了傳統(tǒng)架子鼓存在的問題。

      【關(guān)鍵詞】架子鼓;鼓棒;STM32;APP

      中圖分類號: G623.71 文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2018)09-0063-002

      DOI:10.19694/j.cnki.issn2095-2457.2018.09.028

      Design and Implementation of Air Drums Based on APP Control

      YIN Zhong-yu

      (School of Electrical and Information Engineering, Southwest University for Nationalities, Chengdu 610041, China)

      【Abstract】Drums are an important part of the modern band, but the drums are bulky, loud, and so on. They are inconvenient to carry and have a lot of training noise. This article designed a set of air drum sticks based on APP control. There are only two electronic drum sticks. By waving the sticks, the app on the mobile phone can make a corresponding drum beat, which is convenient to carry, controllable volume, and training does not disturb people. Perfectly solves the problems of traditional drums.

      【Key words】Drums; Sticks; STM32; APP

      0 緒論

      架子鼓是現(xiàn)代樂隊中一個重要組成部分,但是對比與其他樂器,架子鼓的體積大質(zhì)量重,搬運非常困難,同時它難以控制的巨大音量常常在樂隊排練時蓋過其他樂器聲音,訓(xùn)練過程中還有擾民的危害。對比于這種情況,這款基于APP控制的空氣鼓棒只需要用兩個鼓棒,就可以模擬出真實架子鼓的聲音,無疑的方便了許多。該空氣鼓棒設(shè)計方法合理,成本低,使用與制作都很方便,對于架子鼓愛好者是一個大大的福音,有一定的推廣價值。

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

      圖1 系統(tǒng)總設(shè)計結(jié)構(gòu)圖

      本設(shè)計由兩個加速度傳感器、一個腳踏開關(guān),一個主控芯片和一款A(yù)PP組成。加速度傳感器和開關(guān)檢測到使用者的姿態(tài)后,傳輸給主控MPU,在主控芯片進(jìn)行處理后通過藍(lán)牙發(fā)送給安卓手機(jī),APP接收到數(shù)據(jù)后,根據(jù)接收到的數(shù)據(jù)發(fā)出特定音頻。

      1.1 硬件設(shè)計

      在本設(shè)計中,使用了一些外圍器件以及模塊電路,檢測模塊使用mpu6050,主控芯片選用STM32F407最小系統(tǒng)板,語音模塊使用版本為4.0以上的安卓手機(jī),通信使用藍(lán)牙芯片。Mpu6050模塊固定在鼓棒上便于檢測到使用者的揮動,通過電氣連接與主控stm32連接,stm32模塊除了必要的基礎(chǔ)電路以外,還搭建了一個藍(lán)牙模塊,用于與手機(jī)通信。

      1.2 軟件設(shè)計

      本項目的目標(biāo)是實現(xiàn)超級鼓棒可以發(fā)出真實擊鼓的聲音、易于攜帶和便于練習(xí)。不僅僅需要硬件的高度配合,軟件的輔助也很重要。所以本次采用的是與stm32系列單片機(jī)相對應(yīng)的高級語言和結(jié)構(gòu)化設(shè)計方法來對控制程序的編寫,使用Android studio為開發(fā)環(huán)境,JAVA為開發(fā)語音對APP進(jìn)行編寫。

      圖2 軟件總流程圖

      軟件設(shè)計分為兩塊,一為主控芯片stm32的控制程序,二為手機(jī)APP的通信發(fā)聲程序??刂瞥绦蛑校饕墙邮躆PU6050傳輸回來的姿態(tài)數(shù)據(jù),并進(jìn)行判定、通過藍(lán)牙模塊發(fā)送特定數(shù)據(jù)。APP程序主要是接受數(shù)據(jù)進(jìn)行判定,并發(fā)出聲音。本次APP設(shè)計為了實現(xiàn)架子鼓聲混音(同時發(fā)出多種鼓聲),所以APP的發(fā)聲程序采用多線程編程,并調(diào)用Sound pool音效池來實現(xiàn)。

      STM32的控制程序分為3個部分:對mpu6050數(shù)據(jù)處理、藍(lán)牙模塊的通信程序、對鼓棒揮動的判定。

      (1)mpu6050數(shù)據(jù)處理。

      此設(shè)計的數(shù)據(jù)處理調(diào)用了mpu6050自帶的數(shù)字運動處理器,即 DMP,并且,InvenSense提供了一個 MPU6050 的嵌入式運動驅(qū)動庫,結(jié)合 MPU6050 的 DMP,可以將我們的原始數(shù)據(jù),直接轉(zhuǎn)換成四元數(shù)輸出,而得到四元數(shù)之后,就可以很方便的計算出歐拉角,從而得到 yaw、roll 和 pitch。具體實施步驟為,主函數(shù)內(nèi)首先利用一個循環(huán)初始化mpu6050和IIC,結(jié)束后運行算法函數(shù),得到具體的歐拉角。

      (2)藍(lán)牙模塊的通信程序。

      藍(lán)牙模塊與STM32通過串口通信,所以直接使用串口函數(shù)即可通信。

      (3)對鼓棒揮動的判定。

      此部分函數(shù)的作用為準(zhǔn)確檢測鼓棒的揮動,且兩個鼓棒的檢測要分開,不能分別影響。鼓棒的一次揮動分為,鼓棒抬起,與鼓棒落下。因此可以設(shè)置狀態(tài)標(biāo)識變量,來對鼓棒揮動狀態(tài)進(jìn)行實時檢測,當(dāng)滿足到一次揮動抬起和一次揮動落下時,判定為鼓棒揮動了一次,即可運行通信函數(shù)。

      1.3 APP程序設(shè)計

      APP的開發(fā)環(huán)境為Android Studio,核心代碼主要分為3個部分:實現(xiàn)發(fā)聲功能的Sound Pool 音效池部分、實現(xiàn)通信功能的藍(lán)牙部分、界面代碼部分。

      1.3.1 Sound Pool 音效池部分

      Sound Pool一般用來播放的文件特點有:聲音短,文件小,延時慢(不像使用Media Player類播放音樂時,需要等待一段時間),因此常用來播放各種實時音效,如游戲音效。因此選用它是非常合適的。使用方法為(1)將鼓的音樂文件拷貝到工程下(2)新建一個Sound Pool實例;(3)使用load()方法,讓Sound Pool實例加載音效資源,該方法會返回一個整型的sound ID,在第四步需要用到;(4)使用play()方法播放音效,該方法會返回一個整型的stream ID,這個返回值可以保存起來,在需要暫停/恢復(fù)播放時需要用到。Sound pool具體使用方法可以參考谷歌官方文檔,這里不做過多結(jié)束。

      初始化音效池

      1.3.2 藍(lán)牙通信部分

      藍(lán)牙通信部分主要用到4種API,分別為Bluetooth Adapter、Bluetooth Socket、Bluetooth Server Socket、Bluetooth Device。此設(shè)計具體實現(xiàn)流程為(1)在主線程里設(shè)置一個按鈕,用來檢測藍(lán)牙是否開啟,若沒有便開啟藍(lán)牙。(2)設(shè)置另外一個按鈕用于開啟藍(lán)牙搜索功能并開啟廣播監(jiān)聽搜索結(jié)果。(3)藍(lán)牙搜索到指定設(shè)備后,開啟連接子線程,設(shè)立標(biāo)志位檢測連接是否成功。(4)連接成功后開啟通信子線程(5)子線程中接受藍(lán)牙傳輸過來的數(shù)據(jù),并通過handle方法發(fā)送回主線程(6)主線程進(jìn)行數(shù)據(jù)判定,播放指定聲音。

      開啟藍(lán)牙并獲取本機(jī)藍(lán)牙信息

      搜索設(shè)備和停止搜索

      adapter.startDiscovery();

      adapter.cancelDiscovery();

      配置監(jiān)聽廣播

      監(jiān)聽結(jié)果

      連接子線程核心代碼

      通信子線程核心代碼

      主線程發(fā)聲代碼

      1.3.3 界面代碼部分

      活動代碼包含3個按鍵,name分別為:“打開藍(lán)牙”、“連接鼓棒”、“關(guān)閉”。按照線性布局排列。

      2 結(jié)束語

      在組建好硬件并在手機(jī)上下載好軟件后,兩根超級鼓棒能發(fā)出傳統(tǒng)架子鼓的聲音,能夠用于平常練習(xí)和大部分歌曲的伴奏;播放設(shè)備能傳送多種鼓聲,達(dá)到混音效果。接口既可連接耳機(jī)也可連接音響。

      隨著科技的發(fā)展和社會的進(jìn)步,便攜式的裝備在日常生活中會越來越常見以及受歡迎。如何使樂器做到不占太大空間,方便攜帶,又能達(dá)到訓(xùn)練或演出的效果,并且訓(xùn)練時不擾民,這可能是未來樂器制作的方向。這次設(shè)計涉及的姿態(tài)檢測與APP開發(fā),在便攜式裝備的開發(fā)中有著很重要的地位。

      【參考文獻(xiàn)】

      [1]STMicroelectronics,STM32F103C6T6數(shù)據(jù)手冊,2007.

      [2]劉軍,張洋,嚴(yán)漢宇.例說STM32[M].北京,北京航天出版社,2014.

      [3]郭霖.第一行代碼Android(第二版)[M].人民郵電出版社,2016.

      猜你喜歡
      鼓棒架子鼓
      我的夢想
      我和架子鼓
      快樂語文(2021年31期)2022-01-18 05:51:20
      弟弟的“架子鼓演奏會”
      架子鼓的魔力
      愛你(2018年5期)2018-03-03 05:36:26
      輕松學(xué)鼓
      我學(xué)會了敲架子鼓
      掌上爵士樂
      中華手工(2013年8期)2013-04-29 00:37:18
      长子县| 将乐县| 南昌县| 隆尧县| 南部县| 哈尔滨市| 镇原县| 黑水县| 汕头市| 维西| 梨树县| 福海县| 招远市| 阿拉善左旗| 丽江市| 沁水县| 琼结县| 吉安市| 兴和县| 永吉县| 资源县| 裕民县| 锡林郭勒盟| 安溪县| 榆树市| 北川| 化州市| 高密市| 嘉祥县| 双鸭山市| 汉阴县| 黔西县| 体育| 玛沁县| 安新县| 孟州市| 平邑县| 松阳县| 密云县| 株洲县| 扎赉特旗|