藍牙技術
藍牙運動檢測系統(tǒng)
基于藍牙技術的運動檢測系統(tǒng)設計
隨著傳感器技術的發(fā)展,現(xiàn)代工業(yè)控制變得更加精準,更多實時檢測處理傳感器得到了廣泛應用。在車載應用中,傳統(tǒng)的傳感器測控網(wǎng)絡為有線式監(jiān)控網(wǎng)絡,使用屏蔽線或?qū)Ь€進行信號傳輸。在汽車控制系統(tǒng)上集成了許多不同的傳感器裝置,用以測量汽車是否正常工作??赏ㄟ^查看汽車各傳感器的參數(shù)值進行故障診斷等操作,而對車身整體的運動檢測傳感器目前研究尚淺。因此,文中提出一款基于藍牙無線技術的汽車車載運動狀態(tài)檢測裝置,該裝置是基于TCP/IP協(xié)議的網(wǎng)絡化智能傳感器。相比普通的基于現(xiàn)場總線的傳感器,該傳感器不僅體積小,安裝便捷性也得以提升。本傳感器適合安裝于車輛內(nèi)部各個位置,通過藍牙無線信號傳輸將本系統(tǒng)與汽車控制系統(tǒng)及其他檢測系統(tǒng)區(qū)分開來,以降低信號冗余度,減少信號擁堵。因此本系統(tǒng)可稱為獨立的運動檢測裝置。
在許多應用場合,不依靠外界而從自身內(nèi)部獲取自身運動狀態(tài)信息十分重要,慣性測量單元就扮演了這一角色。慣性測量單元(Inertial Measurement Unit,IMU)由微型陀螺儀、微型加速度計、專用集成電路(ASIC)、嵌入式微機及相應的軟件組成,內(nèi)部采用I2C總線接口,可以測出載體的角速度、加速度等信息,屬于微電子機械系統(tǒng)的一種。微電子機械系統(tǒng)(Micro-Electro-Mechanical Systems,MEMS)采用較低的成本把具有特定功能的復雜系統(tǒng)置于一個小小的硅片上,并將各種微型探測傳感器及微型機械裝置與微電子元件集為一體,使得系統(tǒng)的集成化程度更高,傳感器的體積更小。
一、運動檢測系統(tǒng)功能分析
為分析藍牙無線姿態(tài)檢測傳感器,可根據(jù)數(shù)據(jù)的傳輸過程將系統(tǒng)分為3個部分:
(1)傳感器數(shù)據(jù)獲取模塊。利用動態(tài)卡爾曼濾波等算法,對原始傳感器進行采集濾波整合處理;(2)傳感器數(shù)據(jù)無線發(fā)送模塊。掌握并運用藍牙發(fā)送模塊的參數(shù)及配置;(3)數(shù)據(jù)顯示及保存模塊。使用手機App進行數(shù)據(jù)接收及保存。
二、運動檢測系統(tǒng)總體設計
本系統(tǒng)包含軟件和硬件設計,硬件電路使用STM32系列的ARM芯片,使用I2C總線通信方式與加速度計陀螺儀通信,并使用串口與藍牙芯片HC05通信,藍牙模塊發(fā)送數(shù)據(jù)至安卓手機端。軟件編程使用Keil,IAR,Eciplse軟件對模塊編程。使用Keil軟件完成對傳感器數(shù)據(jù)信息的采集和數(shù)據(jù)打包處理;使用IAR完成對藍牙模塊的配置操作處理,設置藍牙的發(fā)送模式,波特率等參數(shù);使用Ecilpse完成手機端App的編程,使用手機自帶的藍牙通信接口獲取數(shù)據(jù),后將數(shù)據(jù)解析拆包,將得到的數(shù)據(jù)顯示到手機屏幕并保存。系統(tǒng)總體模塊框圖如圖1所示。
三、運動檢測系統(tǒng)硬件設計框圖
3.1 IMU慣性測量單元
IMU的主控制芯片選用STM32F103T8,ARM 32-bitCortex-M3內(nèi)核,它擁有64 KB的閃存存儲器和20 KB的運行內(nèi)存及7通道的DMA,7個定時器。通過8 MHz晶體和STM32內(nèi)部的PLL,控制器可以運行在72 MHz主頻上,由于姿態(tài)解算需要耗費大量內(nèi)存進行數(shù)學運算,因此采用具有更快處理速度的芯片做更多解算優(yōu)化。IMU慣性測量單元硬件組成框圖如圖2所示。
IMU上的傳感器通過I2C接口與STM32連接,同時傳感器的數(shù)據(jù)中斷引腳與STM32的IO相連,使得傳感器在完成ADC轉(zhuǎn)換后,STM32可在第一時間讀取最新、最快的數(shù)據(jù),快速響應姿態(tài)變化,獲取各傳感器的狀態(tài)和轉(zhuǎn)換結(jié)果。其中,MPU6050為整合型6軸處理運動組件,包含三軸陀螺儀和三軸加速度器,可準確追蹤快速與慢速動作。HMC5883采用霍尼韋爾地磁傳感器,具有對正交軸的低靈敏度固相結(jié)構,可用來測量地球磁場的方向和大小。BMP180是一款高精度、超低能耗的壓力傳感器,測量大氣壓力后可換算為海拔高度。
3.2 Bluetooth模塊
傳感器使用的SPP-C藍牙模塊是遵循V2.1+EDR藍牙規(guī)范的智能無線數(shù)據(jù)模塊。除P12,P5為特殊I/O口外,其他P口均為可編程輸入/輸出接口,其串口UART-TX與UART-RX均采用CMOS接口。該模塊主要用于短距離的數(shù)據(jù)無線傳輸領域。可以方便的與PC機的藍牙設備相連,數(shù)據(jù)也可以在兩個模塊之間互通。藍牙模塊的硬件框圖如圖3所示。
四、運動檢測系統(tǒng)傳感器軟件設計
4.1 IMU傳感器數(shù)據(jù)采集
IMU數(shù)據(jù)采集流程包括數(shù)據(jù)采集處理芯片STM32和三個傳感器的初始化,即首先對STM32芯片系統(tǒng)上電初始化,完成I2C接口初始化和串口初始化,然后對三個傳感器的配置初始化,如圖4所示。
(1)對MPU6050初始化:MPU6050初始化如圖5所示,軟件配置流程如下:(1)由電源管理寄存器1(0X6B)控制復位MPU6050;(2)由陀螺儀配置寄存器(0X1B)和加速度傳感器配置寄存器(0X1C)設置角速度傳感器和加速度傳感器的滿量程范圍;(3)由中斷使能寄存器(0X38)配置中斷;(4)由用戶控制寄存器(0X6A)設置AUX I2C接口;(5)由FIFO使能寄存器(0X23)設置FIFO;(6)由采樣率分頻寄存器(0X19)配置陀螺儀采樣率;(7)由配置寄存器(0X1A)設置數(shù)字低通濾波器;(8)由電源管理寄存器1(0X6B)設置系統(tǒng)時鐘。一般選擇x軸陀螺PLL作為時鐘源,以獲得更高精度的時鐘;(9)由電源管理寄存器2(0X6C)使能角速度傳感器(陀螺儀)和加速度傳感器。
(2)對HMC5883初始化:HMC5883初始化程序如圖6所示。在軟件中設置HMC5883的工作模式0,為連續(xù)測量模式。在連續(xù)測量模式下,裝置不斷測量,并將數(shù)據(jù)更新至數(shù)據(jù)寄存器。由配置寄存器A設置測量輸出過程中的采樣平均數(shù)為8個周期,75 Hz的輸出速率。然后使用HMC5883L傳感器內(nèi)部產(chǎn)生的標準磁場進行初步標定,最后讀取校正后磁力計ADC的值。
(3)對BMP180初始化:需要在軟件中進行配置:(1)發(fā)出壓力(或溫度)轉(zhuǎn)換命令;(2)一段時間后從UP(UT)寄存器讀取原始數(shù)據(jù);(3)若要得到攝氏溫度和hPa壓力則需要用到校正數(shù)據(jù),這些數(shù)據(jù)放在BMP085的E2PROM中,通過I2C可以在初始化時讀出。
4.2藍牙無線模塊配置
藍牙HC05是主從一體的藍牙串口模塊,可以使其工作在主或從機狀態(tài)。當藍牙設備配對連接成功后,無需考慮藍牙內(nèi)部的通信協(xié)議,直接將藍牙作為串口使用。連接建立后,兩設備共同使用一通道,一個設備發(fā)送數(shù)據(jù)到通道中,另一個設備可以接收通道中的數(shù)據(jù)。為建立這種通道連接,需要將藍牙設置為能進行配對連接的AT模式。使用藍牙模塊的AT指令對其進行配置,將模塊設置為從機模式。
五、手機安卓端軟件
5.1運動檢測系統(tǒng)總體設計
為完成手機端App的軟件開發(fā),首先建立其用例圖,描述用戶使用本App實現(xiàn)的目的。首先用戶打開App圖標進入軟件,完成藍牙設備的匹配連接,然后根據(jù)用戶的需要選擇用戶希望獲取的數(shù)據(jù)信息,最后用戶保存需要的數(shù)據(jù)信息。根據(jù)實現(xiàn)的功能按照實現(xiàn)類方法進行劃分。其中涉及藍牙通信服務,用戶與手機圖形界面交互中的事件監(jiān)聽處理機制,及數(shù)據(jù)的實時動態(tài)刷新顯示。在設計軟件時設計了用例圖和部署圖。
5.2 App實現(xiàn)框架
在AndriodMenifest.xml文件列出了應用程序提供的功能,凡需要用到的組件都要在此進行配置及注冊,包括Activity、Intent、Service及ContentProvider。當使用到系統(tǒng)中內(nèi)置的應用(如電話服務、互聯(lián)網(wǎng)服務、短信服務、GPS服務等)時還需在此文件中聲明使用權限,該文件也是所有Android應用程序都需要的文件,描述了程序包的全局變量,包括公開的應用程序組件和每個組件的實現(xiàn)類,及可以操作的數(shù)據(jù)資源,運行空間等。
軟件中的Activity是Android的核心類,其作用相當于c中的主函數(shù)。該類的全名是android.app.Activity。Activity相當于C/S程序中的窗體(Form)或Web程序的頁面。每一個Activity提供了一個可視化區(qū)域。在這個區(qū)域中可以放置各種Android控件,如按鈕、圖像、文本框等。
由AndroidMenifest.xml文件配置軟件安卓運行版本條件,并先執(zhí)行DeviceListActivity.java獲取設備列表,使用Intent調(diào)用DataMonitor.java程序。DeviceListActivity繼承了Activity類,DataMonitor繼承了FragmentActivity類。兩者在執(zhí)行時都調(diào)用BluetoothService.Java函數(shù)以完成藍牙通信。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)用藍牙連接,通過setContentView方法將View放到Activity上。綁定后,Activity會顯示View上的控件。其余的是繼承父類的onStart(),onResume(),onPause(),onStop()和onDestroy()方法,未對其修改,完成Activity生命周期的重載基本方法。
在確保藍牙已經(jīng)連接的情況下使用handler接口完成Activity的Widget與應用程序中線程的交互。重寫handler類中的handleMessage方法,通過該方法接收信息。接收的信息表示當前時刻接收消息的狀態(tài),分別為MESSAGE_STATE_CH ANGE,M ES SAGE_READ,M ES SAGE_DEVICE_NAME,MESSAGE_TOAST。第一種狀態(tài)表示藍牙處于連接狀態(tài);第二種狀態(tài)表示數(shù)據(jù)讀取狀態(tài);第三種狀態(tài)為設備名稱讀入狀態(tài);第四種狀態(tài)為數(shù)據(jù)顯示狀態(tài),可將數(shù)據(jù)顯示在手機屏幕上。通過OnclickConfig(View v),ControlClick(View v)完成界面顯示及跳轉(zhuǎn)功能,在ControlClick中可以選擇顯示的內(nèi)容,并根據(jù)按下的按鍵選擇對應的輸出數(shù)據(jù)。onRecordBtnClick(View v)方法是當用戶按下“記錄”鍵時將數(shù)據(jù)保存到SD卡中,當用戶按下“停止”按鈕時停止記錄數(shù)據(jù)信息。
5.4藍牙傳輸BluetoothService
對藍牙進行開發(fā),首先在AndroidManifest.xml文件中加入管理員權限和藍牙開發(fā)權限,開啟藍牙后,用isEnabled()查詢當前藍牙設備的狀態(tài),若返回為false,則表示藍牙設備沒有開啟,需要封裝一個ACTION_REQUEST_ENABLE請求到intent,調(diào)用startActivityForResult()方法使能藍牙設備。使用BluetoothAdapter類的方法可以查找遠端設備,使用mArrayAdapter.Add方法顯示可以配對的藍牙設備集,以便選取一個設備進行通信。
掃描設備只需調(diào)用startDiscovery()方法,應用程序為了ACTION_FOUND動作需要注冊一個BroadcastReceiver來接收設備掃描到的信息。使能自身設備,將ACTION_REQUEST_DISCOVERABLE動作封裝在intent中并調(diào)用startActivityForResult(Intent,int)方法。建立兩個藍牙設備之間的連接,完成客戶端和服務器端的代碼。一個開啟服務來監(jiān)聽,一個發(fā)起連接請求(使用服務器端設備的MAC地址)。當他們都擁有一個藍牙套接字在同一RFECOMM信道上時,可認為他們之間已經(jīng)連接上了。getInptuStream()獲取輸入流,getOutputStream()獲取輸出流,進行數(shù)據(jù)傳輸。
結(jié)語
本文中,我們提出了一種基于藍牙和慣性測量單元的無線位姿傳感器檢測系統(tǒng),針對傳感器的硬件和軟件進行設計。使用整合型6軸處理運動組件MPU6050、BMP180、HMC5883和STM32組成IMU(慣性測量單元),將數(shù)據(jù)通過藍牙發(fā)送至手機端,然后顯示,并將數(shù)據(jù)保存在手機端。文中設計的系統(tǒng)具有較好的實時性,且精度滿足一般運動物體的檢測要求。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于藍牙技術的運動檢測系統(tǒng)設計。如果您有藍牙產(chǎn)品設計開發(fā)需求,可以放心交給我們,我們有豐富的智能電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應廣、杰理、安凱、全志、realtek,有MCU、語音IC、BLE藍牙IC、雙模藍牙模塊、wifi模塊。我們的擁有硬件設計與軟件開發(fā)能力。涵蓋了電路設計、PCB設計、單片機開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術、藍牙開發(fā)、wifi技術等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設計、美容儀器開發(fā)、物聯(lián)網(wǎng)應用開發(fā)、智能家居方案設計、TWS耳機開發(fā)、藍牙耳機音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
注:部分圖片內(nèi)容來源于網(wǎng)絡,如有侵權,請聯(lián)系刪除。
- 返回頂部