最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

如何用藍(lán)牙實(shí)現(xiàn)無(wú)線定位--系統(tǒng)原理及信號(hào)塔設(shè)置

2022-12-26 14:04 作者:機(jī)器譜  | 我要投稿

一、系統(tǒng)原理

1. 簡(jiǎn)介

本項(xiàng)目將利用多個(gè)BLE4.0藍(lán)牙模塊,配合主控板、OLED顯示屏等,構(gòu)建一個(gè)無(wú)線定位系統(tǒng)。

本項(xiàng)目的系統(tǒng)構(gòu)成為:3個(gè)信號(hào)塔,1個(gè)中控臺(tái),2個(gè)被定位的目標(biāo)。

? ? ? ?無(wú)線定位的用途有很多。比如,我們可以把固定的目標(biāo)1看作等待救援的人或物,把可移動(dòng)的目標(biāo)2看作前來(lái)救援的機(jī)器人,就可以虛擬出一個(gè)救援場(chǎng)景模型。

? ? ? ?而現(xiàn)實(shí)中使用藍(lán)牙技術(shù)進(jìn)行無(wú)線定位,多見(jiàn)于商場(chǎng)、圖書(shū)館等室內(nèi)環(huán)境的定位和導(dǎo)航。比如,在商場(chǎng)內(nèi)安裝數(shù)個(gè)藍(lán)牙信號(hào)發(fā)射源;在商家門(mén)口安裝藍(lán)牙定位設(shè)備;對(duì)于顧客,則可以直接使用其智能手機(jī)的藍(lán)牙模塊,再配合一個(gè)商場(chǎng)專用的手機(jī)App或者小程序,就可以讓顧客非常方便的在商場(chǎng)內(nèi)部尋找自己想要到達(dá)的商家等。

2. 定位原理

(1)rssi無(wú)線接收信號(hào)強(qiáng)度

? ? ? ?Received Signal Strength Indication接收的信號(hào)強(qiáng)度指示,通過(guò)接收到的信號(hào)強(qiáng)弱測(cè)定信號(hào)點(diǎn)與接收點(diǎn)的距離,進(jìn)而根據(jù)相應(yīng)數(shù)據(jù)進(jìn)行定位計(jì)算的一種定位技術(shù)。

? ? ? ?RSSI是射頻信號(hào)理論術(shù)語(yǔ),主要應(yīng)用于發(fā)射機(jī)和接收機(jī)之間的距離測(cè)量。該方法是依據(jù)接收信號(hào)能量強(qiáng)度確定距離,對(duì)通信信道參數(shù)要求較高。其測(cè)距理論是:依據(jù)無(wú)線電波或聲波在介質(zhì)中傳輸,信號(hào)功率是隨傳播距離衰減的原理。根據(jù)信標(biāo)節(jié)點(diǎn)已知信號(hào)的發(fā)射功率和節(jié)點(diǎn)接收的信號(hào)功率,通過(guò)信號(hào)與距離之間的衰減模型,就可以計(jì)算出節(jié)點(diǎn)間的距離。由于信號(hào)傳播的過(guò)程中,受到距離和障礙物的影響。信號(hào)的功率強(qiáng)度隨之衰減,間接影響精度。所以要求得到良好的精度,短距離才會(huì)體現(xiàn)這一點(diǎn)。

? ? ? ?RSSI的定位技術(shù)相比于TOA、TDOA、AOA、GPS具有成本低、容易實(shí)現(xiàn)等優(yōu)勢(shì)。如果室內(nèi)定位精度要求不高,基于RSSI的定位技術(shù)完全可以滿足。而且,現(xiàn)階段對(duì)于作為節(jié)點(diǎn)的傳感器,都能夠完成發(fā)射測(cè)試信號(hào)功率的任務(wù)。主要進(jìn)行實(shí)驗(yàn)時(shí),節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,也獲取RSSI的測(cè)量值。該定位技術(shù)既無(wú)需額外硬件,又能完成復(fù)雜信息的分析處理,減小通信消費(fèi),節(jié)約成本,比較適用于無(wú)線傳感器網(wǎng)絡(luò)的定位系統(tǒng)。

