第1步:它是如何工作的?
定位系統(tǒng)由三個(gè)帶有超聲波探測器的傳感器站形成,id_node 1,2和3形成一個(gè)掃過角度的矩形或正方形如圖所示,它們之間的距離是已知的。
const float distancebetween1and2 = 60.0;
const float distancebetween2and3 = 75.0;
這些傳感器測量id_node大于3且具有超聲波探測器的其他物體的距離和角度掃描角度為170°。
所有這些都使用無線通信將距離,測量角度和id_node發(fā)送到另一個(gè)主站進(jìn)行分析,使用三角計(jì)算計(jì)算物體的位置并識(shí)別它們。/p》
為了避免干擾,主站以這種方式同步所有超聲波探測器,每個(gè)探測器只測量一個(gè)超聲波探測器時(shí)刻
在此之后并使用串行通信,主站將信息(角度,距離,id_object)發(fā)送到處理草圖以繪制結(jié)果。
步驟2 :如何配置三個(gè)傳感器站和對(duì)象
每個(gè)傳感器站的唯一功能是檢測對(duì)象并發(fā)送距離列表測量到主站的角度和id節(jié)點(diǎn)。
因此,您必須更新允許的最大檢測距離(“valid_max_distance”)和最小值(“valid_min_distance”)(厘米),以改善檢測和限制檢測區(qū)域:
int valid_max_distance = 80;
int valid_min_distance = 1;
這些傳感器站的id節(jié)點(diǎn)(下面代碼中的“this_node”)為1,2和3,主站的id節(jié)點(diǎn)為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
每個(gè)傳感器站掃描并且角度為100o(下面的代碼中為“max_angle”)
#define min_angle 0
#define max_angle 100
如上所述,對(duì)象的唯一功能是檢測對(duì)象并將測量的距離,角度和id對(duì)象列表發(fā)送給主站。一個(gè)對(duì)象的id(下面代碼中的“this_node”)必須大于3.
每個(gè)對(duì)象掃描并且角度為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:如何配置主站
主站的功能是接收傳感器站和對(duì)象的傳輸,并使用串行端口將結(jié)果發(fā)送到處理草圖以繪制它們。此外,以這種方式同步所有物體和三個(gè)傳感器站,每次只測量其中一個(gè)以避免干擾。
Firstable你必須更新傳感器1和2之間的距離(厘米)和2到3之間的距離。
const float distancebetween1and2 = 60.0;
const float distancebetween2and3 = 70.0;
草圖以下列方式計(jì)算對(duì)象的位置:
對(duì)于對(duì)象的所有傳輸( id_node大于3)在超聲波傳感器(id_node 1,2或3)的每次傳輸中尋找相同的距離。
所有這些點(diǎn)形成一個(gè)“候選者”列表(距離,角度,id_node)作為一個(gè)對(duì)象的位置(草圖中的“process_pointobject_with_pointssensor”)。
對(duì)于前一個(gè)列表中的每個(gè)“候選者”,函數(shù)“candidate_selected_between_sensor2and3”從超聲波傳感器2和3的角度計(jì)算它們中的哪個(gè)匹配以下三角條件(參見圖片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)
如上所述,對(duì)于前一列表的每個(gè)“候選”,從超聲波傳感器1的角度計(jì)算函數(shù)“candidate_selected_between_sensor1and2” 2其中哪一個(gè)與以下三角關(guān)系匹配(見圖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檢測到的識(shí)別對(duì)象。
之后,主站將結(jié)果發(fā)送到處理草圖繪制它們。
步驟4:材料清單
一個(gè)傳感器站或一個(gè)對(duì)象所需的材料清單是以下內(nèi)容:
納米板
超聲波傳感器
微型伺服電機(jī)
NRF24L01無線模塊
NRF24L01適配器
以及主站的材料清單如下:
Nano board
NRF24L01無線模塊
NRF24L01適配器
-
探測器
+關(guān)注
關(guān)注
14文章
2642瀏覽量
73043 -
超聲波
+關(guān)注
關(guān)注
63文章
3018瀏覽量
138417
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論