循迹小车课程设计报告

上传人:飞*** 文档编号:30503969 上传时间:2018-01-29 格式:DOC 页数:32 大小:888KB
返回 下载 相关 举报
循迹小车课程设计报告_第1页
第1页 / 共32页
循迹小车课程设计报告_第2页
第2页 / 共32页
循迹小车课程设计报告_第3页
第3页 / 共32页
循迹小车课程设计报告_第4页
第4页 / 共32页
循迹小车课程设计报告_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《循迹小车课程设计报告》由会员分享,可在线阅读,更多相关《循迹小车课程设计报告(32页珍藏版)》请在金锄头文库上搜索。

1、1智能循迹小车设计与制作课程设计报告系 别:专 业:班 级:成 员:指导老师:时 间: 二一一年 6 月 30 日2一、设计目的:1、学会智能电子产品的功能设计与任务分析,能进行小型电子产品方案设计;2、掌握基于 51 单片机、FPGA 模数混合硬件系统设计和程序设计;3、熟悉电子信息类企业项目完整的运作过程及管理规范,培养团队协作能力、沟通能力、创新能力和组织能力。二、智能循迹小车任务分析这是一种基于 STC89C51 单片机的小车寻迹系统。该系统采用两组高灵敏度的 光电对管 ,对路面黑色(白色)轨迹进行检测,并利用单片机产生 PWM 波,控制小车速度。测试结果表明,该系统能够平稳跟踪给定的

2、路径。整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行三、智能循迹小车循迹原理该 智能小车 在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”黑线。利用了简单、应用比较普遍的检测方法发光二极管+光敏电阻。发光二极管+光敏电阻,即利用光线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射白光,当白光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。3四、智能循迹小车总体方案整个电路

3、系统分为检测、控制、显示、驱动四个模块。首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,然后显示小车的运行状态,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。系统方案方框图如图 1 所示。检测(黑线) 软件控制控制小车显示状态图 1 智能小车寻迹系统框图五、智能循迹小车各模块方案1、循迹模块设计方案 1:用红外发射管:接收管自己制作光电对管循迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射出的光线则测出黑线继而输出高电平。这样自己制作组装的寻迹传

4、感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。方案 2:发光二极管+光敏电阻组成光敏探测器,光敏电阻的阻值可以根跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱 。因此光敏电阻在白线和黑线上方时,阻值4会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。该方案虽然有明显的光线的车前但灵敏度好。因此我们采用这种方案。如理图如下:R61 限制发射二极管的电流,发射管的电流和发射功率成正比,但受其极限输入正向电流 50mA 的影响,用 R1=150 的电阻作为限流电阻,Vcc=5V 作为电源电压

5、,测试发现发射功率完全能满足检测需要;可变电阻RP61 可限制接收电路的电流,一方面保护接收红外管;另一方面可调节检测电路的灵敏度。因为传感器输出端得到的是模拟电压信号,所以在输出端增加了比较器,先将 LM339 输出电压与 2.5V 进行比较,再送给单片机处理和控制。传感器的安装正确选择检测方法和传感器件是决定循迹效果的重要因素,而且正确的器件安装方法也是循迹电路好坏的一个重要因素。从简单、方便、可靠等角度出发,同时在底盘装设 5 个光敏二极管,进行两级方向纠正控制,将大大提高其循迹的可靠性,具体位置分布如图 3 所示。5左X2右Y1左X1右Y2左轮右轮图 3 光敏电阻的分布图图中循迹传感器

6、全部在一条直线上。其中 X1 与 Y1 为第一级方向控制传感器,X2 与 Y2 为第二级方向控制传感器,并且黑线同一边的两个传感器之间的宽度不得大于黑线的宽度。小车前进时,始终保持(如图 3 中所示的行走轨迹黑线)在 X1 和 Y1 这两个第一级传感器之间,当小车偏离黑线时,第一级传感器就能检测到黑线,把检测的信号送给小车的处理、控制系统,控制系统发出信号对小车轨迹予以纠正。第二级方向探测器实际是第一级的后备保护,它的存在是考虑到小车由于惯性过大会依旧偏离轨道,再次对小车的运动进行纠正,从而提高了小车循迹的可靠性。2、控制模块设计此部分是整个小车运行的核心部件,起着控制小车所有的运行状态作用。

7、控制方法很多,大部分都采用单片机控制。这里选择了 ATMEL 公司的AT89C52 作为控制芯片,在芯片体积小、集成度高、可靠性好、容量足够、6驱动能力强、运用方便、经济廉价。3、电机驱动模块从单片机输出信号功率很弱,即使在没有其它外在负载是也无法带动电机,所以在实际电路中我们加入了电机驱动芯片提高输入电机信号的功率,从而能够根据需要控制电机转动。根据驱动功率大小以及连接电路的简单化要求选择 L298 为直流电机驱动芯片。电路图如下:74、FPGA 系统软件设计原理图:84.1 寻迹模块寻迹板送过来的 4 路检测信号送到 FPGA 板,FPGA 将此 4 路信号送出至 4 个 LED 灯显示状

