当前位置:首页 >> 信息与通信 >>

智能小车课程设计


陕西理工学院毕业设计论文

.

智能巡线小车的设计(A)
杨斌
(陕理工机械工程学院测控技术与仪器专业 072 班,陕西 汉中 723003)

指导老师:梁应选 [摘要] 本次毕业设计分为四个模块: 电源模块、 路面检测模块、 单片机最小系统 、 电机驱动模块。电源模块是采用 12V 电源双路供电

,一路直接供给电机,一路经过稳压 电路输出 5V 电源给 LM324、单片机和 L298N。循迹模块是采用三个单反射式红外传感器 TCRT5000 并排安装,来检测路面情况,输出给单片机 TTL 电平信号。单片机最小系统是 满足单片机工作的系统。电机驱动选择的是驱动芯片 L298 直接驱动两个直流减速电机, 并采用 PWM 调节速度,达到两个电极不同速度,从而控制小车的行驶速度。 [关键词] 单片机 电源 路面检测 电机驱动 PWM

陕西理工学院毕业设计论文

Smart Patrol Line Vehicle
Yangbin (Grade 07,Class 02, Major Technique of Measuring Control and Instrument,Mechanical Engineering
Dept.,Shaanxi University of Technology,Hanzhong 723003,Shaanxi)

Tutor:Liang yingxuan
Abstract:The graduation project is divided into four modules: power supply module, the

road detection module, the smallest single chip system, the motor drive module. 12V power supply module is the use of dual power supply, direct supply of the motor all the way, all the way through the 5V output voltage regulator to power the LM324, MCU and L298N. Tracking module is the use of three single-reflection infrared sensor TCRT5000 side by side, to detect the road conditions, the output TTL level signal to the microcontroller. Minimum system MCU is to meet the minimum system work system. Motor driver chips L298 is selected to drive two DC gear motor directly, and use PWM to adjust the speed to achieve two electrodes at different speeds to control car speed.
Key words:MCU

power supply

the road detection

Motor driver

PWM

陕西理工学院毕业设计论文





1 引言 ..................................................... 1
1.1 智能小车的意义和作用 ....................................1 1.2 智能小车的现状 ..........................................2 1.3 论文各部分的主要内容 ....................................2

2 方案论证与选择 .......................................... 3
2.1 任务 ....................................................3 2.2 电源模块的设计 ..........................................3 2.3 路面检测模块的设计 ......................................4 2.3.1 传感器类型选择 .....................................4 2.3.2 红外传感器方案 .....................................4 2.3.3 电压比较器选择 .....................................5 2.4 控制电机方案比较 ........................................5 2.5 电机驱动方案的比较 ......................................5 2.6 主控制芯片选择 ..........................................6 2.7 本章小结 ................................................6

3 硬件电路的设计 .......................................... 7

I

陕西理工学院毕业设计论文

3.1 总体设计 ................................................7 3.2 单片机最小系统 ..........................................7 3.2.1 时钟电路 ...........................................8 3.2.2 复位及复位电路 .....................................9 3.3 路面检测模块 ...........................................12 3.3.1 传感器 TCRT5000 介绍 ...............................12 3.3.2 比较器 LM324 ......................................13 3.3.3 具体电路 ..........................................14 3.3.5 TTL 电平 ..........................................16 3.4 电源模块 ...............................................17 3.5 电机驱动模块 ...........................................18 3.5.1 电机驱动芯片 L298N ................................18

4 软件设计 ............................................... 20
4.1 PWM ...................................................20 4.2 主函数程序设计 .........................................22 4.3 寻迹子函数程序设计 .....................................23 4.4 调速子程序 .............................................25

5 整体调试 ............................................... 28
5.1 测试方法及仪器: .......................................28

II

陕西理工学院毕业设计论文

致谢 ..................................................... 30

参考文献 ................................................. 31

外文翻译 ................................................. 32

附录 A 硬件连接图 ......................................... 44

附录 B 硬件清单 ........................................... 45

附录 C 程序清单 ........................................... 46

III

陕西理工学院毕业设计论文

