www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件

摘 要: 以Android平臺(tái)為基礎(chǔ),設(shè)計(jì)了一種通過(guò)Android手機(jī)的麥克端采集數(shù)據(jù)信號(hào)的方案,不僅擴(kuò)展了數(shù)據(jù)采集的方法,同時(shí)也把Android平臺(tái)應(yīng)用到工程領(lǐng)域中。
關(guān)鍵詞: Android;嵌入式;麥克;數(shù)據(jù)采集;數(shù)據(jù)顯示

Android是一個(gè)開放、自由的移動(dòng)終端平臺(tái),其開放性保證了該平臺(tái)不存在任何阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙,一經(jīng)推出就深受業(yè)內(nèi)人士的認(rèn)可。隨著電子科技的發(fā)展,Android平臺(tái)不僅僅應(yīng)用于移動(dòng)互聯(lián)網(wǎng)上的開發(fā),在工程上的開發(fā)前景也得到了廣泛的關(guān)注[1]。
Android平臺(tái)使用Java語(yǔ)言進(jìn)行開發(fā),支持SQLite數(shù)據(jù)庫(kù)、2D/3D圖形加速、多媒體播放和攝像頭等硬件設(shè)備,并設(shè)置了豐富的應(yīng)用程序,如電子郵件客戶端、鬧鐘、Web瀏覽器、計(jì)數(shù)器、通信錄和MP3播放器等。Android采用了軟件堆層(Software Stack)的架構(gòu),共分為4層:第一層是Linux內(nèi)核,提供由操作系統(tǒng)內(nèi)核管理的底層基礎(chǔ)功能;第二層是中間件層,由函數(shù)庫(kù)和Android運(yùn)行時(shí)所需的虛擬機(jī)構(gòu)成;第三層是應(yīng)用程序框架層,提供了Android平臺(tái)基本的管理功能和組件重用機(jī)制;第四層是應(yīng)用程序?qū)?,提供了一系列核心?yīng)用程序[2]。數(shù)據(jù)信號(hào)的采集一般是通過(guò)USB、藍(lán)牙、WiFi等方法,而本文是通過(guò)Android手機(jī)的麥克端來(lái)采集數(shù)字信號(hào),從而實(shí)現(xiàn)了一種新型的數(shù)據(jù)采集的方法。
1 硬件系統(tǒng)設(shè)計(jì)
1.1 硬件結(jié)構(gòu)
Android手機(jī)的麥克端不能接收任意頻率的信號(hào),只能接收頻率在20 Hz~20 kHz范圍內(nèi)(即達(dá)到音頻信號(hào)的范圍)的信號(hào),因?yàn)橹挥幸纛l信號(hào)才能被人耳聽(tīng)到,才能被麥克采集到。本文采集的信號(hào)是一電壓信號(hào),而電壓信號(hào)不能直接被Android手機(jī)的麥克端接收。因此在硬件系統(tǒng)設(shè)計(jì)中,需要把電壓信號(hào)轉(zhuǎn)換成頻率范圍在20 Hz~20 kHz之間的頻率信號(hào),即達(dá)到音頻信號(hào)的標(biāo)準(zhǔn)。電壓信號(hào)轉(zhuǎn)換成頻率信號(hào)的方法有很多,本文采用V/F轉(zhuǎn)換器LM331實(shí)現(xiàn)把電壓信號(hào)轉(zhuǎn)換成頻率在20 Hz~20 kHz范圍內(nèi)的音頻信號(hào),其硬件框圖如圖1所示。

