陳元枝, 孫 浩, 趙國如
(1.桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林 541004;2.中國科學(xué)院 深圳先進(jìn)技術(shù)研究院 低成本健康重點(diǎn)實(shí)驗(yàn)室,廣東 深圳 518055)
基于CC254x與STM32的慣性傳感器無線傳輸系統(tǒng)設(shè)計(jì)*
陳元枝1, 孫 浩1, 趙國如2
(1.桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林 541004;2.中國科學(xué)院 深圳先進(jìn)技術(shù)研究院 低成本健康重點(diǎn)實(shí)驗(yàn)室,廣東 深圳 518055)
介紹了一種可用于體感游戲控制器的慣性傳感器數(shù)據(jù)無線傳輸系統(tǒng)。該系統(tǒng)包括數(shù)據(jù)采集節(jié)點(diǎn)、藍(lán)牙主從設(shè)備以及監(jiān)測(cè)數(shù)據(jù)的上位機(jī)。系統(tǒng)軟件采用中斷方式對(duì)數(shù)據(jù)的收發(fā)實(shí)時(shí)處理。經(jīng)測(cè)試,上位機(jī)和節(jié)點(diǎn)之間能夠進(jìn)行穩(wěn)定的、可靠的數(shù)據(jù)包和配置命令的無線傳輸,采集到的慣性數(shù)據(jù)能夠反映肢體運(yùn)動(dòng)姿態(tài),可以應(yīng)用于體感游戲控制器。
慣性傳感器; STM32F407; 無線傳輸; 體感游戲
體感游戲是一種參與者通過肢體動(dòng)作變化來操作的新型電子游戲。體感游戲不僅能夠運(yùn)動(dòng)健身,而且它以實(shí)際動(dòng)作操縱游戲人物,可玩性高,吸引力強(qiáng),因此,受到廣大玩家的青睞[1]。體感游戲控制器大多采用2.4 GBZ無線技術(shù)[2],而BLE4.0技術(shù)具有功耗小,便于與手機(jī)端連接,延展性強(qiáng)等優(yōu)點(diǎn),其在體感游戲控制器中具有很好的應(yīng)用前景[3]。
本文在BLE4.0技術(shù)基礎(chǔ)上,提出了一種數(shù)據(jù)包和命令無線傳輸?shù)能浻布鉀Q方案。此方案將節(jié)點(diǎn)采集到的加速度、角速度、磁力計(jì)值通過射頻方式傳輸?shù)絇C,并分析生成波形顯示出來,實(shí)驗(yàn)者做出的動(dòng)作與產(chǎn)生的波形具有一致性。無線傳感器節(jié)點(diǎn)中傳感器的量程、采樣率以及數(shù)據(jù)采集的開始結(jié)束命令均可以通過PC端配置。
1.1 硬件結(jié)構(gòu)
整個(gè)系統(tǒng)主要由無線傳感器節(jié)點(diǎn),BLE4.0藍(lán)牙主機(jī)模塊和上位機(jī)組成。節(jié)點(diǎn)電路板捆綁于手臂部位以確保慣性傳感器的三維坐標(biāo)能隨手臂的運(yùn)動(dòng)而變化。節(jié)點(diǎn)負(fù)責(zé)采集傳感器加速度、角速度、磁感應(yīng)強(qiáng)度的原始慣性數(shù)據(jù),并通過無線射頻方式傳輸給主機(jī),同時(shí)也可以通過無線的方式接收上位機(jī)發(fā)出的傳感器啟動(dòng)、停止、配置命令。如圖1所示,節(jié)點(diǎn)主要由MCU、慣性傳感器、從機(jī)模塊(CC2540)、電源管理模塊、充電電路組成。主機(jī)模塊(CC2541)負(fù)責(zé)接收節(jié)點(diǎn)傳輸?shù)膽T性數(shù)據(jù),實(shí)時(shí)發(fā)送到PC端,并且將PC端針對(duì)節(jié)點(diǎn)采集的啟動(dòng)、配置命令無線傳輸給從機(jī)。上位機(jī)的作用是對(duì)接收到的原始慣性數(shù)據(jù)進(jìn)行分析,并生成對(duì)應(yīng)的波形顯示出來[4]。藍(lán)牙主從機(jī)模塊采用相同的硬件平臺(tái)。
圖1 系統(tǒng)硬件結(jié)構(gòu)Fig 1 Structure diagrams of system hardware
1.2 硬件電路
節(jié)點(diǎn)電路如圖2所示,MCU通過I2C總線方式與MPU9150進(jìn)行數(shù)據(jù)傳輸。這種信息交換的方式具有接口線少、硬件電路簡(jiǎn)單、通信速率高等優(yōu)點(diǎn)。I2C的時(shí)鐘初始化通過相關(guān)寄存器靈活配置,簡(jiǎn)單易用[5]。MCU使用8 MBZ外部晶振,通過配置寄存器使得系統(tǒng)主頻達(dá)到168 MBZ,使得代碼執(zhí)行速率更快。CC2540自身帶有串行接口可以與MCU進(jìn)行透?jìng)鱗6],這是最簡(jiǎn)單、最常見的通信方式。
圖2 節(jié)點(diǎn)硬件電路Fig 2 Circuit of node hardware
CC2541主設(shè)備電路如圖3所示,模塊自帶有32 MBZ的高頻晶體振蕩器和32.768 kBZ的低頻晶體振蕩器可分別用作系統(tǒng)主頻時(shí)鐘和睡眠時(shí)鐘的定時(shí)。主機(jī)采用上位機(jī)USB供電,經(jīng)過RT9013—33芯片5 V轉(zhuǎn)3.3 V電路處理后給各單元供電。USB轉(zhuǎn)串口電路用的是CH340G芯片[7],可以實(shí)現(xiàn)主機(jī)與上位機(jī)間的通信。外圍電路還包括程序下載接口CC Debugger。
圖3 藍(lán)牙主設(shè)備電路Fig 3 Circuit of Bluetooth master device
系統(tǒng)軟件采用模塊化的思想進(jìn)行設(shè)計(jì),具體分為節(jié)點(diǎn)數(shù)據(jù)采集,采集到的原始慣性數(shù)據(jù)通過射頻方式發(fā)送,藍(lán)牙主機(jī)接收從機(jī)傳來的數(shù)據(jù)包并重新打包等步驟。整個(gè)系統(tǒng)的設(shè)計(jì)兼顧功耗和運(yùn)算速率,利用MCU的中斷系統(tǒng)按優(yōu)先級(jí)高低順序進(jìn)行每一步的數(shù)據(jù)傳輸從而確保傳輸?shù)膶?shí)時(shí)準(zhǔn)確性。
2.1 BLE協(xié)議棧
本設(shè)計(jì)通過使用TI公司提供的BLE4.0協(xié)議棧實(shí)現(xiàn)藍(lán)牙設(shè)備之間的互聯(lián)和無線數(shù)據(jù)的收發(fā)[8]。協(xié)議棧包含兩個(gè)部分:主設(shè)備和從設(shè)備。主從設(shè)備建立連接的過程如圖4所示,首先主設(shè)備發(fā)起掃描請(qǐng)求,掃描到正在廣播的從機(jī)設(shè)備。若GAP服務(wù)的通用唯一識(shí)別碼(UUID)相匹配,則主從機(jī)可以建立連接。之后,主設(shè)備發(fā)起建立連接的請(qǐng)求,從設(shè)備響應(yīng)請(qǐng)求后兩設(shè)備進(jìn)入連接狀態(tài)。
兩設(shè)備連接上之后慣性數(shù)據(jù)和上位機(jī)命令按圖5流程進(jìn)行傳輸。主設(shè)備通過特定的UUID進(jìn)行GATT數(shù)據(jù)服務(wù)的發(fā)現(xiàn),發(fā)現(xiàn)數(shù)據(jù)服務(wù)后,主設(shè)備發(fā)送要進(jìn)行數(shù)據(jù)操作的“特性”的UUID,從設(shè)備將此“特性”的句柄返回給主設(shè)備,主設(shè)備通過句柄進(jìn)行應(yīng)用數(shù)據(jù)的讀取和寫入操作。
圖4 連接建立流程Fig 4 Connection establishment process
圖5 慣性數(shù)據(jù)與命令包無線傳輸流程Fig 5 Wireless transmission process of inertial data and command packet
2.2 慣性數(shù)據(jù)包與命令格式
慣性傳感器數(shù)據(jù)包包括三軸(X,Y,Z軸)加速度(ACC),三軸陀螺儀(GYR),磁感應(yīng)強(qiáng)度(MAG)的原始數(shù)據(jù),數(shù)據(jù)包格式如表1所示,PC端收到的數(shù)據(jù)包格式如表2所示。
MPU9150需要根據(jù)不同的應(yīng)用場(chǎng)合設(shè)定不同的加速度、陀螺儀量程、采樣率等。采樣率的配置用陀螺儀量程用G表示,G=A,B,C,D,分別表示陀螺儀滿量程范圍±250,±500°/s,±1 000°/s,±2 000°/s;加速度量程用S表示,S=A,B,C,D,分別表示加速度滿量程范圍±2,±4,±8,±16gn;采樣率的范圍用R表示,R=A,B,C,D,分別表示10,50,100,150 BZ。節(jié)點(diǎn)采集慣性數(shù)據(jù)的開始和結(jié)束命令分別是STA和STO。這些配置都由上位機(jī)以命令包的格式發(fā)出,命令包格式如表3所示。
表1 傳感器數(shù)據(jù)存放格式Tab 1 Sensor data storage format
表3 上位機(jī)命令包Tab 3 Command packet of upper PC
2.3 藍(lán)牙主從設(shè)備軟件設(shè)計(jì)
CC2541通過串口與PC端通信,串口波特率設(shè)置為115 200 kbs,數(shù)據(jù)位8個(gè),停止位1個(gè),無奇偶校驗(yàn)位。主從設(shè)備按圖4流程先建立連接進(jìn)入連接狀態(tài)后,數(shù)據(jù)的傳輸按圖6(a)流程進(jìn)行。主設(shè)備采用串口中斷的方式發(fā)送命令包,當(dāng)CC2541串口收到命令包時(shí),調(diào)用無線發(fā)送函數(shù),將數(shù)據(jù)包丟給從設(shè)備,從設(shè)備采用輪詢的方式接受數(shù)據(jù)包。若上位機(jī)發(fā)出的命令為STA,則節(jié)點(diǎn)開始慣性數(shù)據(jù)采集;若發(fā)出的命令為STO,則結(jié)束采集。
2.4 節(jié)點(diǎn)軟件設(shè)計(jì)
流程圖如圖6(b)所示,系統(tǒng)進(jìn)行一系列初始化后,MCU進(jìn)入待機(jī)模式。慣性數(shù)據(jù)的采集使用定時(shí)器中斷方式。定時(shí)器計(jì)數(shù)值和傳感器量程通過串口中斷方式配置,本文中節(jié)點(diǎn)的串口中斷優(yōu)先級(jí)高于定時(shí)器中斷優(yōu)先級(jí)。節(jié)點(diǎn)MCU的串口接收到的采樣率大小、量程范圍、命令包格式如表3所示。節(jié)點(diǎn)收到上位機(jī)開始命令后,開啟定時(shí)器中斷,數(shù)據(jù)采集開始。采集到的慣性數(shù)據(jù),包長(zhǎng)為30個(gè)字節(jié)(如表1)。主從設(shè)備無線傳輸?shù)臄?shù)據(jù)包長(zhǎng)度超過了20個(gè)字節(jié),軟件設(shè)計(jì)中采取分包發(fā)送的方式,分為兩個(gè)包,每個(gè)包各15個(gè)字節(jié)。主設(shè)備收到數(shù)據(jù)包后將兩個(gè)包合成一個(gè)包(如表2)傳給PC端,完成一次節(jié)點(diǎn)到PC端的慣性數(shù)據(jù)包傳輸。
圖6 主/從設(shè)備軟件流程和節(jié)點(diǎn)軟件流程Fig 6 Software process of master/slave device and software process of node
上位機(jī)通過對(duì)慣性數(shù)據(jù)包分析,并生成對(duì)應(yīng)的波形和實(shí)時(shí)的數(shù)據(jù)統(tǒng)計(jì)表。系統(tǒng)測(cè)試分為對(duì)藍(lán)牙實(shí)際傳輸距離和對(duì)慣性數(shù)據(jù)包準(zhǔn)確率的測(cè)試(篇幅所限文中只對(duì)加速度進(jìn)行分析)。測(cè)試地點(diǎn)選在空曠的地方,使用深達(dá)威公司的SW80激光測(cè)距儀測(cè)量傳輸距離,測(cè)量精度為±1 mm,測(cè)量范圍為0.2~80 m。經(jīng)多次測(cè)量發(fā)現(xiàn)主從機(jī)距離在8.327 m以內(nèi)時(shí)數(shù)據(jù)包能實(shí)現(xiàn)穩(wěn)定的收發(fā)。
在臂部動(dòng)作慣性數(shù)據(jù)傳輸實(shí)驗(yàn)中,本文中MPU9150根據(jù)游戲情節(jié)(如:左急轉(zhuǎn),緩慢往左轉(zhuǎn),靜止)配置傳感器采樣率為50 BZ,加速度量程為±2gn,陀螺儀量程為±250°/s。圖7是節(jié)點(diǎn)捆綁于手臂后處于靜止,緩慢左移,快速左移時(shí),上位機(jī)捕獲到的三軸合加速度的變化。根據(jù)圖中波形可以看出與實(shí)際動(dòng)作相符,可以將這個(gè)系統(tǒng)設(shè)計(jì)應(yīng)用到體感游戲中。
表4~表6分別是X軸垂直向下、水平和向下傾斜45°時(shí),上位機(jī)軟件捕獲到的各軸加速度和合加速度的瞬時(shí)值、最小值、最大值和平均值。當(dāng)X軸垂直向下時(shí),X軸的理論加速為+1gn,實(shí)際測(cè)得平均加速度為+0.975 3gn,相對(duì)誤差為2.44 %;當(dāng)X軸處于水平狀態(tài)時(shí),X軸的理論加速度為0,實(shí)際測(cè)得平均加速度為+0.017 6gn,相對(duì)誤差為1.76 %;當(dāng)X軸45°向下傾斜時(shí),X軸的理論加速為+0.707 1gn,實(shí)際測(cè)得平均加速度為+0.693 8gn,相對(duì)誤差為1.88 %。傳感器采集到的數(shù)據(jù)和理論值相對(duì)誤差很小,可以表明藍(lán)牙在一定距離內(nèi)無線傳輸具有良好的可靠性。
圖7 手臂擺動(dòng)時(shí)合加速度變化圖Fig 7 Diagrams of changes in resultant acceleration when arm is swinging
數(shù)據(jù)類型瞬時(shí)值/gn最小值/gn最大值/gn平均值/gnAcc-X0.97560.86821.01220.9753Acc-Y-0.0156-0.02100.32080.0003Acc-Z-0.0601-0.09130.0273-0.0563Acc-V0.97760.92561.01320.9771
表5 X軸水平時(shí)加速度數(shù)據(jù)表Tab 5 Acceleration data when X-axis is horizontal
在整個(gè)通信過程中,使用低功耗藍(lán)牙技術(shù),極低的運(yùn)行和待機(jī)功耗使得設(shè)備使用時(shí)間得到延長(zhǎng)。藍(lán)牙技術(shù)聯(lián)盟在制定藍(lán)牙4.0規(guī)范時(shí)加入自適應(yīng)調(diào)頻技術(shù),最大程度減少了同頻段其他信號(hào)的干擾,確保數(shù)據(jù)傳輸?shù)目煽啃?而且可
表6 X軸向下傾斜45°時(shí)加速度數(shù)據(jù)表Tab 6 Acceleration data when X-axis is inclined downward at 45 °
以實(shí)現(xiàn)快速啟動(dòng),主從機(jī)瞬間連接。藍(lán)牙通信的缺點(diǎn)是傳輸距離短,此次系統(tǒng)測(cè)試中在確保數(shù)據(jù)包傳輸正確前提下傳輸距離只能達(dá)到8.327 m。但是藍(lán)牙4.0已經(jīng)被大多智能手機(jī)所支持,可以通過手機(jī)網(wǎng)絡(luò)增加相關(guān)藍(lán)牙產(chǎn)品的覆蓋距離,開辟全新的網(wǎng)絡(luò)服務(wù)。
[1] 車立軍,孫 峰.3G時(shí)代體感游戲的發(fā)展思考[J].電信技術(shù),2011(11):55-56.
[2] 沈曉峰.基于2.4 G無線傳輸?shù)娜藱C(jī)交互智能遙控器設(shè)計(jì)[D].杭州:杭州電子科技大學(xué),2013:2-3.
[3] 郭 壯.無限延展的藍(lán)牙技術(shù)—藍(lán)牙世界大會(huì)在中國上海召開[J].微電腦世界,2013(5):104-105.
[4] 張 玲,李磊民,黃玉清.藍(lán)牙無線傳感器網(wǎng)絡(luò)在谷倉監(jiān)控中的應(yīng)用[J].傳感器與微系統(tǒng),2008,27(5):112-113.
[5] 王國杰.基于慣性傳感器的跌倒防護(hù)氣囊系統(tǒng)的研究[D].武漢:武漢理工大學(xué),2014:37-40.
[6] 陳子龍,張紅雨,李俊斌.CC2540和SHT11的無線溫度采集系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013(4):41-44.
[7] 袁 霞,羅克露.STM32和CC2520的智能家居系統(tǒng)網(wǎng)關(guān)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013(5):71-73.
[8] 歐陽俊,陳子龍,黃寧淋.藍(lán)牙4.0BLE開發(fā)完全手冊(cè)—物聯(lián)網(wǎng)開發(fā)技術(shù)實(shí)戰(zhàn)[M].北京:化學(xué)工業(yè)出版社,2014: 213-217.
孫 浩,通訊作者,E—mail:15062279557@163.com。
Design of inertial sensor data wireless transmission system based on CC254x and STM32*
CHEN Yuan-zhi1, SUN Hao1, ZHAO Guo-ru2
(1.School of Electrical Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,China;2.Institute of Biomedical and Health Engineering,Shenzhen Institute of Advanced Technology,Chinese Academy of Sciences,Shenzhen 518055,China)
A kind of inertial sensor data wireless transmission system which can be used in somatosensory gaming devices is introduced.This system is composed of three parts which includes data acquisition node,Bluetooth device and upper PC for monitoring data.System software uses interrupt mode to send and
ata and real-time process data.After testing,the results show that data packet and command can be transmitted wirelessly,stably and reliably between upper PC and node,collected inertial data can reflect moving attitude of limb,it can be applied to body feeling game controller.
inertial sensor; STM32F407; wireless transmission; somatosensory game
by serial port of PC
字節(jié)1~3字節(jié)4~9字節(jié)10~15字節(jié)16~21字節(jié)22~37MPUACC_X_LGRY_X_LMAG_X_LPITCH_LACC_X_HGRY_X_HMAG_X_HPITCH_HACC_Y_LGRY_Y_LMAG_Y_LROLL_LACC_Y_HGRY_Y_HMAG_Y_HROLL_HACC_Z_LGRY_Z_LMAG_Z_LYAW_LACC_Z_HGRY_Z_HMAG_Z_HYAW_H
10.13873/J.1000—9787(2016)07—0103—04
2015—10—13
國家自然科學(xué)基金資助項(xiàng)目(51105359); 深圳市重點(diǎn)實(shí)驗(yàn)室提升項(xiàng)目(JCYJ20130401170412293)
TN 919.7
A
1000—9787(2016)07—0103—04
陳元枝(1968-),男,吉林省長(zhǎng)春人,博士,教授,主要研究方向?yàn)閭鞲衅鳈z測(cè)、圖像處理等。