廖明華
(華南師范大學增城學院,廣東 廣州 511363)
ZigBee無線通訊技術以其易布建、低成本、低功耗的優勢,在工業自動化生產,日常生活場所得到廣泛應用,Android手機憑借開放性、豐富的硬件選擇,迅速成為最流行的主流手機平臺之一。PDA設備與無線傳感網絡的結合可以將工作、生活的空間濃縮于雙手可以掌控的距離內,推動了物聯網技術發展。
小車定位系統分為兩個功能模塊,如圖1。

圖1 系統功能架構圖
系統的網絡架構圖如圖2。

圖2 系統網絡架構圖
CC2430/CC2431是德州儀器(TI)推出的全新概念新一代ZigBee無線單片機系列芯片,是真正符合IEEE802.15.4標準的片上SOC ZigBee產品。CC2431帶硬件定位引擎,其定位引擎基于RSSI(Received Signal Strength Indicator)技術,根據接收信號強度與已知參考節點位置準確計算出有關節點位置,然后將位置信息發送給接收端。相比于集中型定位系統,RSSI功能降低了網絡流量與通信延遲,在典型應用中可實現3到5米定位精度和0.25米的分辨率[1]。
如圖2所示,首先在定位環境安置4個由CC2430構成的參考節點,這4個節點都知道并能在其它節點請求時返回它自己的位置。參考節點不需要定位引擎的硬件應用,也不需要負責任何計算。還要配備一個協調節點(也就是網關節點),同樣由CC2430構成,網關與PC機通過串口相連。隨后,在小車上安置由CC2431構成的“盲節點”,它將收集所有參考節點對它的請求返回的信息,讀出相關的RSSI值,將收集到的數值傳輸給硬件定位引擎,定位引擎計算得出位置信息,最后將位置信息傳送給與網關相連的上位機程序,在上位機程序地圖上顯示出小車節點的所在位置。
從參考節點傳輸給盲節點的數據包要包括相關節點的X、Y坐標,RSSI由盲節點定位引擎進行計算。
2.3.1 位置計算流程
CC2431接收到一個信息包時,將它將自動添加一個RSSI值在信息包中。CC2431是通過硬件計算定位坐標,在計算之前需要系統提供3個到8個參考節點的坐標值和RSSI值,并需要通過設置輸入參考的A值和N值。計算流程如圖3。

圖3 計算流程圖
A:是一個經驗參數,表示距離發送者1米處的RSSI值。
N:信號傳播系數,用來描述信號強度隨距離增加而遞減的參量。N的值依賴具體的環境,比如一堵厚墻會很大的影響其取值,通常靠經驗來判斷。
2.3.2 三邊測量法
本設計使用的定位算法是三邊測量法,如圖4,已知A、B、C,3個節點的左邊分別為(xA,yA)、(xB,yB)、(xC,yC)。 假設用戶節點 O 的坐標為(x,y),根據下面的點到點之間的距離公式[2]:


利用以上的等式通過簡單的數學推導就可以的到x和y的值。

圖4 三邊測量法
上位機軟件用C#語言開發,圖5小車定位效果圖。

圖5 小車定位效果圖
Android手機客戶端通過狼牙技術控制小車前后左右運動,圖6為硬件組成框圖。

圖6 硬件組成框圖
一個經驗法則,使用盡可能多的節點。至少要使用三個,如果節點太少,每個節點的參考效應高,一個不正確的RSSI值就會很大程度影響位置的計算。如果盲節點放置在參考節點網絡之外的位置上,那么得到的計算結果將會極大的偏離實際位置,所以不建議跟蹤網格之外的對象。
[1]宋保業.CC2431的無線定位引擎及其應用改進[J].單片機與嵌入式系統應用,2008(02):22-24.
[2]倪瑛,戴娟.Zigbee定位技術的研究[J].南京工業職業技術學院學報,2013(02):49-52.