1 引言
1.1 智能小车的意义和作用
自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、 宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活 方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人 类的梦想。 随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自 动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各 种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要 通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像 管或 CCD,目前的 CCD 已能做到自动聚焦。但 CCD 传感器的价格、体积和使用方式上并 不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一 种实用有效的方法。 机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线 相当给机器人一个视觉功能。避障控制系统是基于自动导引小车(AVG—auto-guide vehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正 确的行进路线。使用传感器感知路线和障碍并作出判断和相应的执行动作。 该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部 分、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引 线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动 躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗 略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器 来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速 度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有PWM 功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占 用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文 选择第二种方案。CPU使用STC89C52单片机,配合软件编程实现。

第1页

共 48 页

陕西理工学院毕业设计论文

1.2 智能小车的现状
现智能小车发展很快, 从智能玩具到其它各行业都有实质成果。 其基本可实现循迹、 避障、检测贴片、寻光入库、避崖等基本功能,这几届的电子设计大赛智能小车又在向 声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。我此次的设计主要实现循 迹、检测铁片、显示小车行走时间这三个功能。

1.3 论文各部分的主要内容
第1章对智能循迹小车意义和作用,现状进行简单阐述。 第2章介绍了该智能循迹小车系设计方案比较和选择,分析了各模块的功能。 第3章阐述了智能小车系统的硬件电路的设计,其中包括电源模块、路面检测模块、 单片机最小系统、电机驱动模块,以及一些辅助电路。 第4章首先介绍了该系统的软件编程,以及程序调试过程中所用到的程序调试软件 及其调试环境。 最后总结部分说明了本论的主要内容,举出了在系统测试过程中所发现的问题,并 提出了可能的解决方案。

第2页

共 48 页

陕西理工学院毕业设计论文

2 方案论证与选择
2.1 任务
设计一个基于单片机控制的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并 沿着黑色车轨迹行驶。系统方案方框图如图 2.1 所示

检测黑线

软件控制

驱动电机

控制小车

图 2.1 小车工作原理框图

设计要求: 基本要求:实现小车的自动循迹,能前进、左转弯、右转弯、后退,检测沿途的铁 片并显示铁片数目跟小车行走时间。 (按照程序预设) ; 扩展部分:实现小车的避障功能(如时间充足) ; 主要的设计内容: 1:电源模块的设计。 2:路面检测模块的设计。 3:单片机最小系统的设计。 4:电机驱动模块的设计。

2.2 电源模块的设计
方案 1:采用单电源供电,通过单电源同时对单片机和直流电机进行供电,此方案 的优点是,减少机身的重量,操作简单,其缺点是,这样会使单片机的波动变大,影响 单片机的性能,稳定性比较弱。 方案 2: 采用双电源供电, 通过两个独立的电源分别对单片机和直流电机进行供电, 此方案的优点是,减少波动,稳定性比较好,可以让小车更好的运作起来,唯一的缺点 就是会增加小车的重量。 综合以上的优缺点,本设计决定采用第二种方案。

第3页

共 48 页

陕西理工学院毕业设计论文

2.3 路面检测模块的设计 2.3.1 传感器类型选择
循迹模块对于智能巡线小车来说就像来说有如人的眼睛对于人,是提供给小车的 “眼睛” ,此类光电传感器可以分为:可见光传感器、红外传感器、紫外线传感器等(此 处不考虑光电耦合器件和位置敏感器件, 由于它们占用太多的 MCU 资源, 用起来不方便) 。 方案 1:可见光传感器是基于可见光源的传感器,它结构简单、设计成熟,但是它 工作在可见光波段,容易被外界干扰。 方案 2:红外光传感器。红外线是波长为 830nm~950nm 的电磁波,自然环境物理 在该波段的辐射量是很微弱的,所以红外反射式传感器受外界干扰较小,可靠性高。设 计技术成熟,应用广泛。 方案 3:紫外线传感器。在自然环境下该类传感器很难受干扰,可靠性高,但是它 价格昂贵。 所以我们最终选择方案二, 即红外光传感器作为传感器检测模块的基本器件。

2.3.2 红外传感器方案
循迹主要是检测路面情况,利用光的反射原理,当光线照射在白在线,反射量比较 大,反之,照在黑在线,由于黑色对光的吸收,反射回来的量比较少,这样就可以判断 黑带轨道的走向。为此我们产生以下三种方案。 方案 1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变 化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发 射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值 经过比较器就可以输出高低电平。 但是这种方案受光照影响很大,不能够稳定的工作。因此我们考虑其它更加稳定的 方案。 方案 2:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红 外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线 则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高 电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易 受外界光线的影响,因此我们放弃了这个方案。 方案 3: 采用 TCRT50000 光电传感器, 该传感器模块是基于 TCRT5000 红外光电传感 器设计的一款红外反射式光电开关,传感器采用高发射功率红外光电二极管和高灵敏度

第4页

共 48 页

陕西理工学院毕业设计论文

光电晶体管组成,输出的信号经施密特电路整形,稳定可靠。

2.3.3 电压比较器选择
市场上可以做电压比较器的运放,实在是太多,根据实验室现有条件以及器件选择 经济并且能满足使用要求的原则, 本次电压比较器选择实验室现有的 LM324, 此器件价 格便宜,并且带有真差动输入的四运算放大器。

2.4 控制电机方案比较
方案 1: 采用步进电机作为该系统的驱动电机。 由于其转过的角度可以精确的定位, 可以实现小车前进路程和位置的精确定位。虽然采用步进电机有诸多优点,步进电机的 输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适 用于小车等有一定速度要求的系统。经综合比较考虑,我们放弃了此方案。 方案 2:采用小型直流减速电机。直流减速电机转动力矩大,体积小,重量轻,装 配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组, 可以产生较大扭力。 为了能够较好的满足系统的要求,我们选择了方案 2。

2.5 电机驱动方案的比较
方案 1:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行 调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可 靠性不高。 方案 2:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但 电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一 般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。 方案 3:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路 结构和原理简单,加速能力强,采用由达林顿管组成的 H 型桥式电路(如图 2.1a)。用 单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种 电路由于工作在管子的饱和截止模式下,效率非常高,H 型桥式电路保证了简单的实现 转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM 调速技术。现市面上有很多此种芯片,我选用了 L298N(如图 2.1b)。 这种调速方式有调速特性优良、调整平滑、调速范围广、超载能力大,能承受频繁
第5页 共 48 页

陕西理工学院毕业设计论文

的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用 功率三极管作为功率放大器的输出控制直流电机。

a H 型桥式电路 图 2.1

b L298N 实物图

2.6 主控制芯片选择
方案 1:可以采用 ARM 为系统的控制器,优点是该系统功能强大,片上外设集成度 搞密度高,提高了稳定性,系统的处理速度也很高,适合作为大规模实时系统的控制核 心。 方案 2:选用 51 系列的单片机,AT89S52 单片机算术运算功能强,软件编程灵活、 自由度大,功耗低、体积小、技术成熟,成本也比 ARM 低。 根据自己的知识能力, 实验室现有条件, 选用 STC89C52RC 单片机作为本次毕业设计 的主控芯片,而且此芯片烧程序也不需要专用的下载器,另一方面节省了成本,只要安 装 USB 转串口驱动,在普通的计算机上就可以烧写程序,很方便。

2.7 本章小结
经过积极论证, 最后采用以 STC89C52 单片机为控制核心, 黑白线信号经过 TCRT5000 输出高低电压信号,再经过 LM324 电压比较器输出给单片机标准 TTL 电平信号,而单片 机根据输入口高低电平的变化来执行相对应指令,使小车达到稳定的行驶。

第6页

共 48 页

陕西理工学院毕业设计论文

3 硬件电路的设计
3.1 总体设计
智能小车采用前轮驱动,后轮左右两边各用一个直流电机驱动,调制前面两个轮子 的转速起停从而达到控制转向的目的,前轮是万象轮,起支撑的作用。将循迹光电对管 分别装在车体下的左中右,分别检测来自路面的信息,比如当只有左边的传感器检测到 黑线的时候(即对应的输出是高电平的时候) ,通过主控制器控制左边的电机速度慢一 点,同时右边的速度快一点,就可以完成小车的转弯,为了使小车平稳的过渡弯道,可 以将相应的电机的占空比调节范围小一点,这样可以避免急转弯,对小车的稳定行驶也 有作用的。

复位电路 STC89C52

路面检测电路

时钟电路

电机驱动电路

图 3.1 硬件总体电路框图

3.2 单片机最小系统
此 次 设 计 所 用 的 STC89C52 是 一 种 带 8K 字 节 闪 烁 可 编 程 可 檫 除 只 读 存 储 器 (FPEROM-Flash Programmable and Erasable Read Only Memory )的低电压,高性能 COMOS8 的微处理器,俗称单片机。该器件采用 ATMEL 搞密度非易失内存制造技术制造, 与工业标准的 MCS-51 指令集和输出管脚相兼容。

第7页

共 48 页

陕西理工学院毕业设计论文

图 3.2 STC89C52 单片机

3.2.1 时钟电路
STC89C52 内部有一个用于构成振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方 式的时钟电路如图 3.3(a) 所示,在 XTAL1 和 XTAL2 引脚上外接定时组件,内部振荡器 就产生自激振荡。定时组件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频 率可以在 1.2~12MHz 之间选择,电容值在 5~30pF 之间选择,电容值的大小可对频率 起微调的作用。 外部方式的时钟电路如图 3—3(b)所示,XTAL1 接地,XTAL2 接外部振荡器。对外 部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于 12MHz 的方波信号。 片内时钟发生器把振荡频率两分频,产生一个两相时钟 P1 和 P2,供单片机使用。

(a)内部方式时钟电路 图 3.3 时钟电路

(b)外部方式时钟电路

本次采用的是内部方式。C1,C2 为 30PF 的瓷片电容。
第8页 共 48 页

陕西理工学院毕业设计论文

3.2.2. 复位及复位电路
(1)复位操作 复位是单片机的初始化操作。 其主要功能是把 PC 初始化为 0000H, 使单片机从 0000H 单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误 使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。 除 PC 之外,复位操作还对其它一些寄存器有影响,它们的复位状态如表一所示。
表 3.1 一些寄存器的复位状态 寄存器 PC ACC PSW SP DPTR P0-P3 IP IE TMOD 复位状态 0000H 00H 00H 07H 0000H FFH XX000000B 0X000000B 00H 寄存器 TCON TL0 TH0 TL1 TH1 SCON SBUF PCON 复位状态 00H 00H 00H 00H 00H 00H 不定 0XXX0000B

(2)复位信号及其产生 RST 引脚是复位信号的输入端。 复位信号是高电平有效, 其有效时间应持续 24 个振 荡周期(即二个机器周期)以上。若使用颇率为 12MHz 的晶振,则复位信号持续时间应超 过 2us 才能完成复位操作。 产生复位信号的电路逻辑如图 3.4 所示:

图 3.4 复位信号的电路逻辑图
第9页 共 48 页

陕西理工学院毕业设计论文

整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特 触发器,再由片内复位电路在每个机器周期的 S5P2 时刻对施密特触发器的输出进行采 样,然后才得到内部复位操作所需要的信号。 复位操作有上电自动复位相按键手动复位两种方式。 上电自动复位是通过外部复位电路的电容充电来实现的, 其电路如图 3.5 (a) 所示。 这佯,只要电源 Vcc 的上升时间不超过 1ms,就可以实现自动上电复位,即接通电源就 成了系统的复位初始化。 按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经 电阻与 Vcc 电源接通而实现的,其电路如图 3.5(b)所示;而按键脉冲复位则是利用 RC 微分电路产生的正脉冲来实现的, 其电路如图 3.5(c)所示:

(a)上电复位

(b)按键电平复位 图 3.5 复位电路

(c)按键脉冲复位

上述电路图中的电阻、电容参数适用于 6MHz 晶振,能保证复位信号高电平持续时 间大于 2 个机器周期。 本系统的复位电路采用图 3.5(a)上电复位方式。 STC89C52 具体引脚介绍如下: ① 主电源引脚(2 根) VCC(Pin40):电源输入,接+5V 电源 GND(Pin20):接地线 ②外接晶振引脚(2 根) XTAL1(Pin19):片内振荡电路的输入端 XTAL2(Pin20):片内振荡电路的输出端
第 10 页 共 48 页

陕西理工学院毕业设计论文

③控制引脚(4 根) RST/VPP(Pin9):复位引脚,引脚上出现 2 个机器周期的高电平将使单片机复

图3.6 STC89C52引脚图

位。 ALE/PROG(Pin30):地址锁存允许信号 PSEN(Pin29):外部内存读选通信号 EA/VPP(Pin31):程序内存的内外部选通,接低电平从外部程序内存读指令,如果接 高电平则从内部程序内存读指令。 ④可编程输入/输出引脚(32 根) STC89C52 单片机有 4 组 8 位的可编程 I/O 口,分别位 P0、P1、P2、P3 口,每个口有 8 位(8 根引脚),共 32 根。 PO 口(Pin39~Pin32):8 位双向 I/O 口线,名称为 P0.0~P0.7 P1 口(Pin1~Pin8):8 位准双向 I/O 口线,名称为 P1.0~P1.7 P2 口(Pin21~Pin28):8 位准双向 I/O 口线,名称为 P2.0~P2.7 P3 口(Pin10~Pin17):8 位准双向 I/O 口线,名称为 P3.0~P3.7

STC89C52 主要内部资源如表二所示。

第 11 页

共 48 页

陕西理工学院毕业设计论文

表 3.2 STC89C52 内部资源 主要功能特性 兼容 MCS51 指令系统 32 个双向 I/O 口 3 个 16 位可编程定时/计数器中断 2 个串行中断 2 个外部中断源 2 个读写中断口线 低功耗空闲和掉电模式 8K 可反复擦写 Flash ROM 256x8bit 内部 RAM 时钟频率 0-24MHz 可编程 UART 串行通道 共 6 个中断源 3 级加密位 软件设置睡眠和唤醒功能

3.3 路面检测模块 3.3.1 传感器 TCRT5000 介绍
TCRT5000红外光电传感器是一款红外反射式光电开关。传感器采用高发射功率红外 光电二极管和高灵敏度光敏三极管组成,其输出信号经过施密特电路整形,稳定可靠。

图3.7 红外光电传感器TCRT5000

传感器的红外发射二极管不断的发射红外线,当发射出的红外线照射在黑色的物体 上,由于黑颜色的物体反射基数低,没有反射回来或者反射回来的强度不够大时,光敏 三极管一直处于关断状态,此时图3.6中4跟5之间的压降就比较大,经过稳定测试之后 的压降大约在4.62V左右,当发射到白颜色的物体上的时候,由于白颜色反射基数大,
第 12 页 共 48 页

陕西理工学院毕业设计论文

足以是光敏三极管饱和,所以此时的上图中4跟6之间的压降比较低,经过稳定测试之后 的压降在0.56V左右,变化较为明显。

图3.8

红外光电传感器的模型

3.3.2 比较器 LM324
LM324为四运放集成电路,采用14脚双列直插塑料封装。内部有四个运算放大器, 有相位补偿电路。电路功耗很小,工作电压范围宽,可用正电源3~32V,或正负双电源 ±1.5V~±15V工作。 在黑线检测电路中用来确定红外接收信号电平的高低,以电平高低判定黑线有无。 在电路中,LM324的一个输入端需接滑动变阻器,通过改变滑动变阻器的阻值来提供合 适的比较电压。

第 13 页

共 48 页

陕西理工学院毕业设计论文

图3.9 LM324引脚图

3.3.3 具体电路
通过TCRT5000检测黑线, 输出接收到的信号给LM324, 接收电压与比较电压比较后, 输出信号变为标准TTL高低电平,再输入到单片机中,用以判定是否检测到黑线。

图3.10 路面检测模块具体电路图

参数解说: 1:前面说到TCRT5000是由一个红外线发光二极管和一个光敏三极管组成,

第 14 页

共 48 页

陕西理工学院毕业设计论文

图3.11 TCRT5000的红外发光二极管的伏安曲线(20摄氏度时)

如图所示,当红外发光管的电压达到1.3V左右的时候,流经红外发光管的电流是最 大的,即此时的红外发光管的发射功率最大。传感器安装在小车的地盘,距离路面距离 很短,再者对于小车的续航能力来说,功耗低的话续航能力好一点,鉴于此两方面的考 虑,我们选择红外发射管压降在1.1V左右,也经过反复测试,此时的发射功率检测1cm 左右距离的黑白线, 效果较为明显, 如果电源电压为5V, 则分流电阻R= 5-1.2) ( /0.01=380 奥姆,考虑到发光二极管发热以及二极管的阻抗,对于限流电阻R1,我们选择150奥姆, 经过测试,TCRT5000也工作很稳定。 2:对于分压电阻R2的选择,由于R2跟光敏三极管串联,所以R2的大小和接收管的电 压变化有关系。初步选择R2=20k,经过测试,我们得出下面一组资料,当发光二极管的 发射的红外光照射到黑线的时候,黑线将光线吸收,导致光敏三极管截止,此时加在图 中的4、5点的压降为4.69V,当为白线时,4、5两点的压降在0.76V,那么输出给电压比 较器异相端的电压就是在黑白两种状态下此分压电阻的压降,即黑线时为(5-4.69) =0.31V,白线时为(5-0.76)=4.24V,经过现场测试两者的电压出入不大,基本符合预 想。 3:参考电压的选择,从上面的测试,我们得出R1,R2为150,20k时TCRT5000检测黑 线的时候输入给电压比较器的电压为0.27V,白线的时候是4.38V,所以我们将参考电压 定为2V,即检测到白线的时候,参考电压小于异相端电压,所以输出为低电平,反之则 为高电平。对于参考电压,我们选择10k电位器输出,要输出2V电压给电压比较器同相 端,那么电位器的阻值分配为6k和4k,经过测试,为3.6k,分析原因,一是因为10k的 电位器的全部阻值并不是很标准的10k,我拿到的为9.6k左右,还有此时加在电位器上
第 15 页 共 48 页

陕西理工学院毕业设计论文

的电压也并不是很准确的5V电压,所以才出现这样的情况。

3.3.4 传感器安装
在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走,需要 再车底盘安置三个传感器,装置位置如图3.6所示, 三个传感器,那就意味着八种1,0 组合的状态,为了使小车平稳的转弯,设置“大拐”“小拐”,意思有左大拐,左小 拐,右大拐,右小拐,直线前进,后退,还有两种无效的状态(101,111),下来有必 要说下传感器的安装距离,为了检测的方便我们使小车的两个传感器之间的距离刚好 大于黑线的距离,这样的目的就是,当一个传感器检测不到的时候,它旁边的传感器 就要检测到黑线呢,这样就使传感器无盲区。
右传感器 左电机

中传感器

后万 向轮

右电机 左传感器

图3.12 传感器安装布局图

3.3.5 TTL 电平
TTL 电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V 等价于逻辑 “1”,0V 等价于逻辑“0”,这被称做 TTL 信号系统。TTL 电平 VCC 是 5V。当光电对管 检测到黑线时,输出高电平,高于电压比较器的“+”输入端设定比较电压,相当于 5V, 等价于逻辑“1” 当光电对管检测到白线时,输出低电平,低于电压比较器的“+”输 ; 入端设定比较电压,相当于 0V,等价于逻辑“0” 。TTL 电路是电流控制器件,一般提供 25 毫安的驱动能力。TTL 电路的速度快,传输延迟时间短(5-10ns),但是功耗大。 TTL 输出低电平<0.8V ;输出低电平>2.4V。在室温下,一般输出高电平是 3.5V,输 出低电平是 0.2V。 TTL 输入低电平 <1.2V ;输入高电平>2.0V。所以,TTL 器件输出的 低电平要小于 0.8V,高电平要大于 2.4V。输入时,低于 1.2V 就认为是 0,高于 2.0V
第 16 页 共 48 页

陕西理工学院毕业设计论文

就认为是 1。

3.4 电源模块
电源对于一个系统来说作用是巨大的,它是系统工作稳定的前提。下表是整个方案 中需要的电源及电源值。
表 3.3 电源供电专案 电机驱动芯片 L298N STC 单片机 电压比较器 LM324 直流减速电机 本系统供电项目及数值 电源数值 +4.5V--+7V +3.3V--+5.5V +3V—+32V +6V--+24V

对于电压比较器,我们希望比较出来的电平是 TTL 电平,这个输出电平高电平的电压值 跟 LM324 的供电电压有关,如果供电电压为 5V,由于比较器内部晶体管压降,则它输出 高电平的电压值应该小于 5V, 大约保持在 4.5V 左右, 所以我们选择给 LM324+5V 电压供 电,此电压可以供给 STC89C52、L298 也很合适.对于电机,我们选择+12V 电压。一路供 给直流减速电机,一路经过稳压芯片 LM2576 输出+5V 电压给 LM324、L298、单片机(考 虑到散热,我们选择 LM2576,而放弃 LM7805) 下图就是电源原理图,输入是 12V,输出是+5V。

图 3.13 12V 电源转 5V 电源电路原理图

第 17 页

共 48 页

陕西理工学院毕业设计论文

3.5 电机驱动模块 3.5.1 电机驱动芯片 L298N
电机驱动芯片 L298N 是 SGS 公司的产品,内部包含 4 信道逻辑驱动电路。是一种二 相和四相电机的专用驱动器,即内含二个 H 桥的高电压大电流双全桥式驱动器,接收标 准 TTL 逻辑电平信号,可驱动 46V、2A 以下的电机。其引脚排列如图 3.14 所示,1 脚和 15 脚可单独引出连接电流采样电阻器, 形成电流传感信号。 L298 可驱动 2 个电机, OUT1、 OUT2 和 OUT3、OUT4 之间分别接 2 个电动机。5、7、10、12 脚接输入控制电平,控制电 机的正反转,ENA,ENB 接控制使能端,控制电机的停转。也利用单片机产生 PWM 信号接 到 ENA,ENB 端子,对电机的转速进行调节。

图 3.14 L298N 引脚图

通过单片机的 I/O 口输入改变芯片控制端的电平,即可以对电机进行正反转,停止 的操作,输入引脚与输出引脚的逻辑关系图为下表
表 3.4 使能端 ENA 0 1 1 1 1 In1 × 1 0 1 0 L298N 输入输出也逻辑表 In2 × 0 1 1 0 运转状态 停止 正转 反转 刹停 停止

用一个 L298N 驱动左右两个电机,In1、In2 控制左电机,In3、In4 控制右电机,而 使能端一直为高电平,采用 In1、In2、In3、In4 同时为 0 来达到电机的停止,从而是 小车停止。

第 18 页

共 48 页

陕西理工学院毕业设计论文

图 3.15 电机驱动电路图

第 19 页

共 48 页

陕西理工学院毕业设计论文

4 软件设计
在进行单片机控制系统设计时,除了系统硬件设计以外,大量的工作就是如何让根 据系统每一个现象或者作用设计应用程序。因此,软件设计在单片机控制系统设计中占 有重要的地位。对于本系统,软件更为重要。本次软件设计需要完成以下两个任务。 1:单片机根据传感器 I/O 口的输入状态,来相应的执行判断程序,来达到小车的前 进,后退,停止; 2:单片机两个 I/O 口同时产生两个占空比不相同的方波,来控制小车电机的车速, 来达到小车的左转弯、右转弯; 为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部 分叫做一个模块。所谓“模块” ,实际上就是完成一定功能,相对独立的程序段,这中 程序设计方法叫做模块化程序设计法。 模块化程序设计方法的主要优点是: 1、 单个模块化起一个完整的程序易编写及调试; 2、 模块可以共存,一个模块可以被多个任务在不同条件下调用; 3、 模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。 本系统软件采用模块化结构,由主程序,寻迹子程序,调速子程序等构成。

4.1 PWM
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制, 是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在 从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制是一种模拟控制方式,其 根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管 或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定, 是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。 随着电子技术的发展,出现了多种PWM技术,其中包括:相电压控制PWM、脉宽PWM 法、随机PWM、SPWM法、线电压控制PWM等,而在镍氢电池智能充电器中采用的脉宽PWM 法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调 频, 改变脉冲的宽度或占空比可以调压, 采用适当控制方法即可使电压与频率协调变化。

第 20 页

共 48 页

陕西理工学院毕业设计论文

可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。 模拟信号的值可以连续变化,其时间和幅度的分辨率都没有限制。9V电池就是一种 仿真器件,因为它的输出电压并不精确地等于9V,而是随时间发生变化,并可取任何实 数值。与此类似,从电池吸收的电流也不限定在一组可能的取值范围之内。模拟信号与 数字信号的区别在于后者的取值通常只能属于预先确定的可能取值集合之内,例如在 {0V, 5V}这一集合中取值。模拟电压和电流可直接用来进行控制,如对汽车收音机的音 量进行控制。在简单的模拟收音机中,音量旋钮被连接到一个可变电阻。拧动旋钮时, 电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了驱动扬声器的 电流值,使音量相应变大或变小。与收音机一样,模拟电路的输出与输入成线性比例。 尽管模拟控制看起来可能直观而简单, 但它并不总是非常经济或可行的。 其中一点就是, 模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常 庞大、笨重(如老式的家庭立体声设备)和昂贵。模拟电路还有可能严重发热,其功耗相 对于工作组件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动 或噪声都肯定会改变电流值的大小。 通过以数字符方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多 微控制器和DSP已经在芯片上包含了PWM控制器,这使数字控制的实现变得更加容易了。 脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数 器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍 然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无 (OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去 的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只 要带宽足够,任何模拟值都可以使用PWM进行编码。多数负载(无论是电感性负载还是电 容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。 许多微控制器内部都包含有PWM控制器。例如,Microchip公司的PIC16C67内含两个 PWM控制器,每一个都可以选择接通时间和周期。占空比是接通时间与周期之比,调制 频率为周期的倒数。执行PWM操作之前,这种微处理器要求在软件中完成以下工作: 1、设置提供调制方波的片上定时器/计数器的周期 2、 在PWM控制寄存器中设置接通时间 3、设置PWM输出的方向,这个输出是一个通用I/O管脚 4、启动定时器 5、使能PWM控制器本系统采用PWM来调节直流电机的速度。

第 21 页

共 48 页

陕西理工学院毕业设计论文

PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到 控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力 控制等。 在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改 变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空 比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装 置”。 在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定 规律,改变通、断电的时间,即可让电机转速得到控制。

4.2 主函数程序设计
对于小车的行驶,我这样设想的,整个系统供上电之后,就不停的执行扫描端口, 当此输入口为低电平时,意味着小车的开关已经按下,小车已经发动起来了,单片机执 行相应的子程序,否则就一直扫描。这样比较贴合实际一些。同样的,当此输入口为高 电平时,小车停止行驶。前面第2章讲到,L298N与单片机相连接的6个I/O口,in1~in4 是输出控制电机的端口,in5~in6是使能端,in5控制in1和in2,in6控制in3和in4,只 有当它们为高电平时,in1~in4才输出有效,那么要达到两个电机同时转动,就必须使 in5~in6同时为高电平。 对于小车停止,预想的是,当开关按下时,小车开始行驶,计数器也开始计数,当 不再检测到黑线的时候就停止,这样,对于B部分的时间显示来说,可以设定外部中断, 停止的时候定时器停止计数,在数码管上就显示当前计数值,即为小车行驶的时间。 所以主函数可以这样写: Void mian() { In5=1; In6=1; //L28N使能端,只有两者都为高电平时,in1~in4输入的高低电平才有效// While(kaiguan==0)//“发动机钥匙”// { Xunji();//循迹程序// } }
第 22 页 共 48 页

陕西理工学院毕业设计论文

总体程序流程图:
开始

N 开关是否按下

Y

启动小车

是否偏离黑线 Y

Y

转向子程序

N

继续直线前进

是否检测到黑线

N 停止 图 4.1 程序主体流程图

结束

4.3 寻迹子函数程序设计
寻迹,顾名思义,就是单片机寻找准确的路线,以达到精准的行驶,本设计采用黑 线行驶,三个 TCRT5000 红外传感器,分别连接 STC 单片机的 P1.0、P1.1、P1.2 口,对 于三个传感器就有 2 =8 种状态,根据现实情况,在下表中给予统一编码。
第 23 页 共 48 页
3

陕西理工学院毕业设计论文

表 4.1 传感器状态(a、b、c) 000 001 010 011 100 101 110 111

传感器输出信号编码 小车状态 停止 右大拐弯 直线前进 右小拐弯 左大拐弯 直线前进(此状态不可能出现) 左小拐弯 后退

根据上表,得出寻迹子程序流程图
寻迹子程序

传感器输出状态

000

001

010

011

100

101

110

111

停止

右大拐

直向前

右小拐

左大拐

直向前

左小拐

后退

跳出子程序 图 4.2 转向子程序流程图

基于上面所述,寻迹程序可以这样编写。

第 24 页

共 48 页

陕西理工学院毕业设计论文

void xunji() { if((sensera==0)&&(senserb==0)&&(senserc==0)) stop();//停止吧,因为没有黑线啦// else if((sensera==0)&&(senserb==0)&&(senserc==1))

PWMqianjin(7,3);//小车即将向左偏离黑线,右大转弯吧// else if((sensera==0)&&(senserb==1)&&(senserc==1)) PWMqianjin(6,4);//小车较偏离左边,希望右小转弯// else if((sensera==1)&&(senserb==0)&&(senserc==0)) PWMqianjin(3,7); //小车即将向右偏离黑线,左大转弯吧// else if((sensera==1)&&(senserb==1)&&(senserc==1)) houtui(5,5);//小车可能横跨在黑线上啦,此时后退吧,但是一般此种情况很 难出现,早就被我扼杀在萌芽状态啦// else if((sensera==1)&&(senserb==1)&&(senserc==0)) PWMqianjin(4,6); //小车较偏离右边,希望左小转弯// else PWMqianjin(5,5); //此刻,黑线被压在小车的中央,全速前进// }

4.4 调速子程序
小车能稳定行驶,转弯是在所难免的,对于调速,采用 P2^0~P2^3 输出不同占空比 的方波,来控制小车两个轮子的速度,对于转弯的方案,有以下几种。 方案 1:遇到转弯的时候,一个轮子降低速度,另外一个停止,优点是转弯的时候 一个轮子行驶,不需要考虑同时输出不同占空比的方波的问题,这样单片机控制简单一 些,缺点则是,小车在转弯的时候一直有个电机会停止与启动,电机频繁启动对电机寿 命会有影响,另外小车行驶起来让人感觉比较“冲” ,就是转弯过程中不细腻。 方案 2:遇到需要转弯的时候,将一个轮子的速度降低,另一个轮子速度提高,只 要两个轮子的占空比之差在一个合理的范围之内,转弯就合情合理啦。 接下来就是要解决怎么样使单片机两个 I/O 口同时产生不同占空比的方波,根据自 己此段时间的努力, 1:采用定时器,开始就开启定时,当传感器输出口达到某一状态时,给计数器装在一 定的数值,此数值代表不同的占空比,在定时器中断程序里面取反。
第 25 页 共 48 页

陕西理工学院毕业设计论文

2:采用赋值延时,给驱动芯片端口分别赋值,延时使相应的端口输出不同占空比的方 波。 综合系统难易程度,本次选择赋值延时方案产生两个不同占空比的方波。所以调速 子程序可以这样编写。 void PWMqianjin(uchar x1,uchar x2)//前进程序,x1,x2 代表左右电机的占空比// { uchar a,b,n=100; in1=0; in4=0;//左电机反转, 右电机正转=前进, 意味着 in1=in4=0,in2 和 in3 输出方波// while(n--) {in2=1; in3=0; for(a=x1;a>0;a--); in2=0; in3=1; for(b=x2;b>0;b--); } } void houtui(uchar x1,uchar x2)//后退函数// { uchar c,d,m=100; in2=0; in3=0;//左电机正转, 右电机反转=后退, 意味着 in2=in3=0,in1 和 in4 输出方波// while(m--) {in1=0; in4=1; for(c=x1;c>0;c--); in1=1; in4=0; for(d=x2;d>0;d--); }

第 26 页

共 48 页

陕西理工学院毕业设计论文

} void stop()//停车函数,采用软件和硬件停车, “钥匙”关跟检测不到黑线的时候, 就停车// { in1=0; in2=0; in3=0; in4=0; }

第 27 页

共 48 页

陕西理工学院毕业设计论文

5 整体调试
5.1 测试方法及仪器:
测试仪器 测试仪器暴扣数字万用表,示波器,直流稳压电源等。 测试方法 数字万用表主要用来测试分立元件的电阻、压降、漏电流、截止/导通状态等参数; 示波器用于测试 PWM 输出口的波形。直流稳压电源主要用来给系统提供精准的电压源。 此设计是单片机应用系统的开发性实验。通过此设计可知在单片机系统开发过程应 注意以下事项。 1)硬件的选择。选择适合设计目地的元器件是一个重要的方设计环节。不能以元器件 是否是最高性能作为选择元器件的标准。往往高性能器件的价格也是较高的。应根据项 目设计的需要选择元器件,能够满足设计需要作为标准选择元器件。 2)因为单片机系统设计是硬件和软件相结合的设计,所以系统和硬件和软件必须紧密 配合,协调一致。应不断调整硬软件设计,以提高系统工作效率。 单片机的应用如今已经是在工业,电子等方面展示出了它的优越性,利用单片机在 设计电路逐渐成了趋势,它与外围电路再加上软件程序就可以构建任意的产品,使得本 设计成为现实。随着单片机的日益发展,它必将在未来显示出更大的活力,为电子设计 更多精彩。对于数字电压表而言,功能将会越来越强大。 我们在设计的过程中发现了自身知识的不足,也发现我们必须具备专业基础知识才能成 功的设计出一件合格的东西。这次课程设计收获很多,体会也很深刻,并且对我们所学 的东西也产生了浓厚的兴趣。在设计过程中,也学会了很多新的东西,如对一些初次使 用的模块的认识与掌握。当然最重要的是学到了关于基本电子设计的一些方法,同时也 加深了对一些常用的电子元件的理解以及其基本用法的掌握。 通过多次调试,发现小车有以下几方面的问题及因素影响: (1)自制导线不合格。究其原因,一方面是对压线钳的熟练及合理运用方面不够灵活, 另一方面是对专业基本功掌握不够。 (2)程序逻辑方面不够严谨,导致在行驶过程中不按预期的路线去行驶。究其原因, 一方面由于电路自身缺陷导致程序有误,另一方面由于 C 语言掌握不够,需要加强。
第 28 页 共 48 页

陕西理工学院毕业设计论文

针对以上问题,改进方案如下: (1)解决方案:先用万用表对自制导线进行测量,检测合格则使用。 (2)解决方案:先对程序进行软件调试,进行单步运行,软件调试成功在进行硬件调 试,最终实现预期要求。 通过本次毕业设计,不仅是对我们课本所学知识的考查,更是对我的自学能力和收 集资料能力以及动手能力的考验。本次毕业设计使我们对一个项目的整体设计有了初步 认识,还认识了几种传感器,并能独立设计出其接口电路,本次毕业设计使我们意识到 了实验的重要性,在硬件制作和软件调试的过程中,出现了很多问题,最终都是通过实 验的方法来解决的。还有以前对程序只是一个很模糊的概念,通过这次的课题设计使我 对程序完全有了一个新的认识,并能使用 C 熟练的进行编程了。通过本次课题设计,极 大的锻炼了我们的思考和分析问题的能力,并对单片机有了一个更深的认识。 总之,在毕业设计的过程中,无论是对于学习方法还是理论知识,我们都有了新的 认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践 运作能力。

第 29 页

共 48 页

陕西理工学院毕业设计论文

致谢
历时三个月的毕业设计已告一段落。进过自己不断的搜索努力以及梁老师的耐心指 导和热情帮助,本设计已经基本完成。在这段时间里,梁老师严谨的治学态度和热忱的 工作作风令我十分钦佩,他的指导使我受益匪浅。同时为我们开放了实验室,也为我提 供良好的实习场地。在此对梁应选老师表示深深的感谢。 通过本次毕业设计,使我深刻地认识到学号专业知识的重要性,也理解了理论联系 实际的含义,并且检验了大学四年的学习成果。虽然在这次设计中对于知识的运用和衔 接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这三个月的设计 是对过去所学的知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。 由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。最后 感些评阅老师百忙之中抽出时间对本论文进行了评阅!

第 30 页

共 48 页

陕西理工学院毕业设计论文

参考文献
[1] 华成英, 童诗白.模拟电子技术基础 (第 4 版) [M].北京: 高等教育出版社, 2006.423 页-433 页. [2] 李朝青.单片机原理及接口技术(第 3 版)[M].北京:北京航空航天大学出版社, 2006. [3] [4] 张国雄.测控电路(第 3 版)[M].北京:机械工业出版社,2008.232 页-242 页. 马忠梅,籍顺心,张凯等.单片机的 C 语言应用程序设计(第 4 版)[M].北京: 北京航空航天大学出版社,2006. [5] [6] 浦昭邦.光电测试技术[M].北京:机械工业出版社,2004. 郭天祥.51 单片机 C 语言教程—入门、提高、开发、拓展全攻略[M].北京:电子 工业出版社,2009. [7] [8] 谭浩强.C 程序设计(第三版)[M].北京:清华大学出版社,2005. 张俊.匠人手记:一个单片机工作者的实践与思考[M].北京:北京航空航天大学 出版社,2008. [9] 王玮.感悟涉及电子设计的经验与哲理[M].北京:北京航空航天大学出版社, 2009. [10] 全国大学生电子设计竞赛组委会.第五届全国大学生电子竞赛获奖作品选编[M]. 北京:北京理工大学出版社,2003. [11] [12] [13] 谢自美.电子线路设计·实验·测试[M].武汉:华中科技大学出版社,2000. 吕惠智.红外技术[M]哈尔滨:哈尔冰工程大学出版社,1998. Yamato.New conversion system for UPS using high fre2 quency link[J]1 IEEE PESC ,1988 :210-320. [14] Romon Pallas-Areny,John G.Websters(美).传感器和信号调节[M].张伦译. 北京:清华大学出版社,2003. [15] Borenstein J, Koveny. Real2time obstacle avoidance for fast mo bile robots[J]. IEEE Transon SMC,1989,19(5):1179 - 1186. [16] 谭 勇 宏 , 张 辉 . 智 能 寻 迹 小 车 的 研 究 与 设 计 [J]. 微 计 算 机 信 息 , 2008,3-2:310-312.

第 31 页

共 48 页

陕西理工学院毕业设计论文

外文翻译 2009 年第四届国际会议计算机科学与教育的报告 基于光电传感器的智能汽车系统的跟踪控制算法
作者:郝先伟 孙鸿飞 厦门大学自动化系 厦门,中国 厦门大学自动化系 厦门,中国

摘要—本文对目标识别和轨迹技术进行了分析。在光电传感器的基础上,人们提出 了跟踪控制算法。该算法利用了地点的误差和路线的信号作为输入的参数,来规范舵机 输出角。这种智能车系统包括直线的轨迹控制算法,弯曲的轨迹控制算法和 S 型根据不 同特征的轨迹式的轨迹控制算法。实验表明,利用该算法,智能车可以沿着直线轨迹顺 利地移动,弯曲的轨迹和 S 型轨迹的准确性令人感到满意。 索引术语—光电传感器,黑色轨迹,智能车 1. 导言 一个智能车系统是由电源模块,传感器模块,直流(DC)驱动电机模块,路径识别 模块,通讯和调试模块和单片机模块组成[4].。为了使智能车以合理的速度沿着轨道移 动,路径的信息检测,直流伺服电机控制和驱动电机控制必须连接在一个单片机上。如 果传感器的数据是不正确地采集和识别,并且转向伺服电机控制有一个错误的操作,智 能车将严重地摇动或者甚至偏离跑道。如果直流驱动电机控制是无效的,它也可能导致 智能车在直线运行时速度较慢或者在弯道处速度较快。从图 1,我们可以看到的智能车 的运行系统

信息处理 控制算法

舵机马达

智能小车

智能汽车的运行参数

跑道检测

跑道

图 1. 智能车的总控制程序

对于一个智能车来说,跟踪控制就是意味着设计一个算法来识别黑色条状的标示线
第 32 页 共 48 页

陕西理工学院毕业设计论文

以至于智能车可以沿着规定的轨迹顺利移动。对于智能车的跟踪控制算法已经得到了很 多的关注。有些方法已经在一些参考文献中得到采用,例如,电荷耦合器件(CCD)图 像处理,模糊控制和视觉模糊控制方法[1,2,3]。CCD 图像处理方法的优点是像素密集 和高精度。它的缺点是信号的采集和数据处理周期长。CCD 图像处理方法容易受到周围 环境的光线干扰。视觉模糊控制方法的优点是控制规则的自由,对象明确的模型有完全 的独立性,适应性强和较强的鲁棒性[3]。其缺点是精度低,适应能力不足和高频振荡。 在本文中,我们采用光电传感器来检测智能车参考轨迹信息的跟踪。为了实现智能车能 够又好又平稳地沿着参考轨迹运行,我们提出了一个解决方案,该方案是针对智能车主 功能控制系统的,该系统包括黑线的信息的识别,舵机角度的控制以及驱动电机调速的 控制。在整个智能汽车系统中,作为智能车的眼睛,光电传感器必须找准路径信息,使 智能车系统运行稳定。跟踪控制策略包括直线算法,弯曲的线算法,S 型线算法和误差 处理机制算法分别。这种跟踪算法具有以下优点:对离散信号采集点少,对外界光照的 抗干扰的能力强,反应时间短,成本低。仿真结果表明,如果光电传感器的布局安排适 当的话,跟踪控制算法与那些带有 CCD 的智能车具有相同的效果。 二.跟踪控制算法的实现 1.光电传感器布局 光电传感器是由一系列的光发射和光接受二极管组成。一条黑色轨迹的跑道。黑色 轨迹上的光照强度与白色轨迹上的光照强度的反应是不同的。我们提出了一个基于上述 原则为基础的共同的方法,该方法是离散识别算法。二极管的电压值将通过 I / O 端口 被发送到微控制器[5?6]。中央处理器根据输入端口电压来决定传感器是否是在标记线 的顶部。智能车系统能检测出那些传感器在黑色轨道顶部之上。目前,智能车系统能够 确定智能车的相对位置和路径信息。 光电传感器的数量和间隔的布局都与控制算法密切相关。为了预测更远的距离,实 现更高的效率, 我们采用的解决方案如图 2 所示的类型 1。 这种类型使用 10 个光电传感 器,安排光电传感器的间距是不平等的。这种非线性的形式有优越性和科学性。黑点代 表光电传感器的安装位置,是对称分布在两侧的。相邻两个光电传感器之间的距离设置 分别为 22,16.5,16.5,16.5,10,16.5,16.5,16.5 和 22,单位为毫米。该电路板 是通过螺丝固定在 U 型支架上的。整个光电传感器是固定在智能车前面的。

第 33 页

共 48 页

陕西理工学院毕业设计论文

图 2. 光电传感器的布局

由于电路板在车子上不能扩展的太远,为了达到更好的效果我们可以调整电路板的 倾斜度,如图 3 所示。最终智能车系统将有一个良好的前瞻性的作用[4]。

图 3. 光电传感器检测与斜坡路径

2. 系统稳定运行的算法 跟踪控制算法常用于调节电动机的速度和舵机的角度。当 3 号和 6 号之间的光电传 感器总是低电平有效的时候,可以得知,光电传感器检测到直轨迹。这时,智能车将全 速运行。在这种情况下,智能车可以达到最大速度。当 0 号和 3 号或者 6 号和 9 号之间 的光电传感器总是低电平有效的时候,可以得知,光电传感器检测到 S 型或弯曲型的轨 迹。 在这种情况下, 智能车应当提前减速来左转或者右转。 这时智能车的速度不应太快, 以避免冲出轨道。我们应当采取限速策略,来解决这个问题..当光电传感器的牵引距离 是 22 毫米的时候,最大速度为 3 米/秒。当光电传感器的牵引距离是 16.5 毫米的时候, 最大速度为 3.3 米/秒。图 4 是系统稳定运行的流程图。 智能车的位置是由光电传感器的回馈值来决定的。光电传感器将检测到的黑线的模 拟信号值转化为数字信号值。 这些值是在 0 和 255 之间的。 然后, 智能车系统作出判断, 决定哪个传感器的值小于 80。值较小的表明,该传感器检测到的是黑线的位置。然后它 的标志位用 C + +程序被设置成 0。而且根据标志位 CPU 来计算坐标。智能车系统将发 出相应的 PWM 波形给舵机并且通过坐标给智能车一个需要的角度。例如,如果 0,1,2, 7,8,9 号传感器检测黑线,我们可以得出结论,智能车将偏离直线轨迹。当智能车沿 着弯曲的轨迹前进的时候,智能车系统将让智能车提前减速并给予必要的速度和角度。 当 4,5 号传感器检测黑线的时候,可以得知智能车是沿直线轨迹运动。因此,智能车 将加速运行。

第 34 页

共 48 页

陕西理工学院毕业设计论文

系统初始化

光电传感器检测的路径消息

清除中断标志

获取 AD 采样 保护现场 计算智能车的位置 获取计数器脉冲 调用速度监测方案 计算速度 控制速度

控制方向

结束中断

返回

图 4. 跟踪控制算法流程图

3. 智能车跟踪控制算法 1)直轨迹控制算法:直线运行对智能车来说是一个基本和重要的要求。在这种情况下, 智能车能达到最大速度和最大加速度。最大速度大约是 9m/s-10m/s 或更快。如图 5 所 描述的那样可以实现直线算法。 智能车系统是根据光电传感器检测路径信息和调用相应的程序去控制电机的速度和 转向角度,来决定直线控制算法的。 2)弯曲型轨迹和 S 型轨迹的控制算法:当智能车系统检测到弯曲轨迹的时候,智能车 在该方式下是以便捷的方式运行的。换句话说,智能车是沿着轨道内侧运行而不是跟着 轨道运行。图 6 表明,为了让智能车提前拐弯,当光电传感器 3 号发现黑线时,智能车 系统可能将标志位 S 设成 1 并且 2 号标志位的 S 设成 0。

