人人范文网 范文大全

智能循迹小车

发布时间:2020-03-03 08:03:08 来源:范文大全 收藏本文 下载本文 手机版

专业创新实践实训报告

课题名称 成员 院系 专 业 指导教师

智能循迹小车

*** 航空工程学院 电子信息科学与技术专业

***

2016年5月28日

目录

1 实训任务与内容 ..............................................................1 1.1实训任务 ...................................................................1 1.2 实训内容 ..................................................................1 2 模块设计 ....................................................................2 2.1 电路模块设计 ..............................................................2 2.1.1 硬件电路设计 ............................................................2 2.1.2 软件程序设计 ............................................................3 2.2 电机驱动模块设计 ..........................................................5 2.2 电源模块的设计 ............................................................6 2.3 传感器模块的设计 ..........................................................6 3 测试结果 ....................................................................7 4 心得体会 ....................................................................8 附录1电路原理图的总图 ........................................................9 附录2 源程序 .................................................................10

1 实训任务与内容 1.1实训任务

1)熟悉51单片机集成开发环境,运用C语言编写工程文件;

2)熟练应用所选用单片机的内部结构、资源、以及软硬件调试的设备的基本方法; 3)自行构建基于单片机的最小系统,完成相关硬件电路的设计实现; 1.2 实训内容

基于AT89C52单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线的走向实现快速稳定的循线行驶。小车系统以AT89C52单片机位系统控制处理器;采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。

1 2 模块设计 2.1 电路模块设计 2.1.1 硬件电路设计

图2.1 驱动系统的原理图

图2.2传感器系统的原理图

图2.3电源系统的原理图

我们选用的是三个光电开关进行寻迹。光电开关电源线接入5V的电源,三个光电开关分别接入单片机的P1.0口-P1.2口。采用两个L298N芯片作为电机驱动芯片,步进电机模块的引脚ENA和ENB分别连接P0.6口和P0.7口;直流电机模块的引脚ENA和ENB分别连接P0.4口和P0.5口。模块的INT1-INT4连接单片机的P0.0-P0.3口,另一驱动模块IN为P2.0-P2.3口,OUT1-OUT4连接两个直流电机。

小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号,即进入判断处理程序,先确定4个探测器中的哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是右面第一级传感器或右面第二级传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。 2.1.2 软件程序设计

图2.4 驱动系统的流程图

3 系统总体软件设计综上所述,本系统主要实现的各个模块算法为:电机驱动算法,寻迹算法,测速算法,LCD显示算法。系统总体程序框图如图11所示。其中在小车寻迹的过程中,会不断调用测速算法,并通过LCD将实时速度显示出来。各个数的调用关系为了控制电机1和电机2PWM信号的占空比,设置了两个变量DutyCycle1和DutyCycle2,这两个变量的值可以作为控制电机移动函数的参数控制电机的速度。规定当DutyCycle的值小于time_count时电机的使能端输出1,反之输出0,这样就可以改变PWM信号占空比,控制电机的转速了。小车转向控制小车转向控制::小车移动中前进比较容易控制,只要让两个电机同时正转就可以了。控制小车转向时有两种策略,第一种是一个电机正转而另一个不转,第二种是一个电机正转而另一个反转。在测试中我们发现采用第一种方法当小车运动时,运动一侧的轮子会带动不运动一侧的轮子迫使小车继续运动。所以我们采用了第二种控制小车转向的方法。控制电机转向的有两个方向位,DIR_L和DIR_R,它们不同状态和电机转向之间的关系表1表所示:小车速度和方向控制的函数都已经封装在一起,通过入口参数可以进行调节。

图2.5 智能循迹小车运行图

图2.6 智能循迹小车图

2.2 电机驱动模块设计

驱动模块采用专用芯片L298N作为电机驱动芯片,L298N是一个具有高电压大电流的全桥驱动芯片,其响应频率高,一片L298N可以分别控制两个直流电机,驱动电路的设计如图L298N的

5、

7、

10、12四个引脚接到单片机上,通过对单片机的编程就可实现两个直流电机的PWM调速以及正反转控制。

L298驱动电机介绍:

