无线电轨智能车校内赛 | 无线电轨车模是如何感知赛道上的障碍的?

无线电轨车模如何感知路障的存在呢?

01 线电轨


一、问题/目标

  在这次夏令营中的无线电轨智能车比赛中, 前两个基本任务是没有设置赛道路障的。  第三个任务是赛道上存在 一个横断路障,   车模需要能够自行检测到直道上的路障存在, 并绕过路障继续前行。  这个路障表面呈现红色, 长度和赛道的宽度相同, 为45厘米,  宽度和高度都是 20厘米。  那么, 车模如何感知赛道上路障并进行绕行的呢?

GM1690614951_1280_720.MPG|_-6
▲ 图1.1.1 路障的尺寸

▲ 图1.1.1 路障的尺寸

二、基本原理

  如果车模能够提前感知前面有障碍物, 便可以执行一个固定的转弯动作来绕过这个障碍。 虽然在转弯过程中车模需要离开赛道, 但只要在离开之前车模上的法拉电容充满电, 这个转弯动作是可以完成的, 并在赛道上继续充电前行。  在给定的硬件包中包含一个光电检测管。  它可以通过发送红外光线, 根据障碍物反射光来判断前方是否存在障碍物。 传感器后面还有可以设定灵敏度的螺丝。 三针的接口分别是地线, 电源线和 信号线。  它可以直接与控制板上的光电管接口相连,  这个光电管接口与舵机接口在电源接口的左边,  光电管插座从上往下分别是 信号线, 5V电源和地线。

GM1690615731_1280_720.MPG|_-6

  下面在主控板的原理图上, 找到光电管信号线接入 ESP32的管脚。  这个信号线的名称为 SRN。  找到ESP32 管脚定义,  可以看到它接入芯片第五管脚,  这个管脚在 ESP32 数据手册上显示,  对应的 IO 口的序号为 39。 这很重要, 在软件编程中需要用到这个序号。

GM1690617535_1280_720.MPG|_-9

三、应用举例

  下面通过软件来测试一下路障传感器。   前面是引入 machine 中的 Pin 模块, 以及 time 软件模块。  接下来定义光电管输入管脚,  根据原理图, 我们知道对应ESP32 39 管脚,  该管脚为输入模式。  下面是控制板上的 LED 输出管脚, 对应的 IO2 ,  程序运行前输出 测试信息。  主程序循环中,  通过 value 读取 光电管对应管脚的高低状态, 并设置LED对应的管脚的状态与其相同。 因此这一句话中的两个 value 函数, 里面的是读取 光电管的状态, 外部是设置 LED 的状态。   当 LED 管脚为低电平的时候, LED被点亮, LED 管脚为高电平的时候, LED 熄灭。

GM1690621365_1280_720.MPG|_-10

  在Thonny环境中, 新建一个文件, 把该程序拷贝到编辑窗口, 运行。 此时可以看到电路板上 D1 对应的 LED的状态。  它的状态随着传感器前面是否有物体而变化。 比如这里吧传感器针对这桌面, 靠近时对应的信号线为高电平, LED熄灭。 远离时,对应的信号线为低电平, LED点亮。   通过小改锥调整传感器后面的多圈电位器, 可以调整探测距离的远近。

GM1690621953_1280_720.MPG|_-4

from machine                import Pin
import time

BARRIER = Pin(39, Pin.IN)
led0 = Pin(2, Pin.OUT)

print("Test BARRIER sensor:")

while True:
    led0.value(BARRIER.value())

    time.sleep(0.1)

四、练习/实验

  大家可以根据上述原理, 测试传感器不同的检测距离,  在软件中读取传感器信号的状态, 启动车模转向过程。   正确使用这些传感器可以使得车模更好的感知外部环境。 使得它运行更加可靠、稳定。

GM1690622225_1280_720.MPG|_-4

02 座资料


一、讲座视频

无线电轨车模如何感知路障的存在呢?

二、讲座资料


■ 相关文献链接:

● 相关图表链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/131991004