陳元枝, 孫 浩, 趙國如
(1.桂林電子科技大學 電子工程與自動化學院,廣西 桂林 541004;2.中國科學院 深圳先進技術研究院 低成本健康重點實驗室,廣東 深圳 518055)
基于CC254x與STM32的慣性傳感器無線傳輸系統設計*
陳元枝1, 孫 浩1, 趙國如2
(1.桂林電子科技大學 電子工程與自動化學院,廣西 桂林 541004;2.中國科學院 深圳先進技術研究院 低成本健康重點實驗室,廣東 深圳 518055)
介紹了一種可用于體感游戲控制器的慣性傳感器數據無線傳輸系統。該系統包括數據采集節點、藍牙主從設備以及監測數據的上位機。系統軟件采用中斷方式對數據的收發實時處理。經測試,上位機和節點之間能夠進行穩定的、可靠的數據包和配置命令的無線傳輸,采集到的慣性數據能夠反映肢體運動姿態,可以應用于體感游戲控制器。
慣性傳感器; STM32F407; 無線傳輸; 體感游戲
體感游戲是一種參與者通過肢體動作變化來操作的新型電子游戲。體感游戲不僅能夠運動健身,而且它以實際動作操縱游戲人物,可玩性高,吸引力強,因此,受到廣大玩家的青睞[1]。體感游戲控制器大多采用2.4 GBZ無線技術[2],而BLE4.0技術具有功耗小,便于與手機端連接,延展性強等優點,其在體感游戲控制器中具有很好的應用前景[3]。
本文在BLE4.0技術基礎上,提出了一種數據包和命令無線傳輸的軟硬件解決方案。此方案將節點采集到的加速度、角速度、磁力計值通過射頻方式傳輸到PC,并分析生成波形顯示出來,實驗者做出的動作與產生的波形具有一致性。無線傳感器節點中傳感器的量程、采樣率以及數據采集的開始結束命令均可以通過PC端配置。
1.1 硬件結構
整個系統主要由無線傳感器節點,BLE4.0藍牙主機模塊和上位機組成。節點電路板捆綁于手臂部位以確保慣性傳感器的三維坐標能隨手臂的運動而變化。節點負責采集傳感器加速度、角速度、磁感應強度的原始慣性數據,并通過無線射頻方式傳輸給主機,同時也可以通過無線的方式接收上位機發出的傳感器啟動、停止、配置命令。如圖1所示,節點主要由MCU、慣性傳感器、從機模塊(CC2540)、電源管理模塊、充電電路組成。主機模塊(CC2541)負責接收節點傳輸的慣性數據,實時發送到PC端,并且將PC端針對節點采集的啟動、配置命令無線傳輸給從機。上位機的作用是對接收到的原始慣性數據進行分析,并生成對應的波形顯示出來[4]。藍牙主從機模塊采用相同的硬件平臺。

圖1 系統硬件結構Fig 1 Structure diagrams of system hardware
1.2 硬件電路
節點電路如圖2所示,MCU通過I2C總線方式與MPU9150進行數據傳輸。這種信息交換的方式具有接口線少、硬件電路簡單、通信速率高等優點。I2C的時鐘初始化通過相關寄存器靈活配置,簡單易用[5]。MCU使用8 MBZ外部晶振,通過配置寄存器使得系統主頻達到168 MBZ,使得代碼執行速率更快。CC2540自身帶有串行接口可以與MCU進行透傳[6],這是最簡單、最常見的通信方式。

圖2 節點硬件電路Fig 2 Circuit of node hardware
CC2541主設備電路如圖3所示,模塊自帶有32 MBZ的高頻晶體振蕩器和32.768 kBZ的低頻晶體振蕩器可分別用作系統主頻時鐘和睡眠時鐘的定時。主機采用上位機USB供電,經過RT9013—33芯片5 V轉3.3 V電路處理后給各單元供電。USB轉串口電路用的是CH340G芯片[7],可以實現主機與上位機間的通信。外圍電路還包括程序下載接口CC Debugger。

