国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于藍(lán)牙技術(shù)的運動檢測系統(tǒng)設(shè)計

2017-06-23 08:14曹蓬潘盛輝
物聯(lián)網(wǎng)技術(shù) 2017年6期
關(guān)鍵詞:傳感器技術(shù)

曹蓬+潘盛輝

摘 要:為對移動物體進(jìn)行近距離檢測,縮小傳感器的體積和增加安裝便捷性,文中設(shè)計了一款基于藍(lán)牙技術(shù)的姿態(tài)檢測傳感器。該系統(tǒng)利用三軸加速度傳感器、三軸陀螺儀和磁力計完成對運動物體速度、運動方向的檢測,然后將得到的數(shù)據(jù)通過藍(lán)牙通信技術(shù)傳輸至手機(jī)App,并保存至手機(jī)存儲卡中。實驗結(jié)果表明,本系統(tǒng)的定位精度可達(dá)5 m,速度檢測誤差低。

關(guān)鍵詞:藍(lán)牙技術(shù);安卓平臺;傳感器技術(shù);慣性測量單元

中圖分類號:TP212.9 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2017)06-00-05

0 引 言

隨著傳感器技術(shù)的發(fā)展,現(xiàn)代工業(yè)控制變得更加精準(zhǔn),更多實時檢測處理傳感器得到了廣泛應(yīng)用[1]。在車載應(yīng)用中,傳統(tǒng)的傳感器測控網(wǎng)絡(luò)為有線式監(jiān)控網(wǎng)絡(luò),使用屏蔽線或?qū)Ь€進(jìn)行信號傳輸[2]。在汽車控制系統(tǒng)上集成了許多不同的傳感器裝置,用以測量汽車是否正常工作[3]??赏ㄟ^查看汽車各傳感器的參數(shù)值進(jìn)行故障診斷等操作,而對車身整體的運動檢測傳感器目前研究尚淺[4]。因此,文中提出一款基于藍(lán)牙無線技術(shù)的汽車車載運動狀態(tài)檢測裝置,該裝置是基于TCP /IP協(xié)議的網(wǎng)絡(luò)化智能傳感器。相比普通的基于現(xiàn)場總線的傳感器,該傳感器不僅體積小,安裝便捷性也得以提升[5]。本傳感器適合安裝于車輛內(nèi)部各個位置,通過藍(lán)牙無線信號傳輸將本系統(tǒng)與汽車控制系統(tǒng)及其他檢測系統(tǒng)區(qū)分開來,以降低信號冗余度,減少信號擁堵。因此本系統(tǒng)可稱為獨立的運動檢測裝置[6]。

在許多應(yīng)用場合,不依靠外界而從自身內(nèi)部獲取自身運動狀態(tài)信息十分重要,慣性測量單元就扮演了這一角色。慣性測量單元(Inertial Measurement Unit,IMU)由微型陀螺儀、微型加速度計、專用集成電路(ASIC)、嵌入式微機(jī)及相應(yīng)的軟件組成,內(nèi)部采用I2C總線接口,可以測出載體的角速度、加速度等信息,屬于微電子機(jī)械系統(tǒng)的一種[5]。微電子機(jī)械系統(tǒng)(Micro-Electro-Mechanical Systems,MEMS)采用較低的成本把具有特定功能的復(fù)雜系統(tǒng)置于一個小小的硅片上,并將各種微型探測傳感器及微型機(jī)械裝置與微電子元件集為一體,使得系統(tǒng)的集成化程度更高,傳感器的體積更小。

1 系統(tǒng)功能分析

為分析藍(lán)牙無線姿態(tài)檢測傳感器,可根據(jù)數(shù)據(jù)的傳輸過程將系統(tǒng)分為3個部分:

(1)傳感器數(shù)據(jù)獲取模塊。利用動態(tài)卡爾曼濾波等算法,對原始傳感器進(jìn)行采集濾波整合處理;

(2)傳感器數(shù)據(jù)無線發(fā)送模塊。掌握并運用藍(lán)牙發(fā)送模塊的參數(shù)及配置;

(3)數(shù)據(jù)顯示及保存模塊。使用手機(jī)App進(jìn)行數(shù)據(jù)接收及保存。

2 總體設(shè)計