經(jīng)調(diào)整電路后的頻率信號(hào)就是標(biāo)準(zhǔn)的音頻信號(hào)了,但信號(hào)并不能直接連接到送話器讓Android手機(jī)的麥克端接收,因?yàn)椴荒鼙WC周圍絕對(duì)安靜, 誤差會(huì)很大,而是要把音頻信號(hào)與耳機(jī)中的送話器線相連,再把耳機(jī)與Android手機(jī)相連,這樣就可以大大減少失真的程度。
1.2 V/F轉(zhuǎn)換器LM331模塊
LM331是美國(guó)NS公司生產(chǎn)的性價(jià)比較高的集成芯片,它是當(dāng)前最簡(jiǎn)單的一種高精度V/F轉(zhuǎn)換器,將電壓信號(hào)轉(zhuǎn)換成脈沖頻率信號(hào),輸出頻率嚴(yán)格正比于輸入電壓。LM331為雙列直插式8引腳芯片,線性度好,最大非線性失真小于0.01%,工作頻率為0.1 Hz時(shí)仍有較好的線性;變換精度高,分辨率可達(dá)16位;外接電路簡(jiǎn)單,只需接入幾個(gè)外部元件就可方便地構(gòu)成V/F轉(zhuǎn)換器,并且容易保持轉(zhuǎn)換精度。LM331在4.0 V的電壓供電的情況下,就可在整個(gè)工作溫度范圍內(nèi)高精度地工作[3]。V/F轉(zhuǎn)換電路如圖2所示。

2 音頻格式
音頻的格式有很多種,但在Android的API中與音頻有關(guān)的包是android.media,其中有兩個(gè)類是與音頻采集有關(guān)的,分別是MediaRecorder和AudioRecord。用Media-Recorder采集的音頻信號(hào)經(jīng)過(guò)壓縮編碼后變成的聲音數(shù)據(jù)為AMR格式。但因?yàn)閿?shù)據(jù)是被壓縮的,所以在讀取數(shù)據(jù)時(shí),要面臨解壓縮的問(wèn)題。而用AudioRecord采集音頻可以直接獲得無(wú)壓縮的PCM數(shù)據(jù),即可以直接讀取音頻數(shù)據(jù),數(shù)據(jù)不再需要解壓縮。基于AudioRecord的方便性與實(shí)用性,本文采用AudioRecord來(lái)采集音頻信號(hào)。
脈沖編碼調(diào)制PCM(Pulse Code Modulation)是將音頻數(shù)字化的最好途徑,聲音經(jīng)過(guò)麥克風(fēng),轉(zhuǎn)換成一系列電壓變化的信號(hào)。要將這樣的信號(hào)轉(zhuǎn)換成PCM格式,要使用聲道數(shù)、采樣位數(shù)和采樣頻率3個(gè)參數(shù)來(lái)表示聲音:(1)聲道數(shù)可分為單聲道和立體聲,單聲道即用一個(gè)傳聲器拾取聲音,用一個(gè)揚(yáng)聲器來(lái)播放聲音;而立體聲則是由兩個(gè)傳聲器輪流拾取聲音,用兩個(gè)揚(yáng)聲器來(lái)播放聲音。(2)采樣位數(shù)即采樣值,它是用來(lái)衡量聲音動(dòng)態(tài)波動(dòng)變化的一個(gè)參數(shù),其值越大,分辨率就越高,在Android提供的API中,所提供的分辨率有8 bit和16 bit兩種。(3)采樣頻率(即取樣頻率)指的是每秒鐘采得聲音樣本的次數(shù),采樣頻率越高,聲音的質(zhì)量也就越好,聲音的還原越真實(shí),同時(shí)它占用的資源也比較多。通常選用的采樣頻率一般有11 025 Hz、22 050 Hz和44 100 Hz。11 025 Hz、8 bit的聲音稱為電話音質(zhì);22 050 Hz、16 bit的聲音稱為廣播音質(zhì);44 100 Hz、16 bit已達(dá)到CD的音質(zhì)了[4]。
3 Android平臺(tái)下的軟件系統(tǒng)設(shè)計(jì)
首先是建立Android工程(即MediaPCM),其中包括主界面MainActivity,在主界面上有MediaFile和Recorder兩個(gè)圖標(biāo),分別代表音頻文件列表和音頻信號(hào)采集,如圖3所示。

點(diǎn)擊右邊的Recorder,就會(huì)進(jìn)入到音頻采集界面(即Record-Activity),實(shí)現(xiàn)采集和播放音頻的功能,同時(shí)要把采集到的音頻打包成文件存放到SD卡指定的目錄下;點(diǎn)擊左邊MediaFile,就會(huì)進(jìn)入到音頻文件顯示列表界面(即ListActivity),點(diǎn)擊其中某一項(xiàng)文件,就會(huì)進(jìn)入波形顯示界面(即WaveFormActivity),就會(huì)把音頻文件以二進(jìn)制數(shù)據(jù)的形式顯示在Android手機(jī)的界面上。軟件系統(tǒng)的整體框架流程圖如圖4所示。

3.1 清單(AndroidManifest)文件
在每一個(gè)Android項(xiàng)目中,都包含了一個(gè)清單(AndroidManifest)文件,即AndroidManifest.xml,它存儲(chǔ)在項(xiàng)目層次中的最底層,用于在程序運(yùn)行之前向Android系統(tǒng)聲明程序的相關(guān)信息,這些信息包括應(yīng)用程序需要的許可、程序運(yùn)行的最低SDK版本、程序運(yùn)行所需要的硬件支持和函數(shù)庫(kù)等。由于本文要用到SD卡的操作和采集音頻信號(hào)(即錄音)的操作,所以要在AndroidManifest.xml文件中加入以下兩個(gè)權(quán)限:"android.permission.WRITE_EXTERNAL_STORAGE"和"android.permission.RECORD_AUDIO",這樣就可以訪問(wèn)SD卡和進(jìn)行采集音頻信號(hào)了。
3.2 音頻的采集與播放
因?yàn)橐纛l的采集需要使用AudioRecord類,與之對(duì)應(yīng)的音頻的播放需要用到AudioTrack類;要把聲音轉(zhuǎn)化成PCM格式,需要使用采樣頻率、聲道數(shù)和采樣位數(shù)這三個(gè)參數(shù)。因此在編寫程序時(shí),要對(duì)這三個(gè)參數(shù)進(jìn)行初始化,即在本文中表示為frequence、channelConfig和audioEncoding。本文采用的是采樣頻率為44 100 Hz、單聲道16位進(jìn)行采樣。點(diǎn)擊開始按鈕(startButton)時(shí),就會(huì)開始錄音(即采集音頻信號(hào))。其核心代碼如下:
int bufferSize = AudioRecord.getMinBufferSize(frequence,
channelConfig, audioEncoding);
int resource = MediaRecorder.AudioSource.MIC;
AudioRecord record = new AudioRecord(resource, frequence,
channelConfig, audioEncoding, bufferSize);
record.startRecording();
其中,bufferSize是根據(jù)采樣頻率、聲道和采樣位數(shù)三個(gè)參數(shù)得到一個(gè)最小的緩沖區(qū),并且MediaRecorder.AudioSou-rce.MIC聲明了音頻信號(hào)的來(lái)源是Android手機(jī)的麥克端。這樣當(dāng)調(diào)用record的startRecording()方法時(shí)就開始錄音(即音頻采集);當(dāng)點(diǎn)擊停止按鈕(stopButton)時(shí)就會(huì)停止采集;點(diǎn)擊播放按鈕(playButton)時(shí),就開始播放已經(jīng)錄制的音頻;點(diǎn)擊結(jié)束按鈕(finishButton)就結(jié)束播放音頻。至于播放音頻這一項(xiàng),對(duì)數(shù)據(jù)的采集并沒(méi)有太大的影響。為了完善界面,在沒(méi)有硬件電路的情況下,只用一個(gè)Android手機(jī)也能完成錄音播放的功能。錄音界面如圖5所示。
3.3 打包音頻文件
只采集音頻信號(hào)是遠(yuǎn)遠(yuǎn)不夠的,還要把采集到的音頻信號(hào)打包成文件存放到SD卡指定的目錄中,并把采集到的音頻信號(hào)顯示在音頻文件顯示界面上,在SD卡中的位置如圖6所示。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

構(gòu)建了機(jī)載電源特性測(cè)試系統(tǒng) , 包括硬件平臺(tái)和軟件平臺(tái):硬件平臺(tái)用于產(chǎn)生電源特性測(cè)試所需激勵(lì)信號(hào) , 軟件 平臺(tái)實(shí)現(xiàn)電源特性測(cè)試架構(gòu)的 自動(dòng)切換和電源特性的數(shù)據(jù)采集;硬件平臺(tái)由APS15000線性功放 、LVA2500線...

關(guān)鍵字: 電源特性測(cè)試 測(cè)試切換 數(shù)據(jù)采集 自動(dòng)控制