圖3 藍牙主設備電路Fig 3 Circuit of Bluetooth master device
系統軟件采用模塊化的思想進行設計,具體分為節點數據采集,采集到的原始慣性數據通過射頻方式發送,藍牙主機接收從機傳來的數據包并重新打包等步驟。整個系統的設計兼顧功耗和運算速率,利用MCU的中斷系統按優先級高低順序進行每一步的數據傳輸從而確保傳輸的實時準確性。
2.1 BLE協議棧
本設計通過使用TI公司提供的BLE4.0協議棧實現藍牙設備之間的互聯和無線數據的收發[8]。協議棧包含兩個部分:主設備和從設備。主從設備建立連接的過程如圖4所示,首先主設備發起掃描請求,掃描到正在廣播的從機設備。若GAP服務的通用唯一識別碼(UUID)相匹配,則主從機可以建立連接。之后,主設備發起建立連接的請求,從設備響應請求后兩設備進入連接狀態。
兩設備連接上之后慣性數據和上位機命令按圖5流程進行傳輸。主設備通過特定的UUID進行GATT數據服務的發現,發現數據服務后,主設備發送要進行數據操作的“特性”的UUID,從設備將此“特性”的句柄返回給主設備,主設備通過句柄進行應用數據的讀取和寫入操作。

圖4 連接建立流程Fig 4 Connection establishment process

圖5 慣性數據與命令包無線傳輸流程Fig 5 Wireless transmission process of inertial data and command packet
2.2 慣性數據包與命令格式
慣性傳感器數據包包括三軸(X,Y,Z軸)加速度(ACC),三軸陀螺儀(GYR),磁感應強度(MAG)的原始數據,數據包格式如表1所示,PC端收到的數據包格式如表2所示。
MPU9150需要根據不同的應用場合設定不同的加速度、陀螺儀量程、采樣率等。采樣率的配置用陀螺儀量程用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。節點采集慣性數據的開始和結束命令分別是STA和STO。這些配置都由上位機以命令包的格式發出,命令包格式如表3所示。

表1 傳感器數據存放格式Tab 1 Sensor data storage format

表3 上位機命令包Tab 3 Command packet of upper PC
2.3 藍牙主從設備軟件設計
CC2541通過串口與PC端通信,串口波特率設置為115 200 kbs,數據位8個,停止位1個,無奇偶校驗位。主從設備按圖4流程先建立連接進入連接狀態后,數據的傳輸按圖6(a)流程進行。主設備采用串口中斷的方式發送命令包,當CC2541串口收到命令包時,調用無線發送函數,將數據包丟給從設備,從設備采用輪詢的方式接受數據包。若上位機發出的命令為STA,則節點開始慣性數據采集;若發出的命令為STO,則結束采集。
2.4 節點軟件設計
流程圖如圖6(b)所示,系統進行一系列初始化后,MCU進入待機模式。慣性數據的采集使用定時器中斷方式。定時器計數值和傳感器量程通過串口中斷方式配置,本文中節點的串口中斷優先級高于定時器中斷優先級。節點MCU的串口接收到的采樣率大小、量程范圍、命令包格式如表3所示。節點收到上位機開始命令后,開啟定時器中斷,數據采集開始。采集到的慣性數據,包長為30個字節(如表1)。主從設備無線傳輸的數據包長度超過了20個字節,軟件設計中采取分包發送的方式,分為兩個包,每個包各15個字節。主設備收到數據包后將兩個包合成一個包(如表2)傳給PC端,完成一次節點到PC端的慣性數據包傳輸。