本系統(tǒng)包含軟件和硬件設(shè)計,硬件電路使用STM32系列的ARM芯片,使用I2C總線通信方式與加速度計陀螺儀通信,并使用串口與藍(lán)牙芯片HC05通信,藍(lán)牙模塊發(fā)送數(shù)據(jù)至安卓手機(jī)端。軟件編程使用Keil,IAR,Eciplse軟件對模塊編程。使用Keil軟件完成對傳感器數(shù)據(jù)信息的采集和數(shù)據(jù)打包處理;使用IAR完成對藍(lán)牙模塊的配置操作處理,設(shè)置藍(lán)牙的發(fā)送模式,波特率等參數(shù);使用Ecilpse完成手機(jī)端App的編程,使用手機(jī)自帶的藍(lán)牙通信接口獲取數(shù)據(jù),后將數(shù)據(jù)解析拆包,將得到的數(shù)據(jù)顯示到手機(jī)屏幕并保存。系統(tǒng)總體模塊框圖如圖1所示。

3 系統(tǒng)硬件設(shè)計框圖

3.1 IMU慣性測量單元

IMU的主控制芯片選用STM32F103T8,ARM 32-bit Cortex-M3內(nèi)核,它擁有64 KB的閃存存儲器和20 KB的運行內(nèi)存及7通道的DMA,7個定時器。通過8 MHz晶體和STM32內(nèi)部的PLL,控制器可以運行在72 MHz主頻上,由于姿態(tài)解算需要耗費大量內(nèi)存進(jìn)行數(shù)學(xué)運算,因此采用具有更快處理速度的芯片做更多解算優(yōu)化[6]。IMU慣性測量單元硬件組成框圖如圖2所示。

IMU上的傳感器通過I2C接口與STM32連接,同時傳感器的數(shù)據(jù)中斷引腳與STM32的IO相連,使得傳感器在完成ADC轉(zhuǎn)換后,STM32可在第一時間讀取最新、最快的數(shù)據(jù),快速響應(yīng)姿態(tài)變化,獲取各傳感器的狀態(tài)和轉(zhuǎn)換結(jié)果。其中,MPU6050為整合型6軸處理運動組件,包含三軸陀螺儀和三軸加速度器,可準(zhǔn)確追蹤快速與慢速動作[7]。HMC5883采用霍尼韋爾地磁傳感器,具有對正交軸的低靈敏度固相結(jié)構(gòu),可用來測量地球磁場的方向和大小。BMP180是一款高精度、超低能耗的壓力傳感器,測量大氣壓力后可換算為海拔高度。

3.2 Bluetooth模塊

傳感器使用的SPP-C藍(lán)牙模塊是遵循V2.1+EDR藍(lán)牙規(guī)范的智能無線數(shù)據(jù)模塊。除P12,P5為特殊I/O口外,其他P口均為可編程輸入/輸出接口,其串口UART-TX與UART-RX均采用CMOS接口。該模塊主要用于短距離的數(shù)據(jù)無線傳輸領(lǐng)域[8]??梢苑奖愕呐cPC機(jī)的藍(lán)牙設(shè)備相連,數(shù)據(jù)也可以在兩個模塊之間互通。藍(lán)牙模塊的硬件框圖如圖3所示。

4 傳感器軟件設(shè)計

4.1 IMU傳感器數(shù)據(jù)采集

IMU數(shù)據(jù)采集流程包括數(shù)據(jù)采集處理芯片STM32和三個傳感器的初始化,即首先對STM32芯片系統(tǒng)上電初始化,完成I2C接口初始化和串口初始化,然后對三個傳感器的配置初始化,如圖4所示。

4.1.1 對MPU6050初始化

MPU6050初始化如圖5所示,軟件配置流程如下:

(1)由電源管理寄存器1(0X6B)控制復(fù)位MPU6050;

(2)由陀螺儀配置寄存器(0X1B)和加速度傳感器配置寄存器(0X1C)設(shè)置角速度傳感器和加速度傳感器的滿量程范圍;

(3)由中斷使能寄存器(0X38)配置中斷;

(4)由用戶控制寄存器(0X6A)設(shè)置AUX I2C接口;

(5)由FIFO使能寄存器(0X23)設(shè)置FIFO;

(6)由采樣率分頻寄存器(0X19)配置陀螺儀采樣率;

(7)由配置寄存器(0X1A)設(shè)置數(shù)字低通濾波器;

(8)由電源管理寄存器1(0X6B)設(shè)置系統(tǒng)時鐘。一般選擇x軸陀螺PLL作為時鐘源,以獲得更高精度的時鐘;

(9)由電源管理寄存器2(0X6C)使能角速度傳感器(陀螺儀)和加速度傳感器。

4.1.2 對HMC5883初始化

