循迹避障小车设计报告
LT
2
3
4
摘要
本设计主要有三个模块包括信号检测模块、主控模块、电机驱动模块。信号检测模块采用红外光对管,用以对有无障碍与黑线进行检测。主控电路采用宏晶公司的8051核心的STC89C52单片机为控制芯片。电机驱动模块采用意法半导体的L298N专用电机驱动芯片,单片控制与传统分立元件电路相比,使整个系统有很好的稳定性。信号检测模块将采集到的路况信号传入STC89C52单片机,经单片机处理过后对L298N发出指令进行相应的调整。通过有无光线接收来控制电动小车的转向,从而实现自动循迹避障的功能。
关键词:智能循迹避障小车,STC89C52单片机,L298N驱动芯片,信号检测模块,循迹避障
绪论
(一)智能小车的作用和意义
自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。
随着科学技术的发展,机器人的感系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,
5
因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航一种实用有效的方法。
机器人要实现自动导引循迹功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。避障控制系统是基于自动导引小车系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路线和障碍并作出判断和相应的执行动作。
该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、cpu、执行部分。机器人要实现自动循迹避障功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外光电传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小
6
车的行进方向。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方案。CPU使用STC89C52单片机,配合软件编程实现。
(二)智能小车的现状
现智能小车发展很快,从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几节的电子设计大赛智能小车又在向声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。我们此次的设计主要实现循迹避障这两个功能。
一、系统设计
本组智能小车的硬件主要有以STC89C52单片机作为核心的主控器部分、自动循迹+避障部分、电机驱动部分。电机驱动部分和其他部分由一个电源通过串联供电。
小车硬件系统示意图如下:
7
自动循STC89C52 电机驱电源5V 供电1.1、任务及要求
功能控
设计一个基于直流电机的自动循迹避障小车,使小车能够自动检测地面黑色轨迹和道路两侧的挡板(没有黑线时),并沿着黑色轨迹和挡板行驶。
检测(黑线) 软件控制 驱动电机 控制小车
1.2、车体方案认证与选择
方案一:自己动手制作电动车,一方面材料缺少,另一方面制作过程要花费大量的时间,而且同学中手艺也不好,制作出来的小车还可能机械性能不好。考虑到时间与性能这两方面,我们
8
放弃了这一方案
方案二:购买小车全套零件,购买的小车全套零件具有组装完整的车架车轮、电机及其驱动电路。易改装,好控制。机械性能有保障。
小车图片如下:
综合考虑,最终选择方案二
二、硬件设计及说明
2.1循迹+避障模块
9
我们选择四路红外探测 寻迹光电传感器
此模块是为智能小车、机器人等自动化机械装置提供一种多用途的红外线探测系统的解决方案。使用红外线发射和接收管等分立元器件组成探头,并使用LM339 电压比较器(加入了迟滞电路更加稳定)做为核心器件构成中控电路。此系统具有的多种探测功能能极大的满足各种自动化、智能化的小型系统的应用。 此模块的特点: 易于安装,使用简便;
4 路分别独立工作,工作时不受数量限制; 中控板与探头分开,安装位置不受限制; 模块高度≤10 毫米;
安全工作电压范围在 3伏特至 6 伏特之间; 4 路全开工作电流 30 毫安至 55 毫安之间。 2.2主控模块
10
我们采用宏晶公司的STC89C52单片机作为主控制器。STC89C52是一个高速,低功耗,超强抗干扰的8位单片机,片内含32k 空间的可反复擦写100,000 次Flash 只读存储器,具有4K 的随机存取数据存储器(RAM),32 个I/O口,2个8位可编程定时计数器,且可在线编程、调试,方便地实现程序的下载与整机的调试。
时钟电路和复位电路(与单片机构成最小系统)
1)采用外部时钟,晶振频率为12MHZ 2)采用按键复位
2.3电机驱动模块
电机
电机采用直流减速电机,直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。
可选用减速比为1:74 的直流电机,减速后电机的转速为100r/min。若车轮直径为6cm,则小车的最大速度可以达到
V=2πr·v=2*3.14*0.03*100/60=0.314m/s 能够较好的满足系统的要求。 驱动
驱动模块采用专用芯片L298N 作为电机驱动芯片,L298N 是一个具有高电压大电流的全桥驱动芯片,其响应频率高,一片L298N可以分别控制
11
两个直流电机。以下为L298N的引脚图和输入输出关系表。
图L298N外部引脚 表1 L298N输入输出关系
驱动电路的设计如图2 所示:
图2 L298N电机驱动电路
L298N 的5、7、10、12 四个引脚接到单片机上,通过对单片机的编程就可实现两个直流电机的PWM调速控制。
2.4电源模块
12
采用4节普通1.5V干电池单电源供电,采用串联方式同时给单片机与电机供电。
三、自动循迹避障小车总体设计
3.1 总体电路图
13
14
四、软件设计及说明
4.1系统软件流程图
开始 前否 扫描I/O右是 左/右/左/是 左/右扫描I/O否
15
4.2循迹避障程序 #include #define uchar unsigned char #define uint unsigned int unsigned char zkb1=0 ; //**左边电机的占空比**// unsigned char zkb2=0 ; //**右边电机的占空比**// unsigned char t=0; //**定时器中断计数器**// sbit LSEN2=P2^0; sbit LSEN1=P2^1; sbit RSEN1=P2^2; sbit RSEN2=P2^3; //**传感器***/ sbit IN1=P1^0; sbit IN2=P1^1; sbit IN3=P1^2; sbit IN4=P1^3; sbit ENA=P1^4; sbit ENB=P1^5; //**********初始化定时器 16 中断 ***********// void init() { TMOD=0x01; TH0=(65536-100)/256; TL0=(65536-100)%256; EA=1; ET0=1; TR0=1; } //***********中断函数***********// void timer0() interrupt 1 { if(t +脉调制宽 t++; if(t>=50) {t=0;} } //************************************// void qianjin() { zkb1=50; zkb2=50; } //***************左1***************// void turn_left1() { zkb1=0; zkb2=50; } //***************左2***************// void turn_left2() { 18 直转函转函行 数 数 zkb1=0; zkb2=50; } //***************1***************// void turn_right1() { zkb1=50; zkb2=0; } //***************2***************// void turn_right2() { zkb1=50; zkb2=0; } //********************************// void xunji() { uchar flag; 右转右转循迹函数 数 数 19 函函 if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==0)&&(LSEN2==1)) { flag=0; } //*******直行*******// else if((RSEN2==1)&&(RSEN1==1)&&(LSEN1==0)&&(LSEN2==1)) { flag=1;} //***左偏1,右转***// else if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==1)&&(LSEN2==1)) { flag=2; } //***右偏1,左转***// else if((RSEN2==0)&&(RSEN1==0)&&(LSEN1==0)&&(LSEN2==1)) { flag=3; } //***右偏2,左转***// else if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==0)&&(L 20 SEN2==0)) { flag=4;} //***左偏2,右转***// switch (flag) { case 0:qianjin(); break; case 1:turn_right1(); break; case 2:turn_left1(); break; case 3:turn_left2(); break; case 4:turn_right2(); break; default: break; } } //********************************// void main() { 21 主程序 init(); zkb1=50; zkb2=50; while(1) { //******给电机加电启动******// IN1=1; IN2=0; IN3=1; IN4=0; ENA=1; ENB=1; while(1) { xunji(); //*********寻迹**********// } } } 五、系统测试过程 本小车能实现循迹避障功能,它能沿着地面上黑色轨迹行驶实现循迹功能,也能检测到跑道两侧的挡板,沿挡板行驶实现避障功能。 22 寻迹避障小车轨迹图介绍:轨道由循迹部分(黑线)和避障部分(道路两侧加挡板)两部分组成,小车先进入循迹轨道,沿黑线行驶,到达两部分连接处进入避障轨道沿挡板行驶,从而实现寻迹和避障功能的展示。轨道示意图如下: 为保证小车能正常行驶,循迹部分的黑线宽度应在3.5至4cm。避障轨道的宽度应大于20cm小于25cm。 六、总结 测试结果表明:本组智能小车能很好的完成了循迹和避障功能,循迹跑道是由黑色胶布在白色地面上拉线完成,小车可以从O型跑道的任何段为起点,跑完全程。避障跑到是通过摆放障碍 23 物,小车可以走出障碍区间。 七、附录:系统元器件 L298N模块/步进电机直流电机驱动模块/小车电机驱动模块/输出5V 四路红外探测 寻迹光电传感器 寻迹小车 循迹避障模块 黑白线识别 51单片机最小系统板/USB下载程序/51单片机开发板 智能小车底盘/寻迹小车/机器人/带码盘/强磁电机/ZK-2WD 四节五号电池板组 附带四节五号干电池 导线若干 24 因篇幅问题不能全部显示,请点此查看更多更全内容