L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个桥式的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的I/O端口来提供模拟时序信号,但在本驱动电路中用L298来提供时序信号,节省了单片机I/O 端口的使用。L298N 接脚Pin1 和Pin15 可与电流侦测用电阻连接来控制负载的电路;OUTl、OUT2 和OUT

3、OUT4 之间分别接2个步进电机;in1~in4 输入控制电位来控制电机的正反转;Enable则控制电机停转。

采用L298N作为电机驱动芯片。L298N具有高电压、大电流、响应频率高的全桥驱动芯片,一片 L298N可以分别控制两个直流电机,并且带有控制使能端。该电机驱动芯片驱动能力强、操作方便,稳定性好,性能优良。L298N的使能端可以外接电平控制,也可以利用单片机进行软件控制,满足各种复杂电路的需要。另外,L298N的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。

5 2.2 电源模块的设计

在本系统中,需要用到的电源有单片机的5V,L298N芯片的电源5V和电机的电源7-15V。所以需要对电源的提供必须正确和稳定可靠。

方案一:用9V的锌电源给前、后轮电机供电,然后使用7805稳压管来把高电压稳成5V分别给单片机和电机驱动芯片供电。这种接法比较简单,但小车的电路功耗过大会导致后轮电机动力不足。

方案二:采用双电源。为了确保单片机控制部分和后轮电机驱动的部分的电压不会互相影响,要把单片机的供电和驱动电路分开来,即:用直流电12v供给单片机,后轮电机的电源用5V供电,这样有助于消除电机干扰,提高系统的稳定性。

基于以上分析,我们选择了方案二,采用双电源供电。 2.3 传感器模块的设计

TC端是传感器工作控制端,为高电平时,发光二极管不工作,传感器休眠,为低电平时,传感器启动。Signal端为检测信号输出,当遇到黑线,黑线吸收大量的红外线,反射的红外线很弱,光敏三极管不导通,Signal输出高电平;当遇到白线,与黑线相反,反射的红外线很强,使光敏三极管导通,Signal输出低电平。

这种探测方法,即利用红外线在不同颜色的表面特征,具有不同的反射性能,汽车行驶过程中接收地面的红外光。当红外光遇到白色路线,地板发生漫反射,安装在小型车的反射光接收器接收;如果是遇到黑色路线,红外光将被黑线吸收,安装在小车上的接收管没有收到红外光。控制器会根据是否收到反射的红外光为判断依据来确定的黑线的位置和小车的路线。红外探测器距离通常是不应超过15厘米的。红外发射和接收红外线感应器,可以使自己或直接使用集成红外探头。调整左右传感器之间的距离,两探头距离约等于黑线宽度最合适,选择宽度为3-5厘米的黑线。该传感器的灵敏度是可调的,传感器有时遇到黑线却不能送出相应的信号,通过调节传感器上的可调电阻,适当的增大或减小可改变灵敏度。另外,循迹传感器的放置也是有讲究的,有两种方法,一种是两个都是放置在黑线内侧紧贴黑线边缘,第二种是都放置在黑线的外侧,同样紧贴黑线边缘。本设计采用第二种方法。

单片机烧录程序后,就可以执行循迹指令了。如果小车向前行驶时向左偏离了黑线,那么右边传感器会产生一个高电平,单片机判断这个信号,然后向右拐回到黑线。两传感器输出信号为低电平时,小车前进。如果小车向右偏离黑线,左边传感器产生一个高电平,单片机判断这个信号,然后向左拐。这样,小车一定不会偏离黑线。若两个光电传感器同时输出的信号为高电平,即单片机判断的都为高电平时,小车向前直走。

6 3 测试结果

从直线段O点出发,让小车智能循迹至N点,记录直点线段O点至A点的所用时间,记录A点至B点的时间,依次记录B点至C点、C点至D点、D点至E点、E点至F点、F点至N点的时间,重复测试5次,并记录时间。

图3.1 智能循迹小车跑道图

起点位于弯道的运行时间要长于起点位于直道的运行时间。导致这个现象出现的原因是由于弯道的曲率变化给小车的循迹调整带来了较大的影响,对应小号的调整时间业比起于直道的测试过程要长些。有时,小车会稍微偏离跑道。对传感器的灵敏度需要更加仔细的调整。

7 4 心得体会

