APP下载

基于STC89C52 单片机的智能寻迹避障小车

2019-10-15陈福彩东营职业学院

数码世界 2019年10期
关键词:小柱循迹右转

陈福彩 东营职业学院

本系统主要包括寻迹避障模块、电源模块、电机驱动模块、稳压模块等。为了能够更好地成系统的设计任务,我们采用三个轮的小车,车体是由左右两个轮以及后方的万向轮组成,其中左右两个轮各有一个电机驱动,结合电机驱动板L298N,通过主控制器的处理,来控制电机的运转,实现小车的前进、后退、左转、右转等等。后轮是一个万向轮,起到支撑小车的作用。

系统硬件方面采用入门级单片机STC89C52[2]作为核心控制器,4 个8 位并行I/O 端口的设计也便于功能拓展。采用E18-D80NK 光电传感器(传感器分布如表1 所示)。采用25GA-370车模专用的轮胎,搭配具有调速性能好、编程简单的直流电机,每分钟转速达到280 转,工作电压为6V,系统采用12V 电池盒进行供电,另外为了稳定电池的电压输出,特增加稳压模块LM2596S,输入电压为3.2-35V,输出电压为1.25-30V,电压值连续可调,输出电流比较稳定。

表1 传感器分布表

系统应用程序设计包括三部分,左循迹部分、避障部分、小柱检测部分。左循迹部分包括四种情况:

第一,如果传感器1、2 都能检测到木板,这时小车已向右偏离轨道,需要通过程序设置其向左偏转;

第二,如果传感器1、2 都没有检测到木板,这时小车已经向左偏离轨道,需要设置其向右偏;

第三,如果传感器1 检测不到木板,传感器2 能够检测到木板,说明此时小车正沿木板左边沿前进;

第四,如果传感器1 检测到木板,传感器2 检测不到木板,说明此时正在通过直角拐弯处,需要设置其向右偏转一个小的角度。

因为系统设定的是左循迹,所以避障部分第一块木板是不需要设置程序去处理的,直接就能绕过,通过调节传感器3,使其检测到第二块木板之后,能够向右偏转90 度,然后直行前进,这时需要传感器5 进行检测,待检测到已过木板轨道的边缘时,为了避免因为小车速度过快而造成传感器检测到地面之后小车掉落地面的情况发生,设置传感器检测到地面以后让小车后退一小段距离,然后向左偏转90 度直行,直行的过程中速度小一点,在这个过程中传感器4 一直在检测第二块挡板,当检测不到第二块挡板时,左转90 度,然后再直行,再用传感器5 去检测,如果检测到已过木板轨道的边缘,为防止掉落还是后退一段距离,右转90 度,接着左循迹直线行驶。因为系统设置的是左循迹,并且第三块挡板与木板边缘之间的距离大于小车的宽度,所以不用考虑第三块挡板,可以直接左循迹通过。避障部分流程图见图1。

图1 避障部分流程图

小柱部分一共有6 个小柱,其中小柱1、2 是一对,小柱3、4是一对,小柱5、6 是一对,要求每一对小柱只能有一个留在木板轨道上。

小车通过小柱部分首先需要检测轨道上是否有小柱1,传感器6 用于检测轨道是否含有小柱1,如果检测到有小柱1,为避免小车直行时左侧的传感器会撞到小柱1,先让小车右转15 度,直行一段距离以后,再左转15 度恢复直线行驶,直到传感器5 检测到已过木板轨道的边缘时,停一下,后退一小段距离,左转90 度,直行一段距离,当传感器6 检测不到小柱1 时,左转90 度直行,一直到传感器5 检测到已过木板轨道的边缘时,停一下,后退一小段距离,右转90 度,左循迹直行,因为小柱3 与木板边缘的距离比小车的宽度大,所以不需要考虑有小柱3 的情况,直接左循迹就可以通过,如果此时传感器3 检测到小柱4,右转90 度,然后直行一小段,期间利用传感器5 检测或者延时控制),直行直到检测到木板边缘,左转90 度,直行一小段(延时控制),左转90 度,直行直到检测到木板边缘(利用传感器5 进行检测),右转90 度左循迹直行。如果检测到小柱5 或者小柱6 ,都可以左循迹通过。

如果没有检测到小柱1,小车在通过挡板3 以后,左循迹通过小柱2,有小柱3也可以左循迹直接通过,如果传感器3检测到小柱4,控制方法同上。同样检测到小柱5 或者小柱6,都可以左循迹直接通过。

经过调试与运行,最终实现的效果是从起点开始出发,左循迹,遇到挡板绕过,遇到小柱绕过,最终顺利到达终点。通过系统调试发现此系统存在的不足有小车运行过程中的实际速度不太稳定,跟程序中提前预设的速度有差值,需要改进。

猜你喜欢

小柱循迹右转
基于DFT算法的电力巡检无人机循迹检测系统设计
志向
日出(外一首)
为“右转必停”叫好
基于离散傅里叶变换的多旋翼无人机循迹检测系统设计
浅谈基于机器视觉和姿态检测的循迹智能车
新乡:小城失败者
基于农村主路交叉路口优先右转汽车的碰撞预警系统初步设计
懵懂少年惹性病 较劲的父母毁了两个家
兄弟情