HMC5883初始化程序如圖6所示。在軟件中設(shè)置HMC5883的工作模式0,為連續(xù)測量模式。在連續(xù)測量模式下,裝置不斷測量,并將數(shù)據(jù)更新至數(shù)據(jù)寄存器。由配置寄存器A設(shè)置測量輸出過程中的采樣平均數(shù)為8個周期,75 Hz的輸出速率。然后使用HMC5883L傳感器內(nèi)部產(chǎn)生的標(biāo)準(zhǔn)磁場進(jìn)行初步標(biāo)定,最后讀取校正后磁力計ADC的值。

4.1.3 對BMP180初始化

BMP180的初始化如圖7所示,需要在軟件中進(jìn)行配置:

(1)發(fā)出壓力(或溫度)轉(zhuǎn)換命令;

(2)一段時間后從UP(UT)寄存器讀取原始數(shù)據(jù);

(3)若要得到攝氏溫度和hPa 壓力則需要用到校正數(shù)據(jù),這些數(shù)據(jù)放在BMP085的E2PROM中,通過I2C可以在初始化時讀出。

4.2 藍(lán)牙無線模塊配置

藍(lán)牙HC05是主從一體的藍(lán)牙串口模塊,可以使其工作在主或從機(jī)狀態(tài)。當(dāng)藍(lán)牙設(shè)備配對連接成功后,無需考慮藍(lán)牙內(nèi)部的通信協(xié)議,直接將藍(lán)牙作為串口使用。連接建立后,兩設(shè)備共同使用一通道,一個設(shè)備發(fā)送數(shù)據(jù)到通道中,另一個設(shè)備可以接收通道中的數(shù)據(jù)。為建立這種通道連接,需要將藍(lán)牙設(shè)置為能進(jìn)行配對連接的AT模式。使用藍(lán)牙模塊的AT指令對其進(jìn)行配置,將模塊設(shè)置為從機(jī)模式,依次輸入指令:

AT+NAME=Bluetooth-Slave //藍(lán)牙名稱為Bluetooth-Slave

AT+ROLE=0 // 藍(lán)牙模式為從模式

AT+CMODE=0 // 藍(lán)牙連接模式為任意地址連接模式

AT+PSWD=1234 // 藍(lán)牙配對密碼為1234

AT+UART=9600,0,0 // 藍(lán)牙通信串口波特率為9 600,停止位1位,無校驗位

AT+RMAAD // 清空配對列表

5 手機(jī)安卓端軟件

5.1 系統(tǒng)總體設(shè)計

為完成手機(jī)端App的軟件開發(fā),首先建立其用例圖,描述用戶使用本App實現(xiàn)的目的。首先用戶打開App圖標(biāo)進(jìn)入軟件,完成藍(lán)牙設(shè)備的匹配連接,然后根據(jù)用戶的需要選擇用戶希望獲取的數(shù)據(jù)信息,最后用戶保存需要的數(shù)據(jù)信息。

根據(jù)實現(xiàn)的功能按照實現(xiàn)類方法進(jìn)行劃分。其中涉及藍(lán)牙通信服務(wù),用戶與手機(jī)圖形界面交互中的事件監(jiān)聽處理機(jī)制,及數(shù)據(jù)的實時動態(tài)刷新顯示。在設(shè)計軟件時設(shè)計了用例圖和部署圖,具體如圖8和圖9所示。

5.2 App實現(xiàn)框架

在AndriodMenifest.xml文件列出了應(yīng)用程序提供的功能,凡需要用到的組件都要在此進(jìn)行配置及注冊,包括Activity、Intent、Service及 ContentProvider。當(dāng)使用到系統(tǒng)中內(nèi)置的應(yīng)用(如電話服務(wù)、互聯(lián)網(wǎng)服務(wù)、短信服務(wù)、GPS服務(wù)等)時還需在此文件中聲明使用權(quán)限,該文件也是所有Android應(yīng)用程序都需要的文件,描述了程序包的全局變量,包括公開的應(yīng)用程序組件和每個組件的實現(xiàn)類,及可以操作的數(shù)據(jù)資源,運行空間等。

軟件中的Activity是Android的核心類,其作用相當(dāng)于c中的主函數(shù)。該類的全名是android.app.Activity。Activity相當(dāng)于C/S程序中的窗體(Form)或Web程序的頁面。每一個Activity提供了一個可視化區(qū)域。在這個區(qū)域中可以放置各種Android控件,如按鈕、圖像、文本框等。

其軟件框架如圖10所示,由AndroidMenifest.xml文件配置軟件安卓運行版本條件,并先執(zhí)行DeviceListActivity.java獲取設(shè)備列表,使用Intent調(diào)用DataMonitor.java程序。DeviceListActivity繼承了Activity類,DataMonitor繼承了FragmentActivity類。兩者在執(zhí)行時都調(diào)用BluetoothService.Java函數(shù)以完成藍(lán)牙通信。DeviceListActivity.java和DataMonitor.java都由可視化組件View及其子類組成,這些組件按照XML布局文件在指定位置的窗口上擺放。