根据本次设计要求,我们小组系统地阅读了大量的资料,并认真分析了设计课题的需求,还系统学习了51系列单片机的工作原理及其使用方法,并独自设计智能小车的整个项目。虽然条件艰苦,但经过不懈钻研和努力,购买到了所有所需的元器件,并系统的进行了多项试验,最终做出了整个小车的硬件系统,然后结合课题任务和小车硬件进行了程序的编制,本系统能够基本满足设计要求,能够较快较平稳的是小车沿引导线行驶,但由于经验能力有限,该系统还存在着许多不尽人意的地方有待于进一步的完善与改进。

通过本次课题设计,不仅是对我们课本所学知识的考查,更是对我的自学能力和收集资料能力以及动手能力的考验。本次课程设计使我们对一个项目的整体设计有了初步认识,还认识了几种传感器,并能独立设计出其接口电路,再有对电路板的制作有了一定的了解,并学会了使用Protel设计电路。本次智能循迹小车课程设计使我们意识到了实验的重要性,在硬件制作和软件调试的过程中,出现了很多问题,最终都是通过实验的方法来解决的。还有以前对程序只是一个很模糊的概念,通过这次的智能循迹小车的课程设计使我对程序完全有了一个新的认识,并能使用C熟练的进行编程了。通过本次智能循迹小车的课程设计,极大的锻炼了我们的思考和分析问题的能力,并对单片机有了一个更深的认识。

总之,在这次的课程设计的过程中,无论是对于学习方法还是理论知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践运作能力。

8 附录1 电路原理图的总图

图3.1 电路原理图总图

9 附录2 源程序

#include #include #define uchar unsigned char #define uint unsigned int sbit in1=P1^0; sbit in2=P1^3; sbit pwm1=P1^2; sbit pwm2=P1^4; sbitzuo=P0^7; //红外传感器1 sbitzhong=P0^6; //红外传感器2 sbit you=P0^2; uchar count=0; uchar dj1=0; uchar dj2=0; void advance() {in1=1; in2=1; dj1=15; dj2=15; //红外传感器3 //小车前进子函数 } void left() {in1=1; in2=1; dj1=18; dj2=7; } void right() {in1=1; in2=1; dj1=7; dj2=18; } void left1() {in1=1; in2=0; dj1=15; dj2=18; } void right1() {in1=0; in2=1; //小车左转微调子函数1 //小车右转微调子函数1 //小车左转微调子函数2 //小车右转微调子函数2 dj1=18; dj2=15;

10 } void timer0_init() //0.5ms 定时器设置 {TMOD=0X01; TH0=0XFE; TL0=0X33; EA=1; ET0=1; TR0=1; } void timer0() interrupt 1 //定时器中断函数 {TH0=0XFE; TL0=0X33; count++; if(count=320) {count=0; } //PWM脉宽调速 } void main() //主函数 //初始化 {timer0_init(); P0=0XFF; P1=0X02; P2=0X00; P3=0X00; while(1) {if((zuo==0)&&(zhong==1)&&(you==0)) //小车在正确的轨道上,小车前进 {advance(); } if((zuo==0)&&(zhong==1)&&(you==1)) //小车偏左,执行右转微调子函数1 {right(); } if((zuo==1)&&(zhong==1)&&(you==0)) //小车偏右,执行左转微调子函数1 {left(); } if((zuo==1)&&(zhong==0)&&(you==0)) //小车右偏比较大,执行左转微调子函数2 {left1();

11 } if((zuo==0)&&(zhong==0)&&(you==1)) //小车左偏比较大,执行右转微调子函数2 {right1(); } if((zuo==1)&&(zhong==1)&&(you==1)) //小车行驶在十字交叉出口,直走前进 {advance(); } if((zuo==0)&&(zhong==0)&&(you==0)) //上轨道 {advance(); } } }

小车跑出轨道,直走前进,重新

智能循迹小车

智能循迹小车实验报告

蔽障循迹智能小车毕业论文

智能循迹小车___设计报告

基于单片机的智能循迹小车外文翻译

毕业设计论文基于单片机的循迹智能小车的设计与实现

智能小车课程设计

智能小车设计

智能小车设计

智能小车设计

智能循迹小车
《智能循迹小车.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题 智能小车循迹 小车
点击下载本文文档