文档库 最新最全的文档下载
当前位置:文档库 › 基于51单片机的智能循迹避障小车 C源程序

基于51单片机的智能循迹避障小车 C源程序

项目名称: 系别:
智能小车
信息工程系
专业:11 电气工程及其自动化 姓名: 刘亮、崔占闯、韩康 指导老师: 王蕾
1 / 19

崔占闯联系邮箱:1308253761@https://www.wendangku.net/doc/7914217002.html,b5E2RGbCAP
目录
摘要: ...............................................................................................3 关键 词: .............................................................................................3p1EanqFDPw 绪论: .................................................................................................3DXDiTa9E3d
一、
系统设计 .............................................................................4RTCrpUDGiT 1.1、任务及要求 ...................................................................45PCzVD7HxA 1.2 车体方案认证与选择 ......................................................4jLBHrnAILg
二、硬件设计及说明 ....................................................................5xHAQX74J0X 2.1 循迹+避障模块 ..............................................................5LDAYtRyKfE 2.2 主控模块 ........................................................................6Zzz6ZB2Ltk 2.3 电机驱动模块 ................................................................6dvzfvkwMI1 2.4 机械模块 ........................................................................7rqyn14ZNXI 2.5 电源模块 .......................................................................7EmxvxOtOco 三、自动循迹避障小车总体设计………………………………..7 四、软件设计及说明 .....................................................................8SixE2yXPq5 4.1 系统软件流程图............................................................96ewMyirQFL 4.2 系统程序........................................................................9kavU42VRUs 五、系统测试过程 .......................................................................12y6v3ALoS89 六、总结 .......................................................................................13M2ub6vSTnP
2 / 19

七、附录:系统元器件..................................................................130YujCfmUCw
摘要
本设计主要有三个模块包括信号检测模块、主控模块、电机驱动模块。信号检测模块采用 红外光对管, 用以对有无障碍与黑线进行检测。 主控电路采用宏晶公司的 8051 核心的 STC89C52 单片机为控制芯片。电机驱动模块采用意法半导体的 L298N 专用电机驱动芯片,单片控制与传 统分立元件电路相比,使整个系统有很好的稳定性。信号检测模块将采集到的路况信号传入 STC89C52 单片机,经单片机处理过后对 L298N 发出指令进行相应的调整。通过有无光线接收 来控制电动小车的转向,从而实现自动循迹避障的功能。eUts8ZQVRd
关键词:智能循迹避障小车,STC89C52 单片机,L298N 驱动芯片,信号检测模 块,循迹避障
绪论
(一)智能小车的作用和意义 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。 近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自 然的过程中,制造能替代人劳动的机器一直是人类的梦想。 sQsAEJkW5T 随着科学技术的发展,机器人的感系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于 图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传 感器的核心器件是摄像管或 CCD,目前的 CCD 已能做到自动聚焦。但 CCD 传感器的价格、体积和使用方式上 并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是觉传感器种类越来 越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航一种实用 有效的方法。 GMsIasNXkA 机器人要实现自动导引循迹功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人 一个视觉功能。避障控制系统是基于自动导引小车系统,基于它的智能小车实现自动识别路线,判断并自 动避开障碍, 选择正确的行进路线。 使用传感器感知路线和障碍并作出判断和相应的执行动作。 TIrRGchYzg 该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、cpu、执行部分。 机器人要实现自动循迹避障功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路 线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只 要求粗略感知即可,所以可以舍弃昂贵的 CCD 传感器而考虑使用价廉物美的红外光电传感器来充当。智能 小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向。单片机驱动直流电机一般有两种方 案:第一,勿需占用单片机资源,直接选择有 PWM 功能的单片机,这样可以实现精确调速;第二,可以由 软件模拟 PWM 输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实 际情况,本文选择第二种方案。CPU 使用 STC89C52 单片机,配合软件编程实现。 7EqZcWLZNX (二)智能小车的现状 现智能小车发展很快,从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、 寻光入库、避崖等基本功能,这几节的电子设计大赛智能小车又在向声控系统发展。比较出名的飞思卡尔 3 / 19