第 35 页

共 48 页

陕西理工学院毕业设计论文

系统初始化

4、5 传感器是否检测到黑线

直线循迹 N

智能车最大速度

访问其他控制程序

返回

图 5. 直线轨迹控制策略

图 6. 黑线和光电传感器的位置

当中心点是偏斜时,智能车将出现跑偏现象。智能车系统为智能车在弯曲轨迹中离 轨道内部运行奠定了基础。在智能车系统记录了第一圈信息之后,当智能车跑第二圈的 时候,它可以直接辨别出下一个弯道是左转还是右转,然后,他可以通过半径小的地方 穿过弯曲轨迹,来减少距离和节省时间。图 7 是弯曲轨迹控制策略。

第 36 页

共 48 页

陕西理工学院毕业设计论文

计算从中央传感器到检测到黑线的传感器坐 标

与 MAP 表中的数字相比较

打通位置和指导 MAP 表相对应的 PWM 脉冲

结束

图 7. 弯曲轨迹控制策略

当智能车正沿着 S 型轨迹运行时,如果不能有效地控制他的速度,它有可能冲出跑 道。图 8 和图 9 显示了 S 型控制策略。 智能车系统记录了 AD 模块中的数字信号的值并且与数 255 进行比较, 如果右侧传感 器的值小于 255,设置 A1=1;如果中间传感器的值小于 255,设置 A2=1;如果左侧传感 器的值小于 255,设置 A3=1。如果 A1,A2 和 A3 都是 1,可以得知传感器检测到的是 S 型轨迹。 3)可能的情况及其相应的算法:由于智能车是后轮驱动,如果智能车加速穿过一条弯 曲轨迹时,它有可能出现过度转向的现象。智能车系统需要精确控制舵机。如果 10 个 光电传感器都无法检测到黑色轨迹,这意味着智能车冲出跑道。在这种情况下,智能车 系统应进行如下图 10 中的控制策略。

