第1步:它是如何工作的?
定位系統由三個帶有超聲波探測器的傳感器站形成,id_node 1,2和3形成一個掃過角度的矩形或正方形如圖所示,它們之間的距離是已知的。
const float distancebetween1and2 = 60.0;
const float distancebetween2and3 = 75.0;
這些傳感器測量id_node大于3且具有超聲波探測器的其他物體的距離和角度掃描角度為170°。
所有這些都使用無線通信將距離,測量角度和id_node發送到另一個主站進行分析,使用三角計算計算物體的位置并識別它們。/p》
為了避免干擾,主站以這種方式同步所有超聲波探測器,每個探測器只測量一個超聲波探測器時刻
在此之后并使用串行通信,主站將信息(角度,距離,id_object)發送到處理草圖以繪制結果。
步驟2 :如何配置三個傳感器站和對象
每個傳感器站的唯一功能是檢測對象并發送距離列表測量到主站的角度和id節點。
因此,您必須更新允許的最大檢測距離(“valid_max_distance”)和最小值(“valid_min_distance”)(厘米),以改善檢測和限制檢測區域:
int valid_max_distance = 80;
int valid_min_distance = 1;
這些傳感器站的id節點(下面代碼中的“this_node”)為1,2和3,主站的id節點為0 。
const uint16_t this_node = 01; // Address of our node in Octal format (Node01,Node02, Node03)
const uint16_t other_node = 00; //Address of the master node (Node00) in Octal format
每個傳感器站掃描并且角度為100o(下面的代碼中為“max_angle”)
#define min_angle 0
#define max_angle 100
如上所述,對象的唯一功能是檢測對象并將測量的距離,角度和id對象列表發送給主站。一個對象的id(下面代碼中的“this_node”)必須大于3.
每個對象掃描并且角度為170o,如上所述,可以更新最大和最小檢測距離。
const uint16_t this_node = 04; // Address of our node in Octal format (Node04,Node05, 。..)
const uint16_t other_node = 00; // Address of the master node (Node00) in Octal format
int valid_max_distance = 80;
int valid_min_distance = 1;
#define min_angle 0
#define max_angle 170
步驟3:如何配置主站
主站的功能是接收傳感器站和對象的傳輸,并使用串行端口將結果發送到處理草圖以繪制它們。此外,以這種方式同步所有物體和三個傳感器站,每次只測量其中一個以避免干擾。
Firstable你必須更新傳感器1和2之間的距離(厘米)和2到3之間的距離。
const float distancebetween1and2 = 60.0;
const float distancebetween2and3 = 70.0;
草圖以下列方式計算對象的位置:
對于對象的所有傳輸( id_node大于3)在超聲波傳感器(id_node 1,2或3)的每次傳輸中尋找相同的距離。
所有這些點形成一個“候選者”列表(距離,角度,id_node)作為一個對象的位置(草圖中的“process_pointobject_with_pointssensor”)。
對于前一個列表中的每個“候選者”,函數“candidate_selected_between_sensor2and3”從超聲波傳感器2和3的角度計算它們中的哪個匹配以下三角條件(參見圖片2和3)
float distancefroms2 = sin(radians(angle)) * distance;
float distancefroms3 = cos(radians(angle_candidate)) * distance_candidate;
// Trigonometry condition 1
abs(distancefroms2 + distancefroms3 - distancebetween2and3) 《= float(max_diference_distance)
如上所述,對于前一列表的每個“候選”,從超聲波傳感器1的角度計算函數“candidate_selected_between_sensor1and2” 2其中哪一個與以下三角關系匹配(見圖2和圖3)
float distancefroms1 = sin(radians(angle)) * distance;
float distancefroms2 = cos(radians(angle_candidate)) * distance_candidate;
// Trigonometry condition 2
abs(distancefroms1 + distancefroms2 - distancebetween1and2) 《= float(max_diference_distance)
只有候選者(距離,角度,id_node)匹配三角測量條件1和2是傳感器站1,2和3檢測到的識別對象。
之后,主站將結果發送到處理草圖繪制它們。
步驟4:材料清單
一個傳感器站或一個對象所需的材料清單是以下內容:
納米板
超聲波傳感器
微型伺服電機
NRF24L01無線模塊
NRF24L01適配器
以及主站的材料清單如下:
Nano board
NRF24L01無線模塊
NRF24L01適配器
-
探測器
+關注
關注
14文章
2646瀏覽量
73057 -
超聲波
+關注
關注
63文章
3021瀏覽量
138434
發布評論請先 登錄
相關推薦
評論