智能小车更是走在前列。我此次的设计主要实现循迹避障这两个功能 lzq7IGf02E
一、系统设计
本组智能小车的硬件主要有以 STC89C52 单片机作为核心的主控器部分、 自动循迹+避障部 分、电机驱动部分。电机驱动部分和其他部分由一个电源通过串联供电。zvpgeqJ1hk 小车硬件系统示意图如下:
自动循迹+避 障模块
STC89C52 单片机
电机驱动模块
电源 5V
供电途径
功能控制
1.1、任务及要求
设计一个基于直流电机的自动循迹避障小车, 使小车能够自动检测地面黑色轨迹和道路两侧的挡板 (没 有黑线时) ,并沿着黑色轨迹和挡板行驶。NrpoJac3v1
检测(黑线)
软件控制
驱动电机
控制小车
1.2、车体方案认证与选择
方案一:自己动手制作电动车,一方面材料缺少,另一方面制作过程要花费大量的时间,而且同学中 手艺也不好,制作出来的小车还可能机械性能不好。考虑到时间与性能这两方面,我们放弃了这一方 案 1nowfTG4KI 方案二:购买小车全套零件,购买的小车全套零件具有组装完整的车架车轮、电机及其驱动电路。易 改装,好控制。机械性能有保障。fjnFLDa5Zo 小车图片如下:
4 / 19

综合考虑,最终选择方案二
二、硬件设计及说明
2.1 循迹+避障模块 我们选择四路红外探测 寻迹光电传感器
此模块是为智能小车、机器人等自动化机械装置提供一种多用途的红外线探测系统的解决方案。使用红外 线发射和接收管等分立元器件组成探头,并使用 LM339 电压比较器(加入了迟滞电路更加稳定)做为核心 器件构成中控电路。此系统具有的多种探测功能能极大的满足各种自动化、智能化的小型系统的应用。
tfnNhnE6e5
此模块的特点: 易于安装,使用简便; 4 路分别独立工作,工作时不受数量限制; 中控板与探头分开,安装位置不受限制; 模块高度≤10 毫米;
5 / 19

安全工作电压范围在 3 伏特至 6 伏特之间; 4 路全开工作电流 30 毫安至 55 毫安之间。HbmVN777sL 2.2 主控模块 我们采用宏晶公司的 STC89C52 单片机作为主控制器。STC89C52 是一个高速,低功耗,超强抗干扰的 8 位单 片机, 片内含 32k 空间的可反复擦写 100,000 次 Flash 只读存储器, 具有 4K 的随机存取数据存储器 (RAM) , 32 个 I/O 口,2 个 8 位可编程定时计数器,且可在线编程、调试,方便地实现程序的下载与整机的调试。
V7l4jRB8Hs
时钟电路和复位电路(与单片机构成最小系统) 1)采用外部时钟,晶振频率为 12MHZ 2)采用按键复位 2.3 电机驱动模块 电机 电机采用直流减速电机,直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部 由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。83lcPA59W9 可选用减速比为 1:74 的直流电机,减速后电机的转速为 100r/min。若车轮直径为 6cm,则小车的最 大速度可以达到 mZkklkzaaP V=2π r·v=2*3.14*0.03*100/60=0.314m/s 能够较好的满足系统的要求。 驱动 驱动模块采用专用芯片 L298N 作为电机驱动芯片,L298N 是一个具有高电压大电流的全桥驱动芯片,其响 应频率高,一片 L298N 可以分别控制两个直流电机。以下为 L298N 的引脚图和输入输出关系表。AVktR43bpw
图 L298N 外部引脚
表 1 L298N 输入输出关系 驱动电路的设计如图 2 所示:
6 / 19

图 2 L298N 电机驱动电路
L298N 的 5、7、10、12 四个引脚接到单片机上,通过对单片机的编程就可实现两个直流电机的 PWM 调速控 制。ORjBnOwcEd 2.4 电源模块 采用 4 节普通 1.5V 干电池单电源供电,采用串联方式同时给单片机与电机供电。
三、自动循迹避障小车总体设计
3.1 总体电路图
7 / 19