第 37 页

共 48 页

陕西理工学院毕业设计论文

系统初始化

光电传感器检测黑线

0、1、2 号传感器检测到黑线

记录一个标记,放入数组的位置

开始计数

N
4、5 号传感器是否检测到黑 线

Y 记录一个标记,放入数组的位置

开始计数 Y N
7、8、9 号是否检测到黑 线

记录一个标记,放入数组的位置

返回

图 8. 判断跑道是弯曲型还是 S 型的子程序

如果 10 个光电传感器都无法检测到黑色轨迹, 智能车系统能通过中断模式确定黑色 轨迹的位置。然后,智能车系统确定是否智能车出跑道。如果是,智能车系统工作在误 差处理机制下。如果不是,智能车系统继续操作跟踪控制算法。误差处理机制是智能车 系统从绘制表中度最新的历史数据并将其发送给中央处理单元。然后 CPU 确定最后一个

第 38 页

共 48 页

陕西理工学院毕业设计论文

检测到黑线的传感器并且控制舵机,以至于智能车可以回转。 3. PID 控制系统的智能汽车 智能车系统根据 PID 算法使发动机的实际速度接近给定的速度[5]。在 μC/ OS - II 的系统中, 数字 PID 控制算法分为立场式控制算法和渐进式控制算法。 为了减少计算量, 并得到一个稳定的结果,舵机控制将采取渐进式控制算法。公式是(1)如下。 ?U ( K ) = K p ( E n ? E n ?1 ) + K i E n + K d ( E n ? 2 E n ?1 + E n ? 2 )