5.3 數(shù)據(jù)處理及顯示

DataMonitor是一個繼承了FragmentActivity的類,F(xiàn)ragmentActivity 繼承自Activity,它提供了操作Fragment的方法,因此可在Activity中嵌入Fragment來實現(xiàn)需要的布局效果。在DataMonitor中首先實現(xiàn)的是oncreate方法,該方法在DataMonitor初始化時調(diào)用藍(lán)牙連接,通過setContentView方法將View放到Activity上。綁定后,Activity會顯示View上的控件。其余的是繼承父類的onStart(),onResume(),onPause(),onStop()和onDestroy()方法,未對其修改,完成Activity生命周期的重載基本方法。

在確保藍(lán)牙已經(jīng)連接的情況下使用handler接口完成Activity的Widget與應(yīng)用程序中線程的交互。重寫handler類中的handleMessage方法,通過該方法接收信息。接收的信息表示當(dāng)前時刻接收消息的狀態(tài),分別為MESSAGE_STATE_CHANGE,MESSAGE_READ,MESSAGE_DEVICE_NAME,MESSAGE_TOAST。第一種狀態(tài)表示藍(lán)牙處于連接狀態(tài);第二種狀態(tài)表示數(shù)據(jù)讀取狀態(tài);第三種狀態(tài)為設(shè)備名稱讀入狀態(tài);第四種狀態(tài)為數(shù)據(jù)顯示狀態(tài),可將數(shù)據(jù)顯示在手機(jī)屏幕上。通過OnclickConfig(View v),ControlClick(View v)完成界面顯示及跳轉(zhuǎn)功能,在ControlClick中可以選擇顯示的內(nèi)容,并根據(jù)按下的按鍵選擇對應(yīng)的輸出數(shù)據(jù)。onRecordBtnClick(View v)方法是當(dāng)用戶按下“記錄”鍵時將數(shù)據(jù)保存到SD卡中,當(dāng)用戶按下“停止”按鈕時停止記錄數(shù)據(jù)信息。DataMonitor內(nèi)部成員及方法函數(shù)如圖11所示。

5.4 藍(lán)牙傳輸BluetoothService

對藍(lán)牙進(jìn)行開發(fā),首先在AndroidManifest.xml文件中加入管理員權(quán)限和藍(lán)牙開發(fā)權(quán)限,開啟藍(lán)牙后,用isEnabled()查詢當(dāng)前藍(lán)牙設(shè)備的狀態(tài),若返回為false,則表示藍(lán)牙設(shè)備沒有開啟,需要封裝一個ACTION_REQUEST_ENABLE請求到intent,調(diào)用startActivityForResult()方法使能藍(lán)牙設(shè)備。使用BluetoothAdapter類的方法可以查找遠(yuǎn)端設(shè)備,使用mArrayAdapter.Add方法顯示可以配對的藍(lán)牙設(shè)備集,以便選取一個設(shè)備進(jìn)行通信。

掃描設(shè)備只需調(diào)用startDiscovery()方法,應(yīng)用程序為了ACTION_FOUND動作需要注冊一個BroadcastReceiver來接收設(shè)備掃描到的信息。使能自身設(shè)備,將ACTION_REQUEST_DISCOVERABLE動作封裝在intent中并調(diào)用startActivityForResult(Intent, int)方法。

建立兩個藍(lán)牙設(shè)備之間的連接,完成客戶端和服務(wù)器端的代碼。一個開啟服務(wù)來監(jiān)聽,一個發(fā)起連接請求(使用服務(wù)器端設(shè)備的MAC地址)。當(dāng)他們都擁有一個藍(lán)牙套接字在同一RFECOMM信道上時,可認(rèn)為他們之間已經(jīng)連接上了。getInptuStream()獲取輸入流,getOutputStream()獲取輸出流,進(jìn)行數(shù)據(jù)傳輸。藍(lán)牙連接示意圖如圖12所示。

6 傳感器數(shù)據(jù)測試

打開藍(lán)牙傳感器,開啟啟動開關(guān)后,指示燈不停閃爍,則表明設(shè)備運轉(zhuǎn)正常。手機(jī)首先開啟藍(lán)牙功能,然后打開App界面,進(jìn)入界面后點擊搜索設(shè)備,可選擇HC-02。選擇該設(shè)備后,會有一個配對過程,輸入配對碼0000,即可完成兩者的配對。顯示的數(shù)據(jù)可選擇加速度,角速度,角度等并點擊記錄按鈕,數(shù)據(jù)將會保存;點擊停止按鈕,則會有提示信息、數(shù)據(jù)保存的文件及路徑。傳感器實物及手機(jī)App端如圖13所示。