幾種測(cè)距方式對(duì)比 :

(2)rssi三點(diǎn)定位算法的基本原理

? ? ? ?三點(diǎn)定位算法在需要進(jìn)行定位的空間放置3個(gè)AP(無(wú)線訪問(wèn)接入點(diǎn)),并且3個(gè)AP的位置已知,如果知道該空間內(nèi)某位置的信號(hào)強(qiáng)度則可建立信號(hào)衰減模型,根據(jù)該信號(hào)強(qiáng)度計(jì)算出該位置到三個(gè)AP的距離。使用某位置移動(dòng)設(shè)備的信號(hào)強(qiáng)度即可估算出其到附近AP的距離,如果能確定若干AP的位置,即可確定該移動(dòng)設(shè)備的位置。由于障礙物的存在,信號(hào)衰減模型在實(shí)際使用時(shí)會(huì)存在一定誤差。

已知三個(gè)點(diǎn)的坐標(biāo)和未知點(diǎn)到這三個(gè)點(diǎn)的rssi的信號(hào)值,求解未知點(diǎn)的坐標(biāo)。

首先是將rssi信號(hào)轉(zhuǎn)換為距離:

d%3D10%5E%7B((ABS(RSSI)-A)%2F(10*n))%7D

其中d為距離,單位是m。

RSSI為rssi信號(hào)強(qiáng)度,為負(fù)數(shù)。

A為距離探測(cè)設(shè)備1m時(shí)的rssi值的絕對(duì)值,最佳范圍在45-49之間。

n為環(huán)境衰減因子,需要測(cè)試矯正,最佳范圍在3.25-4.5之間。

? ? ? ?在獲取未知點(diǎn)到三個(gè)點(diǎn)的距離后,剩下的就是求解未知點(diǎn)的坐標(biāo)。我們都知道兩個(gè)圓會(huì)相交于一個(gè)或者兩個(gè)點(diǎn)(如果相交),那么三個(gè)圓如果相交的話,必然會(huì)交于一個(gè)點(diǎn)(三個(gè)探測(cè)設(shè)備在一條直線上的情況下有可能相交于兩個(gè)點(diǎn),這里不考慮),所以我們要求解的未知點(diǎn)便是以三個(gè)已知點(diǎn)為圓心,以他們與未知點(diǎn)之間的距離為半徑畫(huà)出的三個(gè)圓的交點(diǎn)。那么這個(gè)問(wèn)題就轉(zhuǎn)化為了求三個(gè)已知圓的交點(diǎn),然后如果根據(jù)圓的方程:

(x_1%20%E2%80%93%20x)%5E2%20%2B%20(y_1-y)%5E2%20%3D%20r_1%5E2

(x_2%20%E2%80%93%20x)%5E2%20%2B%20(y_2-y)%5E2%3D%20r_2%5E2

(x_3%20%E2%80%93%20x)%5E2%20%2B%20(y_3-y)%5E2%3D%20r_3%5E2

求解的話,是非常難求出未知點(diǎn)的坐標(biāo)的。

這里介紹另一種程序容易實(shí)現(xiàn)的計(jì)算方法:

、判斷任意兩個(gè)圓是否相切(內(nèi)切或外切),這里可以設(shè)定一個(gè)誤差允許值d,也就是(x_1%20%E2%80%93%20x_2)%5E2%20%2B%20(y_1-y_2)%5E2%3D%20(r_1%2Br_2%2Bd)%5E2,滿足上述公式時(shí)就認(rèn)為兩個(gè)圓相切,其中d為誤差值,可以是正數(shù)或者負(fù)數(shù)。如果兩個(gè)圓相切的話,那么交點(diǎn)就比較好求解了:

x%20%3D%20x_1%2B%20(x_2%20-%20x_1)*(r_1%2F(r_1%20%2B%20r_2));

y%20%3D%20y_1%20%2B%20(y_2-%20y_1)*(r_1%2F(r_1%20%2B%20r_2))

? ? ? ?求解到x和y的坐標(biāo)后,只需要用第三個(gè)圓進(jìn)行驗(yàn)證,即求出這個(gè)點(diǎn)到第三個(gè)圓的圓心的距離,再和第三個(gè)圓的半徑做比較,如果在誤差允許范圍內(nèi),那么就可以認(rèn)為求得的x,y是三個(gè)圓的交點(diǎn),也就是未知點(diǎn)的坐標(biāo)。

、沒(méi)有任意兩個(gè)圓相切,那么就先用兩個(gè)圓求解兩個(gè)交點(diǎn),如下圖:

其中A,B是兩個(gè)圓心,坐標(biāo)分別為(x_a,y_a)和(x_b,y_b),C,D是兩個(gè)圓的交點(diǎn),E為AB與CD的交點(diǎn)。

其中

AB%5E2%20%3D%20(x_a%20%E2%80%93%20x_b)%5E2%20%2B(y_a-y_b)%5E2

其中

AC%5E2%20%3DAE%5E2%20%2B%20CE%5E2 ?? ? ?? ……………………1

BC%5E2%20%3D%20BE%5E2%2B%20CE%5E2 ?? ? ?? ……………………2

AC%20%3D%20r_a

BC%3D%20r_b

AE%20%2B%20BE%20%3D%20AB%20%3D%20(x_a%20%E2%80%93%20x_b)%5E2%2B%20(y_a%20%E2%80%93%20y_b)%5E2

等式2轉(zhuǎn)換為

BC%5E2%20%3D%20(AB%20-%20AE)%5E2%20%2B%20CE%5E2

BC%5E2%20%3D%20AB%5E2%20%2B%20AE%5E2%20%E2%80%93%202AB%5Ccdot%20AE%20%2B%20CE%5E2 ? ……………………3

等式3減去等式1:

BC%5E2%20-%20AC%5E2%20%3D%20AB%5E2%20%E2%80%93%202AB%5Ccdot%20AE

AE%20%3D%20(r_b%20%5E2%20-%20r_a%20%5E2%20-AB%5E2)%2F(%20%E2%80%93%202AB)

于是可以根據(jù)以下公式求得CE

CE%5E2%20%3D%20AC%5E2%20%E2%80%93%20AE%5E2

我們還可以獲取E點(diǎn)的坐標(biāo) (x_E%2C%20y_E)

x_E%20%3D%20x_a%20%2B%20(%20(x_b-%20x_a)*AE%20)%2FAB

y_E%20%3D%20y_a%20%2B%20(%20(y_b-%20y_a)*AE%20)%2FAB

然后我需要求得AB和CD的斜率?k_%7BAB%7Dk_%7BCD%7D

k_%7BAB%7D%20%3D%20(y_b%20-%20y_a)%2F(x_b%20-%20x_a)

k_%7BCD%7D%20%3D%20(-1)%2Fk_%7BAB%7D????? //這里要注意kAB為0的情況

然后求得CD和 x 軸的夾角

%E2%88%A0CDX%20%3D%20atan(k_%7BCD%7D)

這時(shí)候就可以求得C (x_c%2C%20y_c)和D(x_d%2C%20y_d)的坐標(biāo)

x_c%20%3D%20x_E%20%2B%20CE*cos(%E2%88%A0CDXs)

y_c%20%3D%20y_E%20%2B%20CE*sin%20(%E2%88%A0CDXs)

x_d%20%3D%20x_E%20-%20CE*cos(%E2%88%A0CDXs)

y_d%20%3D%20y_E%20-%20CE*sin%20(%E2%88%A0CDXs) //這里也要注意sin%20(%E2%88%A0CDXs)cos(%E2%88%A0CDXs)為nan的情況。

? ? ? ?至此,我們就求得了兩個(gè)圓的兩個(gè)交點(diǎn)坐標(biāo),然后只需要用這兩個(gè)點(diǎn)去第三個(gè)圓做驗(yàn)證,就可以獲得三個(gè)圓的交點(diǎn),也就是我們要求的未知點(diǎn)。

? ? ? ?當(dāng)我們基于rssi的三點(diǎn)定位算法實(shí)現(xiàn)藍(lán)牙無(wú)線定位時(shí),可按如下圖所示位置放置藍(lán)牙信號(hào)發(fā)射塔。