(1)

由公式 1,我们可以看到,增量 与误差 ,后一个误差 ,最后误差 有关系。因此,如 果 CPU 每时每刻都知道误差 的值,那么它就可以进行 PID 算法,输出舵机控制变量并
开始 且有效地控制转向角。图 11 是计算流程。

子程序调用数组

右边检测黑线

N

Y A1=1 A1=1

中间的检测线

N

Y A2=1 A2=1

左边的检测 Y A3=1

N

A3=1

A1=A2=A3=1

N

Y N1 的速度轨迹 转向子程序

结束

第 39 页

共 48 页

陕西理工学院毕业设计论文

图 9. S 型轨迹目标速度的流程图

中断入口

确定黑线位置

还能检测黑线 Y 跟踪控制算法

N

错误处理机制

跳出中断

图 10. 中断程序确定是否智能车跑出轨道 位置错误 路径信息 PID 控制 直流电机 正确的速度

目标速度

接近开关检测的基础上的速度

图 11. 电机速度控制模块

智能车系统通过坐标法能很容易地控制转向角。例如,当 0 号传感器检测到了黑色轨迹 时,智能车系统将相应的坐标设置为数-17。旁边的传感器是远离中心线的,有一个更 大的坐标数字对应着传感器。表 1 显示,每一个光电传感器具有一个特定的坐标数字。
表 1 与光电传感器相匹配的坐标 标号 0 1 1、2 相应的坐标 -17 -13 -11 标号 4、5 5 5、6 相应的坐标 0 1 3

