灵活避障 快速循迹

发布者:CaptivatingEyes最新更新时间:2011-02-21 手机看文章 扫描二维码
随时随地手机看文章

智能救援车是机器,必须给它安装各种传感器,车子才能感知外边的精彩世界,按照"大脑"即微控制器的控制完成相应的任务。在完成智能救援车单片机最小系统的基础上增加避障电路、循迹电路,智能救援车就能按要求走路了。

一、避障电路(见图1)

 

避障电路采用漫反射式光电开关进行避障。光电开关是集发射头与接收头于一体的检测开关,其工作原理是根据发射头发出的光束,被物体反射,接收头据此做出判断是否有障碍物。当有光线反射回来时,输出低电平;当没有光线反射回来时,输出高电平。单片机根据接收头电平的高低做出相应控制,避免小车碰到障碍物。由于接收管输出TTL电平,有利于单片机对信号的处理。

避障电路由双向总线驱动器U8(74HC245)、E门检测光电开关U10(E3F-DS30C4)、右避障光电开关U11(E3F-DS30C4)、左避障光电开关U12(E3F-DS30C4)、前避障光电开关U13(E3F-DS30C4)组成。4个光电开关的安装:底层最前面一个光电开关U13检测前方障碍物,左侧光电开关U12检测左侧障碍物,右侧光电开关U11检测右侧障碍物,上层右侧光电开关U10负责检测场地的E门,4个光电开关配合完成避障和寻门的作用。具体的安装位置见图3。

调试:

 

1.为保证绝大多数情况下智能救援车行走在道路中间,左右避障光电开关探测距离应保证一致。具体方法是:左右避障光电开关在装车之前接5V电源,调节光电开关的微调电位器,使障碍物在光电开关的前方距离为8cm时,光电开关输出低电平,测试点为B3、B4,如图2所示。测试方法见图4。

2.前避障光电开关用于前方障碍物检测,为保证前方障碍物检测的可靠性应作相应调试:调试方法与要点1方法相同,测试点为B5,如图2所示。

3.E门避障光电开关专门用于场地E门的检测,调试方法与要点1相同,使障碍物在光电开关的前方距离为10cm时,光电开关输出低电平,测试点为B2,如图2所示,各避障光电开关的检测距离如表1所示。

 

 

 

 

 

 

 

二、循迹电路(见图5)

 

智能救援车的循迹采用2个光电开关U15(E3F-DS30C4)、U16(E3F-DS30C4)来完成,其安装图见图5。当光电开关检测到浅色物体时,光线反射较强,输出低电平。当光电开关检测到深色物体时,光线反射较弱,输出高电平。单片机根据2个光电开关电平的高低做出相应控制,实现循迹。图7所示为智能救援车的循迹偏左时的状态:液晶显示left;右侧发光二极管亮,指示下一步车要右转。图8所示为智能救援车的循迹偏右时的状态:液晶显示right;左侧发光二极管亮,指示下一步车要左转。

 

 

 

 

 

调试:

 

1.为保证智能救援车循迹的可靠性,经测试左右循迹光电开关作如下调试:左右循迹光电开关在装车之前接5V电源,调节光电开关的微调电位器,使光电开关在循迹线的上方距离为7cm时,光电开关输出低电平,电平测试点为B6、B7,如图2所示;距离测试如图10所示。

2.因循迹线采用宽度为20mm黑色线条,为保证循迹的可靠性,用于循迹的2个光电开关的发射头应排在内侧,接收头在外侧,发射头中心点间距为18mm,左右循迹光电开关距黑线边缘1mm。如图5所示。

3.循迹光电开关距离循迹线实际距离为2mm,如图10所示。左右循迹光电开关测试点及距离见表2。这就是避障、循迹电路,只要选择好避障、循迹电路用的漫反射式光电开关,照图1和图6接线;调试方法得当,智能救援车就能避障、循迹。

图8 循迹偏右

 

引用地址:灵活避障 快速循迹

上一篇:让救援车探测和搬运金属
下一篇:打造最小系统平台

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved