2_寻找一种更好的避障-测距方案

最近的这个项目需要用到避障,所以认认真真地了解一下避障以及找到一种更精准的测距避障方式。
避障需要通过测距来完成,测得与物体距离过近时选择停住或掉头或转弯或其他则为避障。

一、常见测距方式及测量原理

常见的测距有:红外测距、激光测距、超声波测距、雷达测距;根据测量的原理可分为两类:
(1)根据光强的强弱计算距离
红外测距:的测距基本原理为发光管发出红外光,光敏接收管接收前方物体反射光,据此判断前方是否有障碍物。根据发射光的强弱可以判断物体的距离,它的原理是接收管接收的光强随反射物体的距离而变化的,距离近则反射光强,距离远则反射光弱。
(2)根据时间差计算距离
激光测距:原理为测量激光往返目标所需要时间,然后通过光速c =299792458m/s 和大气折射系数n 计算出距离D。
超声波测距:原理是测量超声波发射装置发出超声波到接收器接到超声波时的时间差,而超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S。
雷达测距:雷达使用的是电磁波,其测距与激光测距的原理很相似,测量发射脉冲与回波脉冲之间的时间差,因电磁波以光速传播,据此就能计算出目标的精确距离。

二、撸起袖子着手干

两种原理各选了一个,先试试怎么样再说!
(1)红外测距
红外测距使用的是GP2Y0E03,
在这里插入图片描述
该模块使用IIC通信方式,可设定两种取值范围,理论上4~64cm和4-128cm,基本够用。但红外测距的一个缺点就是可能会受环境中的其他红外线的干扰,不过在室内使用的话问题不大。
对应的引脚连接可查看实际模块引脚对应查看《GP2Y0E03 Datasheet》
在这里插入图片描述

附:其他参考资料
main函数:

 int main(void)
 {	
	 u8 ifok;
	 u8 high,low,shift;
	 float dis;
	 delay_init();	    	 	
	 uart_init(9600);	 
	 GP2_IIC_Init();
	
	while(1)
	{
		ifok=GP2_IIC_Write_1Byte(0x80,0x35,0x02);//设置量程为0-64cm
		shift=GP2_IIC_Read_1Byte(0x80,0x35);
		high=GP2_IIC_Read_1Byte(0x80,0x5E);
		low=GP2_IIC_Read_1Byte(0x80,0x5F);
		dis=(float)(high*16+low)/16/4;         
				
		printf("Distance: %f cm\r\n",dis);
		delay_ms(200);
	}
 }

附上整个程序文件:STM32F1.GP2Y0E03
(2)超声波模块
超声波模块使用的是HC-SR04,

在这里插入图片描述

该模块没有什么通信方式,直接输出脉冲,通过对脉冲的高电平的测量得出声波往返的时间t,加之声波的波速是340m/s,即可计算出被测物体的距离。
在这里插入图片描述
main函数:

 int main(void)
 {	
	 float dis=1.0;
	delay_init();	    	  
	LED_Init();		  	
	uart_init(115200);
	Timerx_Init(5000,7199); 
	UltrasonicWave_Configuration();//初始化超声波模块
	while(1)
	{	
		dis=UltrasonicWave_StartMeasure();//启动并测量
		printf("Distance:%f cm\r\n",dis);
		delay_ms(200);
	}
 }

附上整个程序文件:STM32F1.HC-SR04

三、测量结果对比

实际测量距离约为10cm,
HC-SR04测量结果:
在这里插入图片描述
GP2Y0E03测量结果:
在这里插入图片描述
误差都会有,但看起来这个GP2Y0E03稳一点!
这样的精度也够了,所以最后决定采用这个GP2Y0E03来实现测距,然后进一步实现避障!

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值