第 40 页

共 48 页

陕西理工学院毕业设计论文

2 2、3 3 3、4 4 4、5

-9 -7 -5 -3 -1 0

6 6、7 7 7、8 8 9

5 7 9 10 13 17

整个智能车系统有三个任务组成,该三个任务在 μC / OS - II 系统中[8]。它们分 别是光电传感器的路径检测,速度检测和控制。控制任务是由 PID 子程序和 P 子程序以 及测绘表还有路径识别子程序组成。我们必须根据它们的功能优先分配每个任务。由于 光电传感器是智能车的眼睛,它需要有一个强有力的实时性。最高优先级是设置给 AD 光电传感器路径检测任务的。第二个优先级是设置给控制任务的。最后,最低优先级设 置给速度检测任务。表 2 是对每个任务的优先分配表。
表 2. 任务优先级分配 任务 任务 1 任务 2 任务 3 优先级 5 11 14 任务名称 A/D 控制 速度 工作模式 查询 共享记忆 中断模式

智能车系统根据任务 1 确定路径信息。然后, CPU 给任务 2 发送路径信息与此同时 任务 2 给舵机和电机发送相应的 PWM 脉冲。图 12 是工作流程。 我们在 CodeWarrior IDE 软件中编译 C + +程序[7]。下面的代码是主要的程序代码。 PID 结构的定义: struct PID {int Proportion; // Proportional Const int Integral; // Integral Const int Derivative; // Derivative Const int LastError; // Error[-1] int PrevError; // Error[-2] int Outlimit;// Output limiter int Output; } speed1; PID 的计算:
第 41 页 共 48 页

陕西理工学院毕业设计论文

double PIDCalc( PID *pp, double NextPoint ,double A,double Pup, double Down); 速度结构的初始化: void init_pid(struct PID *pid,int p_gain,int i_gain,int d_gain, int le,int pe,int outlimit, int ot); 计算 PWM 占空比: PWM=PIDCalc(&speed1,SetPoint,Speed); *MotorPWM =PWM;

uC/OS-Ⅱ 系统初始化

任务 4 CCD 跟踪

任务 1 光电传感器跟踪

任务 2 控制 任务 3 检测速度

图 12.每个任务在 μC / OS - II 系统中的工作流程图

三.实验结果 通过仿真可以在如图 13 中那样看到结果, 我们观察到通过使用改进后的算法智能车 可以满足稳定性和更快的速度来跟踪规定的轨迹。

第 42 页

共 48 页

陕西理工学院毕业设计论文

图 13 智能车在仿真环境下的稳定运行 四.结论 在本文中,跟踪控制算法是基于光电传感器的基础上提出的。智能车能沿着规定的 轨迹顺利地移动。仿真结果表明,跟踪控制算法使智能汽车更灵活,更稳定。然而,智 能车系统仍然需要改进。例如,如何使智能汽车在更复杂的环境下顺利地运行还有如何 使电机的速度更有效。我们将在以后来解决这些问题。 参考文献 [1] 郑监利,黄利嘉,葛鹏飞,刘向飞,“基于 CCD 自动跟踪的智能车”。学报东华

大学学报(自然科学) ,34 卷,第 6 期,2008 年 12 月,pp.728 – 731 [2] 贾用“基于模糊控制算法合成的智能车的转向控制”。计算机知识与科技,第 4 卷 第 7 期,2008 年 12 月,pp.1877 – 1878 1899 [3] 刘进, 齐晓辉, 李勇科, “基于视觉”自动测量和控制的智能车模糊 PID 控制算法, O.I。自动化,2008 卷。 27 日,10 号,第 67-69 68,69 [4] 卓青,黄开声和邵贝贝。学做智能车挑战“飞思卡尔”杯。北京航空航天大学和宇 航出版社,2007。 [5] 邵贝贝。嵌入式单片机的在线动态教学 清华大学出版社,北京 2004 年。 [6] 郑寇根,唐杰,和赫同能,嵌入式系统 - 设计和应用程序使用 68HC12 和 HCS12, 电子工业出版社,北京,2006。 [7] Stephen Prata 美国,C + +标准入门书,邮电出版社,2002。 [8] 陈师直,uC/OS-Ⅱ的内核分析,移植和驱动程序开发。邮电出版社,2007 年 2009 年第四届国际会议计算机科学与教育学报

第 43 页

共 48 页

陕西理工学院毕业设计论文

附录 A 硬件连接图

第 44 页

共 48 页

陕西理工学院毕业设计论文

附录 B 硬件清单
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 元器件名称 51 单片机 STC89C52RC 电机驱动芯片 L298N 直流减速电机 电压比较器 LM324 红外传感器 TCRT5000 电位器 10K 三端稳压器 LM7805 瓷片电容 30pf 晶振 12M 二极管 IN4007 电解电容 220uf 电解电容 100uf 电解电容 330uf 电解电容 22uf 电阻 150 欧姆 电阻 20K 电阻 1K 备注(数量) 1 1 2 1 3 1 1 2 1 8 1 1 1 1 3 3 1

第 45 页

共 48 页

陕西理工学院毕业设计论文

附录 C 程序清单
#include<reg51.h> #define uchar unsigned char #define uint unsigned int

sbit sensera=P1^0;//三个传感器,分别为左中右// sbit senserb=P1^1; sbit senserc=P1^2;

sbit in1=P2^0;//L298N 的输入口// sbit in2=P2^1; sbit in3=P2^2; sbit in4=P2^3; sbit en1=P2^5; sbit en2=P2^6; sbit kaiguan=P2^7;

void PWMqianjin(uchar x1,uchar x2)//前进程序,x1,x2 代表左右电机的占空比// { uchar a,b,n=100; in1=0; in4=0;//左电机反转, 右电机正转=前进, 意味着 in1=in4=0,in2 和 in3 输出方波// while(n--) {in2=1; in3=0; for(a=x1;a>0;a--); in2=0; in3=1; for(b=x2;b>0;b--);

第 46 页

共 48 页

陕西理工学院毕业设计论文

} } void houtui(uchar x1,uchar x2)//后退函数// { uchar c,d,m=100; in2=0; in3=0;//左电机正转, 右电机反转=后退, 意味着 in2=in3=0,in1 和 in4 输出方波// while(m--) {in1=0; in4=1; for(c=x1;c>0;c--); in1=1; in4=0; for(d=x2;d>0;d--); } } void stop()//停车函数,采用软件和硬件停车, “钥匙”关跟检测不到黑线的时候, 就停车// { in1=0; in2=0; in3=0; in4=0; } void xunji() { if((sensera==0)&&(senserb==0)&&(senserc==0)) stop();//停止吧,因为没有黑线啦// else if((sensera==0)&&(senserb==0)&&(senserc==1))