手機(jī)內(nèi)部有集成慣性傳感器,可對手機(jī)的姿態(tài)進(jìn)行實時監(jiān)測,其中重力感應(yīng)裝置會根據(jù)手機(jī)的狀態(tài)自動旋轉(zhuǎn)屏幕。手機(jī)中的記步工具利用手機(jī)內(nèi)部的慣性傳感器進(jìn)行記步。我們打開手機(jī)記步工具,同時開啟無線藍(lán)牙傳感器進(jìn)行姿態(tài)檢測。將得到的數(shù)據(jù)txt文件導(dǎo)入電腦,并分析z軸加速度曲線。根據(jù)曲線的波峰個數(shù)來判定步數(shù),然后再將其與手機(jī)記步工具進(jìn)行對比[3]。加速度曲線如圖14所示。

當(dāng)我們行走50步時,得到傳感器數(shù)據(jù)記錄值。取其中的z軸記錄值進(jìn)行分析,通過Matlab將z軸數(shù)據(jù)繪制成圖14所示的曲線。得到加速度幅值大于1.2的波峰個數(shù),計算為49個,誤差僅為2%。然后在記步工具顯示的數(shù)據(jù)為953-905=48步。可以看出記步工具得出的數(shù)據(jù)沒有本系統(tǒng)精確。

7 結(jié) 語

本文中,我們提出了一種基于藍(lán)牙和慣性測量單元的無線位姿傳感器檢測系統(tǒng),針對傳感器的硬件和軟件進(jìn)行設(shè)計。使用整合型6軸處理運動組件MPU6050、BMP180、HMC5883和STM32組成IMU(慣性測量單元),將數(shù)據(jù)通過藍(lán)牙發(fā)送至手機(jī)端,然后顯示,并將數(shù)據(jù)保存在手機(jī)端。文中設(shè)計的系統(tǒng)具有較好的實時性,且精度滿足一般運動物體的檢測要求。

參考文獻(xiàn)

[1]賈利亞.安卓平臺下跌倒檢測技術(shù)的研究與實現(xiàn)[D].南昌:南昌航空大學(xué),2015.

[2]林英祿.運動數(shù)據(jù)的實時監(jiān)測與健康評價模型的研究[D].上海:華東師范大學(xué),2015.

[3]吳忠澤.基于智能移動終端的人體運動狀態(tài)監(jiān)測系統(tǒng)的設(shè)計與實現(xiàn)[D].廣州:華南理工大學(xué),2013.

[4]林英祿.運動數(shù)據(jù)的實時監(jiān)測與健康評價模型的研究[D].上海:華東師范大學(xué),2015.

[5]楊志海.遠(yuǎn)程護(hù)理中老年人跌倒檢測研究[D].大連:大連海事大學(xué),2015.

[6]孟妍.可穿戴式心電采集與處理方法的研究[D].天津:天津理工大學(xué),2014.

[7]趙婧.基于可穿戴技術(shù)的信息處理與數(shù)據(jù)融合算法研究[D].北京:北京服裝學(xué)院,2014.

[8]陳瑾.穿戴式人體姿態(tài)監(jiān)測系統(tǒng)研究和設(shè)計[D].長沙:中南大學(xué),2014.

猜你喜歡
傳感器技術(shù)
變電站開關(guān)柜防誤入預(yù)警系統(tǒng)
新型電流電壓傳感技術(shù)的應(yīng)用研究
物聯(lián)網(wǎng)時代的智能冰箱設(shè)計
傳感器技術(shù)課程教學(xué)改革的研究與探索
高職傳感器技術(shù)課程教學(xué)改革探討
《傳感器技術(shù)》“研究性學(xué)習(xí)”教學(xué)方法初探
临高县| 叶城县| 兰西县| 时尚| 濮阳市| 旬阳县| 会同县| 新晃| 河津市| 神农架林区| 新乡县| 全南县| 彭州市| 岳阳县| 高青县| 舞阳县| 德安县| 鄂伦春自治旗| 垦利县| 于都县| 当涂县| 施甸县| 老河口市| 博爱县| 苏尼特左旗| 丰台区| 雅安市| 呼和浩特市| 百色市| 昌平区| 东宁县| 峨眉山市| 民勤县| 东丰县| 年辖:市辖区| 万源市| 白沙| 微博| 广安市| 扬州市| 财经|