8、态(检测至黑线亮,否则灭) ;同时将此 4 路信号送到单片机。显示模块及要求(采用 1602)小车启动:小车启动时,显示“Start” 。小车左拐:小车左拐时,显示“Left” 。小车右拐:小车右拐时,显示“Right” 。小车前进:小车前进时,显示“Running” 。小车后退:小车后退时,显示“Back” 。停车:小车停车时,显示“Stop” 。94.2 提示音模块(1) 小车启动小车启动前发出 3 声“嘟、嘟、嘟”的声音,提示音结束后,FPGA 发出一个启动信号给单片机,从而启动小车。(2)停车小车停车时,FPGA 播放一首音乐,音乐播放结束即表示小车完成了任务。104.3 FPGA 设

9、计总原理图如下:115、单片机控制模块5.1 启动小车小车在接收到 FPGA 送过来的启动指令后,读取寻迹信号,根据寻迹信号确定小车的运行状态,将小车的运行状态送至 FPGA,同时根据相应算法,驱动小车的左右电机前进。由于其实跑道与正常跑道有一段路程不好处理,所以需要冲一段路程才能使跑到正常轨道。5.2 正常前进当寻迹板中间两个传感器检测到黑线,小车都正常前进。5.3 左拐弯当最左端的两个传感器同时检测到黑线,或只有一个检测到黑线时,右端其它传感器检测到白色时,小车应左拐弯。但是根据跑道要求,当循迹板第一次检测到全黑时,小车应左转。125.4 右拐弯当最右端的两个传感器检同时测到黑线,或只有一

10、个检测到黑线时,左端其它传感器检测到白色时,小车应右拐弯。135.5 后退当 4 个传感器都检测到白色,小车后退。5.6 停车当 4 个传感器同时第六次检测到黑线,小车停车。小车停车后,发出一个停车标志信号送给 FPGA,使 FPGA 播放音乐。5.7 中断模块145.8 电机控制模块5.9 小车速度的 PWM 调制PWM 基本原理PWM 是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。在 PWM 驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”

11、来改变平均电压的大小,从而控制电动机的转速。15六、心得体会这次循迹小车课程设计不得不说是个大工程,让我们从中学会了许多东西,特别是分工与合作。从最开始的买元器件,到焊接、调试循迹板,再到 FGPA 的 VHDL 程序和 C 语言程序的编写,都不简单。我们的循迹板在第一次焊接完毕,经过调试后,能正常工作。但是,当我们把它装在小车上让它去跑时,问题就来了,有个灯就不亮了。后来经过检测后,终于又弄好了。然后在写 C 语言时,主要就是调节小车的速度和转弯时的角度。而最难的是FPGA 程序的编写,特别是音乐的编程,真的很复杂,花了我们很多时间才把它写好。而 1602 液晶的编写,用到了我们没有学过的状

12、态机,经过查找资料后,才弄清楚状态机到底是什么回事。由于这次课程设计的工作量很大,所以我们组这次的分工非常明确。一个人写 C 语言程序,一个人写 VHDL 程序,一个人负责循迹板的焊接与调试,16还有一个负责资料的收集和报告的书写。最后,经过我们组的分工协作,终于把循迹小车的制作完成了。这次课程设计,收获最大的,还是告诉了我们要主动去学习新的知识。附录一:循迹板原理图17附录二:单片机 C 语言程序#include/*第一部分 */以下是点击驱动芯片 L298 管脚位声明sbit PWM1=P10; /电机使能端sbit PWM2=P11;sbit IN1=P12; /电机控制端sbit IN

13、2=P13;sbit IN3=P14;sbit IN4=P15;sbit start=P00; /小车启动信号sbit stop=P01; /小车停止信号sbit RP1=P23; /此处是传感器 管脚位声明sbit RP2=P22;sbit RP3=P21;sbit RP4=P20;int count1,count2;/用于中断计数/延时函数,延时 z 秒void delay(int z)int x,y;18for(x=z;x0;x-)for(y=124;y0;y-);/*第二部分 电机控制子函数*/void forward1()/电机 1 前进IN1=0;IN2=1;void forwar

14、d2()/电机 2 前进IN3=0;IN4=1;void back1()/电机 1 后退IN1=1;IN2=0;19void back2()/电机 2 后退IN3=1;IN4=0;/*电机的速度控制 用 PWM 调速*/void speed(int cnt1,int sd1,int cnt2,int sd2) if(cnt10 & num=6)PWM1=0;PWM2=0; /当四个 LED 第六次检测到黑线时,小车停止stop=1; /发送停止信号给 FPGA,使 FPGA 播放音乐num+; 24/*第四部分 中断服务函数 */void time0()interrupt 1TH0=(6553

15、6-1000)/256;/定时 1msTL0=(65536-1000)%256;count1+;count2+;if(count1=500)/周期是 500mscount1=0;if(count2=500)/周期是 500mscount2=0; 附录三:FPGA 的 1602 液晶 VHDL 程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;-25entity LCD1602c isport(CLK,RST : in std_logic; -状态机时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间flag_start,flag_stop:i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号