摘要:人流身高测量仪说明本方案为利用北醒公司产品和板结合开发出的小设备。其作用为统计人流数量以及相应目标身高高度。人流身高测量原理雷达启动后,设置安装高度身高限度下限值。考虑人行走时身高会浮动,尽量让脚落在光斑左右,探测到最高值,减小误差。
人流身高测量仪说明
本方案为利用北醒公司产品 TFmini-Plus 和 Arduino-UNO 板结合开发出的小设备。
其作用为:统计人流数量以及相应目标身高高度。
试验设备及接线
2.1 实验设备
Benewake TFmini-Plus 标版
TFmini-Plus 详细参数见 TFmini-Plus 使用说明。
Arduino-UNO 板
电脑
电脑作为程序编写上传和数据显示功能。数据显示功能后期可进行升级优化,例如增加显示屏显示当前人流
量和身高数据,用扬声器语音播报“欢迎光临”等问候语。
连接线
杜邦线——用于 Plus 与 UNO 板连接(Plus 端子可拆)
USB 方口数据连接线——用于 UNO 板与电脑连接
2.2接线
TFmini Plus 产品线序定义为:红色+5V,黑色 GND,绿色 TX,白色 RX;TFmini-Plus 供电电压为 5V,所以直接连接 Arduino 板的 5V 和 GND 即可,其他雷达请查阅产品规格书,确保供电正常;串口通信连接需要注意,对于 Arduino UNO 板雷达的 TX 端接板子的 pin 2 口(软串口 Serial1 的 RX),雷达的 RX 端接板子的 pin 3 口(软串口 Serial1 的 TX),这个跟后文中的程序编写有关。
人流身高测量原理
雷达启动后,设置安装高度、身高限度、下限值。
当人进入探测区域时,数据会出现上升,输出人数,每出现此情况,人数加 1,输出人数。
当人处于探测区域时,数据会在身高限定以上波动,此时比较赋值 Height,Height 为人在探测区域内数据波动的最大值。
当人走出探测区域时,数据会出现下降,输出 Height。
程序框图
程序编写
该例程功能的实现至少需要两个串口,一个接受雷达的数据,另一个用于将数据输出到电脑端显示出来。可以复制以下代码粘贴到 IDE 程序编辑窗口。
#include
SoftwareSerial Serial1(2,3); //定义软串口名称为 Serial1,并把 pin2 定为 RX,pin3 定为 TX
/对于有多个串口的 arduino 板如 DUE 板,注释掉上面两段代码,直接使用 Serial1 串口/
int dist;//雷达实测距离值
int strength;//雷达信号强度,强度在 100 以下数据不可信
int IH=230;//雷达安装高度(需设置),需要根据实际黑色物体进行校正
int H;//身高值
int h=0;//上一次身高值
int check;//校验数值存放
int i;
int Number=0;//人数
int Height=0;//身高高度最大值
int up=50;//身高限定(需设置),物体身高在此值以上才有效
int down=40;//下限值(需设置),高度在下限值以下突破身高限度才会计数,防止高度处在恰好身高限度时导
致数据波动,产生错误数据
int uart[9];//存放雷达测量的数据
const int HEADER=0x59;//数据包帧头
void setup()
{
Serial.begin(115200);//设置 arduino 与电脑连接串口的波特率
Serial1.begin(115200);//设置雷达与 arduino 连接串口的波特率
}
void loop()
{
if (Serial1.available())//查看串口是否有数据输入
{
if(Serial1.read()==HEADER)//判断数据包帧头 0x59
{
uart[0]=HEADER;
if(Serial1.read()==HEADER)//判断数据包帧头 0x59
{
uart[1]=HEADER;
for(i=2;i<9;i++)//存储数据到数组
{
uart=Serial1.read();
}
check=uart[0]+uart[1]+uart[2]+uart[3]+uart[4]+uart[5]+uart[6]+uart[7];
if(uart[8]==(check&0xff))//按照协议对收到的数据进行校验
{
dist=uart[2]+uart[3]*256;//计算距离值
strength=uart[4]+uart[5]*256;//计算信号强度值
H=IH-dist;//计算身高值
/测量人数/
/原理:当数据从下限值突破身高限定值则人数加 1/
if(H>=up&h
Number=Number+1;
h=H;
Height=H;
Serial.print("Number = ");
Serial.print(Number);//输出数量值
Serial.print("t");
}
if(H>=up&h>=down)//当人处于测量区域内,通过比较得出此期间的最大值
{
if(Height
Height=H;
}
}
if(H
{
Serial.print("Height = ");
Serial.print(Height);//输出身高值
Serial.print("n");
h=H;
Height=0;
}
// Serial.print("H = ");
// Serial.print(H);//输出身高值
// Serial.print("t");
// Serial.print("dist = ");
// Serial.print(dist);//输出雷达测试距离值
// Serial.print("t");
// Serial.print("strength = ");
// Serial.print(strength);//输出信号强度值
// Serial.print("n");
}
}
}
}
}
数据查看
将程序上传到 Arduino 板,打开串口监视器,即可看到雷达实时探测的人流数量和相应目标的身高高度,如图:
注意事项
安装高度需要根据实际黑色物体进行校正,因为不同颜色物体反射率不同雷达接收的信号不同。
当多人并走时,雷达光斑只能打到一个物体,只能计数加 1,适用单人出入的场景。
如果光斑未完全打到头顶,身高数据会出错。考虑人行走时身高会浮动,尽量让脚落在光斑左右,探测到最高值,减小误差。
缓冲区域为“身高限定-下限值”,避免探测高度恰好在“身高限定”的物体时,数据波动产生重复人数加 1的情况。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106183.html
摘要:上周,在旧金山召开的人工智能国际较高级会议上,来自微软亚洲研究院的郑宇博士及其团队的论文首创性的将时空数据与深度学习结合起来,利用时空深度残差网络用于预测城市人流问题。 上周,在旧金山召开的人工智能国际较高级会议AAAI 2017上,来自微软亚洲研究院的郑宇博士及其团队的论文Deep Spatio-Temporal Residual Networks for Citywide Crowd F...
摘要:定类变量定类就是将给数据定义一个类别。它是比定类变量层次更高的变量,因此也具有定类变量的特质,即区分类别,。它除了包括定序变量的特性外,还能确切测量同一类别各个案高低大小次序之间的距离,因而具有加与减的数学特质。 在这个世界上有无限多的数据,而每种数据都有属于自己的属性。那么做数据挖掘数据分析的时候,要对杂乱无章数据由一定的敏感度,学会分析数据属于哪一种类型也是一种技能。多留意身边的一...
摘要:长三角联合师资招聘专场万人线下大会通知长三角联合师资招聘专场万人线下大会通知此时主办方已经和一起进行了两周的前期准备工作,经过反复测试,主办方认为智能防疫平板的人脸识别测温消毒健康码审核后台管理等功能完全能为本次大会提供可靠的保障。2020年11月20日,上海接连发现3起确诊新冠病例,而两天之后,是连续举办了近20年的长三角联合师资招聘专场预定的开幕时间。办,还是不办?这个抉择让主办方倍感焦...
阅读 1159·2021-10-11 10:59
阅读 1950·2021-09-29 09:44
阅读 833·2021-09-01 10:32
阅读 1391·2019-08-30 14:21
阅读 1840·2019-08-29 15:39
阅读 2953·2019-08-29 13:45
阅读 3509·2019-08-29 13:27
阅读 1982·2019-08-29 12:27