第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
每个传感器站扫描并且角度为100º(下面的代码中为“max_angle”)
#define min_angle 0
#define max_angle 100
如上所述,对象的唯一功能是检测对象并将测量的距离,角度和id对象列表发送给主站。一个对象的id(下面代码中的“this_node”)必须大于3.
每个对象扫描并且角度为170º,如上所述,可以更新最大和最小检测距离。
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文章
2636浏览量
73014 -
超声波
+关注
关注
63文章
3014浏览量
138357
发布评论请先 登录
相关推荐
评论