stm32智能小车红外避障

本文代码使用 HAL 库。

前言


一、红外避障模块介绍

红外避障模块是一种常用于智能小车、机器人等设备中的传感器模块,用于检测周围环境中的障碍物。它通常 由红外发射器和红外接收器组成 ,并能够通过红外光线来探测周围物体的距离和位置。

正前方有障碍时绿灯 (L1)亮起,使用前通过调节红外模块的旋钮,控制红外检测的距离。顺时针扭动缩短测距的长度,逆时针增加测距的长度

在这里插入图片描述

二、避障原理

红外传感器具有一对红外发射管(白灯)和接收管(黑灯)。当发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线会反射回来被接收管接收。它常用于安装在小车上,判断前方是否有障碍物。可以通过电位器设置阀值。正前方有障碍物时绿灯亮起,OUT 引脚为低电平,反之为高电平。

红外传感器利用物体的反射性质,在一定范围内,发射出去的后果外线,会因为传播距离越来越远二逐渐减弱,最后消失。如果有障碍物,红外线遇到障碍物会被反射到达传感器的接收头。我们本次实验采用的是 2 路红外传感器分别连接在 STM32 主控板的PA4, PA6 口。我们可以通过检测两端的电平判断障碍物的情况,并作出避障操作。

三、原理图分析

在 stm32 智能小车上有 2 个红外避障模块,在红外避障模块的上面有一个光敏模块,可以检测光照强度。

红外避障寻光模块原理图:

一般就 3 个引脚,VCC(电源引脚),GND(接地),OUT1(信号输出引脚)
OUT2 是光敏模块的输出引脚。
在这里插入图片描述

stm32 底层驱动板电路图:

左,右红外避障模块发射端口:

INT5 -------------> PA4
INT7 -------------> PA6
在这里插入图片描述

四,cubeMX 配置

  1. 引脚配置,将 PA4,PA6设置为输入引脚。
    在这里插入图片描述

  2. 其他基础的配置可以参考我之前的文章。

五,编写代码

对于小车运动函数的代码(前进后退,左转,右转)可以参考我之前的文章:
stm32智能小车前进,后退,左转,右转,停止

int right_ir=0;	//右红外  PA4
int left_ir=0;	//左红外  PA6


/* 红外检测
 * Car_sport 是小车运动函数
*/
void IR_Avoid(void)
{	
    left_ir = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_6);
    right_ir = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_4);
	
	/* 检测:低电平---有障碍物 */
    if((left_ir == 0) && (right_ir == 1))	//左边有障碍物,右边没有,右转
    {
       	printf("left yes,  right no\r\n");
		Car_sport(4,300);
    }
    else if((left_ir == 1) && (right_ir == 0))	//右边有障碍物,左边没有,左转
    {
       printf("left no,  right yes\r\n");
	   Car_sport(3,300);
    }
    else if((left_ir == 0) && (right_ir == 0))	//左右都有障碍物,后退
    {
       printf("left yes,  right yes\r\n");
	   Car_sport(0,300);
    }
}

总结

下篇文章为大家介绍 智能小车循迹。

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖果罐子♡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值