PWMqianjin(7,3);//小车即将向左偏离黑线,右大转弯吧// else if((sensera==0)&&(senserb==1)&&(senserc==1))

第 47 页

共 48 页

陕西理工学院毕业设计论文

PWMqianjin(6,4);//小车较偏离左边,希望右小转弯// else if((sensera==1)&&(senserb==0)&&(senserc==0)) PWMqianjin(3,7); //小车即将向右偏离黑线,左大转弯吧// else if((sensera==1)&&(senserb==1)&&(senserc==1)) houtui(5,5);//小车可能横跨在黑线上啦,此时后退吧,但是一般此种情况很 难出现,早就被我扼杀在萌芽状态啦// else if((sensera==1)&&(senserb==1)&&(senserc==0)) PWMqianjin(4,6); //小车较偏离右边,希望左小转弯// else PWMqianjin(5,5); //此刻,黑线被压在小车的中央,全速前进// } Void mian() { In5=1; In6=1; //L28N使能端,只有两者都为高电平时,in1~in4输入的高低电平才有效// While(kaiguan==0)//“发动机钥匙”// { Xunji();//循迹程序// } }

第 48 页

共 48 页


相关文章:
智能小车设计报告
11 16×16 点阵 LED 室内电子显示屏的设计 单片机原理及应用课程设计 基于 STC89C52 的智能小车的设计 1. 引言 1.1. 设计意义 本智能小车的设计,首先针对...
智能小汽车的课程设计
题目要求设计智能小汽车, 小车能够准确寻找到光源, 并随着光源的引导, 能够顺利地进入车库,同时在行程过程中能准确地显示小车的行使路程的总时 间。 根据要求本...
单片机课程设计 智能小车
关键词: STM32 单片机 智能仓库机器人 避障 语音提示。 第 4 页共 4 页 燕山大学课程设计说明书 第一章 设计说明 1.1 设计要求 1、小车自主避障的设计 2...
智能小车课程设计
智能小车课程设计_信息与通信_工程科技_专业资料。陕西理工学院毕业设计论文 . 智能巡线小车的设计(A)杨斌(陕理工机械工程学院测控技术与仪器专业 072 班,陕西 汉中...
智能小车课程设计
智能小车课程设计_工学_高等教育_教育专区。. 智能巡线小车的设计(A) [摘要] 本次毕业设计分为四个模块: 电源模块、 路面检测模块、 单片机最小系统 、 电机...
智能循迹小车课程设计报告
青岛理工大学琴岛学院 课程设计报告 课题名称:智能循迹机器人小车 学学学院:机电工程系 号:20100202129 生:许辉 专业班级:电气工程及其自动化 指导老师:张岐磊 青岛...
遥控智能小车(课程设计)
遥控智能小车(课程设计)_信息与通信_工程科技_专业资料。stm32主控芯片。红外遥控,超声波,智能寻路。《 嵌入式系统原理 》 课程设计说明书 题 目: 遥控智能小车 ...
智能小车设计报告
湖南涉外经济学院 课程设计报告课程名称:专业综合课程设计 报告题目:智能小车设计 学生姓名: 所在学院:信息科学与工程学院 专业班级: 学生学号: 指导教师:廖亦凡 20...
基于51单片机智能小车的设计
Keyword: STC89C52 single-chip DS18B20 detection temperature LCD 4 / 31 智能小车设计 1.方案论证与比较 1.1 课程实现 方案 1:采用各类数字电路来组成...
智能小车课程设计
智能小车课程设计_工学_高等教育_教育专区。南京工业,嵌入式系统设计,智能小车,硬件电路介绍智能循迹小车【摘要】本课题是基于低功耗单片机的智能小车的设计与实现, ...
更多相关标签:
智能循迹小车课程设计 | 智能小车课程 | 智能小车设计方案 | 智能循迹小车设计报告 | 智能小车设计报告 | 智能小车设计 | plc运料小车课程设计 | 51智能小车设计方案 |