8 / 19

四、软件设计及说明
4.1 系统软件流程图
开始
前进


扫描 I/O 口, 是否检测到 黑线
扫描 I/O 口, 是否检测到 障碍

右 / 左行 进
左 / 右行 进

左 /右检测到 黑线
左 /右检测到 障碍
2MiJTy0dTT
4.2 循迹避障程序 #include #define uchar unsigned char #define uint unsigned int 9 / 19

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; //**********初始化定时器 中断***********// void init() { TMOD=0x01; TH0=(65536-100)/256; TL0=(65536-100)%256; EA=1; ET0=1; TR0=1; } //***********中断函数+脉宽调制***********// void timer0() interrupt 1 { if(t=50) {t=0;} } //******************直行******************// void qianjin() 10 / 19

{ zkb1=50; zkb2=50; } //***************左转函数 1***************// void turn_left1() { zkb1=0; zkb2=50; } //***************左转函数 2***************// void turn_left2() { zkb1=0; zkb2=50; } //***************右转函数 1***************// void turn_right1() { zkb1=50; zkb2=0; } //***************右转函数 2***************// void turn_right2() { zkb1=50; zkb2=0; } //***************循迹函数*****************// void xunji() { uchar flag; if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==0)&&(LSEN2==1)) { flag=0; } //*******直行*******// else if((RSEN2==1)&&(RSEN1==1)&&(LSEN1==0)&&(LSEN2==1))gIiSpiue7A { flag=1;} //***左偏 1,右转***// else if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==1)&&(LSEN2==1))uEh0U1Yfmh { flag=2; } //***右偏 1,左转***// else if((RSEN2==0)&&(RSEN1==0)&&(LSEN1==0)&&(LSEN2==1))IAg9qLsgBX { flag=3; } //***右偏 2,左转***// 11 / 19

else if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==0)&&(LSEN2==0))WwghWvVhPE { 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() { init(); zkb1=50; zkb2=50; while(1) { //******给电机加电启动******// IN1=1; IN2=0; IN3=1; IN4=0; ENA=1; ENB=1; while(1) { xunji(); //*********寻迹**********// } } }
五、系统测试过程
本小车能实现循迹避障功能,它能沿着地面上黑色轨迹行驶实现循迹功能,也能检测到跑道两侧的挡板, 沿挡板行驶实现避障功能。asfpsfpi4k 寻迹避障小车轨迹图介绍:轨道由循迹部分(黑线)和避障部分(道路两侧加挡板)两部分组成,小车先 12 / 19

进入循迹轨道,沿黑线行驶,到达两部分连接处进入避障轨道沿挡板行驶,从而实现寻迹和避障功能的展 示。轨道示意图如下:ooeyYZTjj1
为保证小车能正常行驶,循迹部分的黑线宽度应在 3.5 至 4cm。避障轨道的宽度应大于 20cm 小于 25cm。
BkeGuInkxI
六、总结
测试结果表明:本组智能小车能很好的完成了循迹和避障功能,循迹跑道是由黑色胶布在白色地面上 拉线完成,小车可以从 O 型跑道的任何段为起点,跑完全程。避障跑到是通过摆放障碍物,小车可以走出 障碍区间。PgdO0sRlMo
七、附录:系统元器件
L298N 模块/步进电机直流电机驱动模块/小车电机驱动模块/输出 5V 四路红外探测 寻迹光电传感器 寻迹小车 循迹避障模块 黑白线识别 51 单片机最小系统板/USB 下载程序/51 单片机开发板 智能小车底盘/寻迹小车/机器人/带码盘/强磁电机/ZK-2WD 四节五号电池板组 附带四节五号干电池 导线若干
13 / 19

14 / 19

15 / 19

16 / 19

17 / 19

18 / 19

19 / 19

相关文档
相关文档 最新文档