北京亦莊啟動(dòng)具身智能社會(huì)實(shí)驗(yàn)計(jì)劃 北京2025年8月9日 /美通社/ -- 2025世界機(jī)器人大會(huì)正在北京經(jīng)濟(jì)技術(shù)開發(fā)區(qū)(簡(jiǎn)稱北京經(jīng)開區(qū),也稱北京亦莊)舉行。在8月9日的2025世界機(jī)器人大會(huì)"產(chǎn)業(yè)發(fā)展&qu...

關(guān)鍵字: 智能機(jī)器人 數(shù)據(jù)采集 軟硬件 零部件

北京亦莊發(fā)布"具身智能機(jī)器人十條" 北京2025年8月9日 /美通社/ -- 8月9日,在2025世界機(jī)器人大會(huì)"產(chǎn)業(yè)發(fā)展"主論壇上,北京經(jīng)濟(jì)技術(shù)開發(fā)區(qū)發(fā)布具身智能社會(huì)實(shí)驗(yàn)計(jì)劃,...

關(guān)鍵字: 智能機(jī)器人 數(shù)據(jù)采集 供應(yīng)鏈 零部件

其他電腦(比如安卓手機(jī)/平板電腦)的屏幕壞了,你可能想在安排維修之前緊急訪問(wèn)一些東西。你可以使用android的USB OTG功能(是的,幾乎每個(gè)android都支持這個(gè)功能,你可以將鼠標(biāo)和鍵盤連接到它)。

關(guān)鍵字: USB 鼠標(biāo) Android 樹莓派

在電動(dòng)汽車中,電池組的性能與安全性直接關(guān)系到車輛的運(yùn)行狀況和駕乘人員的生命安全。數(shù)據(jù)采集卡在此發(fā)揮著持續(xù)記錄電池組電流、電壓、溫度等關(guān)鍵參數(shù)的作用。以特斯拉電動(dòng)汽車為例,其電池管理系統(tǒng)中運(yùn)用了高精度的數(shù)據(jù)采集卡,能夠以毫...

關(guān)鍵字: 電池組 管理系統(tǒng) 數(shù)據(jù)采集

在多路遙測(cè)系統(tǒng)中,TLV2548 作為一款常用的 12 位串行模數(shù)轉(zhuǎn)換器,因其具備多通道、高速、低功耗等特性,被廣泛應(yīng)用于各類數(shù)據(jù)采集場(chǎng)景。然而,在實(shí)際應(yīng)用過(guò)程中,TLV2548 多路遙測(cè)常受到多種干擾問(wèn)題的困擾,這些干...

關(guān)鍵字: TLV2548 遙測(cè) 數(shù)據(jù)采集

數(shù)字時(shí)代改變了解決問(wèn)題的范式,將智能引入邊緣可以應(yīng)對(duì)全新的復(fù)雜挑戰(zhàn)。數(shù)據(jù)采集(DAQ)系統(tǒng)成為了邊緣智能的核心。在數(shù)據(jù)采集領(lǐng)域,準(zhǔn)確度和可靠性至關(guān)重要。為確保達(dá)到高準(zhǔn)確度和完整性,隔離式精密信號(hào)鏈的重要性不容忽視。

關(guān)鍵字: 信號(hào)鏈 邊緣智能 數(shù)據(jù)采集

Google 宣布與中國(guó) AR 科技公司 XREAL 達(dá)成深度戰(zhàn)略合作,聯(lián)合推出全球首款專為 Android XR 平臺(tái)打造的旗艦級(jí) AR 眼鏡 Project Aura。

關(guān)鍵字: Google XREAL Android XR眼鏡 AR

對(duì)于初次嘗試評(píng)估慣性檢測(cè)解決方案的人來(lái)說(shuō),現(xiàn)有的計(jì)算和I/O資源可能會(huì)限制數(shù)據(jù)速率和同步功能,進(jìn)而難以在現(xiàn)場(chǎng)合適地評(píng)估傳感器能力。常見(jiàn)的挑戰(zhàn)包括如何以MEMS IMU所需的數(shù)據(jù)速率進(jìn)行時(shí)間同步的數(shù)據(jù)采集,從而充分發(fā)揮其性...

關(guān)鍵字: MEMS 傳感器 數(shù)據(jù)采集
關(guān)閉