圖6 主/從設備軟件流程和節點軟件流程Fig 6 Software process of master/slave device and software process of node
上位機通過對慣性數據包分析,并生成對應的波形和實時的數據統計表。系統測試分為對藍牙實際傳輸距離和對慣性數據包準確率的測試(篇幅所限文中只對加速度進行分析)。測試地點選在空曠的地方,使用深達威公司的SW80激光測距儀測量傳輸距離,測量精度為±1 mm,測量范圍為0.2~80 m。經多次測量發現主從機距離在8.327 m以內時數據包能實現穩定的收發。
在臂部動作慣性數據傳輸實驗中,本文中MPU9150根據游戲情節(如:左急轉,緩慢往左轉,靜止)配置傳感器采樣率為50 BZ,加速度量程為±2gn,陀螺儀量程為±250°/s。圖7是節點捆綁于手臂后處于靜止,緩慢左移,快速左移時,上位機捕獲到的三軸合加速度的變化。根據圖中波形可以看出與實際動作相符,可以將這個系統設計應用到體感游戲中。
表4~表6分別是X軸垂直向下、水平和向下傾斜45°時,上位機軟件捕獲到的各軸加速度和合加速度的瞬時值、最小值、最大值和平均值。當X軸垂直向下時,X軸的理論加速為+1gn,實際測得平均加速度為+0.975 3gn,相對誤差為2.44 %;當X軸處于水平狀態時,X軸的理論加速度為0,實際測得平均加速度為+0.017 6gn,相對誤差為1.76 %;當X軸45°向下傾斜時,X軸的理論加速為+0.707 1gn,實際測得平均加速度為+0.693 8gn,相對誤差為1.88 %。傳感器采集到的數據和理論值相對誤差很小,可以表明藍牙在一定距離內無線傳輸具有良好的可靠性。

圖7 手臂擺動時合加速度變化圖Fig 7 Diagrams of changes in resultant acceleration when arm is swinging

數據類型瞬時值/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軸水平時加速度數據表Tab 5 Acceleration data when X-axis is horizontal
在整個通信過程中,使用低功耗藍牙技術,極低的運行和待機功耗使得設備使用時間得到延長。藍牙技術聯盟在制定藍牙4.0規范時加入自適應調頻技術,最大程度減少了同頻段其他信號的干擾,確保數據傳輸的可靠性,而且可

表6 X軸向下傾斜45°時加速度數據表Tab 6 Acceleration data when X-axis is inclined downward at 45 °
以實現快速啟動,主從機瞬間連接。藍牙通信的缺點是傳輸距離短,此次系統測試中在確保數據包傳輸正確前提下傳輸距離只能達到8.327 m。但是藍牙4.0已經被大多智能手機所支持,可以通過手機網絡增加相關藍牙產品的覆蓋距離,開辟全新的網絡服務。
[1] 車立軍,孫 峰.3G時代體感游戲的發展思考[J].電信技術,2011(11):55-56.
[2] 沈曉峰.基于2.4 G無線傳輸的人機交互智能遙控器設計[D].杭州:杭州電子科技大學,2013:2-3.
[3] 郭 壯.無限延展的藍牙技術—藍牙世界大會在中國上海召開[J].微電腦世界,2013(5):104-105.
[4] 張 玲,李磊民,黃玉清.藍牙無線傳感器網絡在谷倉監控中的應用[J].傳感器與微系統,2008,27(5):112-113.
[5] 王國杰.基于慣性傳感器的跌倒防護氣囊系統的研究[D].武漢:武漢理工大學,2014:37-40.
[6] 陳子龍,張紅雨,李俊斌.CC2540和SHT11的無線溫度采集系統設計[J].單片機與嵌入式系統應用,2013(4):41-44.
[7] 袁 霞,羅克露.STM32和CC2520的智能家居系統網關設計[J].單片機與嵌入式系統應用,2013(5):71-73.
[8] 歐陽俊,陳子龍,黃寧淋.藍牙4.0BLE開發完全手冊—物聯網開發技術實戰[M].北京:化學工業出版社,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
字節1~3字節4~9字節10~15字節16~21字節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
國家自然科學基金資助項目(51105359); 深圳市重點實驗室提升項目(JCYJ20130401170412293)
TN 919.7
A
1000—9787(2016)07—0103—04
陳元枝(1968-),男,吉林省長春人,博士,教授,主要研究方向為傳感器檢測、圖像處理等。