? ? ? ?在理想情況下,以三個(gè)定節(jié)點(diǎn)為圓心,各自與盲節(jié)點(diǎn)的距離為半徑的圓會(huì)交于一點(diǎn),但是實(shí)際測(cè)量中,因?yàn)橛姓`差因素,導(dǎo)致三組方程出現(xiàn)6個(gè)解(即三圓兩兩相交,產(chǎn)生6個(gè)交點(diǎn),如上圖。選取靠?jī)?nèi)的三個(gè)交點(diǎn)(即圖中的紅色區(qū)域),取它們的坐標(biāo)的平均值作為最終定位的盲節(jié)點(diǎn)坐標(biāo),即可完成定位。

二、信號(hào)塔設(shè)置

1. 配置BLE4.0模塊

? ? ? ?根據(jù)三點(diǎn)定位原理,本項(xiàng)目需要使用3個(gè)信號(hào)塔。3個(gè)信號(hào)塔的主體均為BLE4.0模塊,需要把BLE4.0模塊的AT指令設(shè)置為“從設(shè)備”。

方法為:

(1)給控制板刷一套空的程序。初始打開(kāi)arduino IDE或新建,都是空程序。

(2)按下圖所示連接電路,錯(cuò)誤的連接會(huì)導(dǎo)致模塊損壞。將藍(lán)牙模塊使用杜邦線連接到Bigfish擴(kuò)展板上,并將擴(kuò)展板插到控制板上。

(3)打開(kāi)Arduino的串口監(jiān)視器,輸入AT指令。

測(cè)試查詢、設(shè)置主從模式

注:該指令執(zhí)行后,會(huì)導(dǎo)致模塊延時(shí)500ms重啟。

BLE4.0模塊的完整AT指令集可以參考如何使用探索者通信模塊【https://www.robotway.com/h-col-141.html】

(4)信號(hào)塔的三個(gè)BLE4.0a藍(lán)牙模塊都設(shè)為從設(shè)備后,使用以下命令直接進(jìn)行配置。在查詢模塊的MAC地址時(shí),可以將查詢到底地址統(tǒng)一記錄在一個(gè)文本文件中,以便后續(xù)編寫(xiě)使用。(可參考《藍(lán)牙配置說(shuō)明.txt》

信號(hào)塔設(shè)備MAC地址:

以上地址可根據(jù)自己的BLE4.0a藍(lán)牙模塊進(jìn)行修改,詳細(xì)參考《藍(lán)牙配置說(shuō)明.txt》

2. 信號(hào)塔的安裝

將配置好的BLE4.0a藍(lán)牙模塊按照下圖所示與電池盒進(jìn)行連接,用于之后安裝在信號(hào)塔中(注:紅色正極線接藍(lán)牙模塊的3.3V,黑色負(fù)極線接藍(lán)牙模塊的GND,錯(cuò)誤的連接會(huì)導(dǎo)致模塊損壞)。


用零件將其固定。

這樣的信號(hào)塔需要做三個(gè)。


3. 資料下載

資料內(nèi)容:藍(lán)牙配置說(shuō)明.txt

資料下載鏈接:https://www.robotway.com/h-col-167.html


想了解更多機(jī)器人開(kāi)源項(xiàng)目請(qǐng)關(guān)注機(jī)器譜網(wǎng)站https://www.robotway.com







如何用藍(lán)牙實(shí)現(xiàn)無(wú)線定位--系統(tǒng)原理及信號(hào)塔設(shè)置的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
海宁市| 花莲市| 昌吉市| 砀山县| 库车县| 峨边| 布尔津县| 班玛县| 通渭县| 榆中县| 曲松县| 四川省| 应城市| 剑川县| 新邵县| 舟山市| 从化市| 庐江县| 婺源县| 南召县| 保德县| 宜兴市| 镇赉县| 兴海县| 郸城县| 陵水| 海淀区| 柳江县| 阿尔山市| 洞头县| 上饶县| 潜山县| 龙井市| 广汉市| 长海县| 云安县| 西和县| 林甸县| 宁武县| 漳州市| 张家川|