课程设计 智能小车循迹VHDLWord文档下载推荐.docx
《课程设计 智能小车循迹VHDLWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《课程设计 智能小车循迹VHDLWord文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
3、各组成部分的电路结构及工作原理………………………………..4
4、系统硬件电路设计(各模块的硬件连接关系)……………..9
5、CPLD控制模块内各单元模块的设计……………………………..10
6、CPLD控制模块的顶层电路图………………………………………..13
7、系统总装配图……………………………………………………………..14
8、实验结果分析……………………………………………………………..14
9、调试中出现问题的解决………………………………………………..15
10、改进意见及收获体会…………………………………………………..15
11、器件与器材………………………………………………………………..16
12、使用仪器设备……………………………………………………………..17
13、参考文献…………………………………………………………………..17
一、任务及要求
1、课程任务及其功能
设计智能小车循迹控制系统
(1)小车可完成前进、转向等行驶方式;
(2)小车在底盘安装四组红外传感器;
(3)系统根据红外传感器提供的信息测算小车与地面深色路径的偏离程度;
(4)当小车偏离地面深色路径时自动以转小弯、转大弯的运动方式调整小车的行进轨迹,完成自动循迹的运动方式。
2、设计要求
(1)要求用可编程逻辑器件(FPGA/CPLD)设计实现;
(2)在实验箱上或印刷电路板上安装、调试出所设计的电路;
(3)在EDA编程实验系统上完成硬件系统的功能仿真;
(4)写出设计、调试、总结报告。
3、课程设计的时间安排
1)方案设计;
(1.5天)
根据设计任务书给定的技术指导和条件,进行调查研究、查阅参考文献,进行反复比较和可行性论证,确定出方案电路,画出主要单元电路,数据通道,输入、输出及重要控制信号概貌的框图。
2)电路设计:
(2天)
根据方案设计框图,并画出各单元电路的详细电路图及总体电路图。
3)电路仿真:
(2.5天)
熟悉EDA工具,在EDA软件平台上修改设计的电路,给出正确的仿真结果。
4)装配图设计:
(1天)
根据给定的元器件,结合逻辑电路图,设计出电路制作的具体装配图(即绘出组件数量,管脚号以及器件布置的实际位置)。
同时配以必要的文字说明。
5)电路制作:
对选定的设计,按装配图进行装配,调试实验。
6)总结鉴定:
考核样机是否全面达到现定的技术指标,能否长期可靠地工作,并写出设计总结报告。
2、整体方案及特点
1、智能小车循迹总体方案
2、设计的思路及其特点
在智能寻迹小车控制系统的设计中,以CPLD为核心,用L298N驱动两个减速电机,当产生信号驱动小车前进时,是通过寻迹模块里的红外对管是否寻到黑线产生的电平信号通过电压比较器LM339返回到CPLD,然后CPLD根据程序设计的要求做出相应的判断送给电机驱动模块,让小车来实现前进、左转、右转、停车等基本功能。
三、各组成部分的电路结构及工作原理
1、红外寻迹模块的设计
(1)电路结构
发射部分接收部分
(2)工作原理
该系统中的寻线模块我们采用的是红外传感器。
它有一个发射管(白色)和一个接收管(黑色),一般情况下接收管能收到发射管发送的红外光,但当遇到吸光介质(如黑色物体)时接收管便不能收到发射管的红外光。
因为传感器输出端得到的是模拟电压信号,所以在输出端增加了电压比较器LM339,先将输出电压与2.5V进行比较(检测到黑线时输出低电平,发光二极管不亮;
检测到白线时输出高电平,发光二级管亮),再送给CPLD处理和控制。
本设计中,为使小车寻线稳定,最好选择差异较大的环境,例如在白地板上贴上黑线,可使红外寻线模块工作更加灵敏稳定。
2、电源模块的设计
利用L298稳压管输出一路电压,供给单片机和电机驱动,还供给寻迹模块。
L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
3、CPLD控制模块设计
此部分是整个小车运行的核心部件,起着控制小车所有的运行状态作用。
采用可编程逻辑期间CPLD作为控制器。
CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。
采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心
1)正常前进
当寻迹板中间两个传感器检测到白线,小车都正常前进。
2)左小拐弯
当只有左端第2个传感器检测到黑线,其余3个传感器检测到白色时,小车应左小拐弯。
3)左大拐弯
当只要左端第1个传感器检测到黑线,右端2个传感器检测到白色时,小车应左大拐弯。
4)右小拐弯
当只有右端第2个传感器检测到黑线,其余3个传感器检测到白色时,小车应右小拐弯。
5)右大拐弯
当只要右端第1个传感器检测到黑线,左端2个传感器检测到白色时,小车应右大拐弯。
6)停车
当4个传感器同时检测到黑线或其他情况,小车停车。
4、驱动模块设计
(1)电路图
(2)工作原理
从CPLD输出信号功率很弱,即使在没有其它外在负载是也无法带动电机,所以在实际电路中我们加入了电机驱动芯片提高输入电机信号的功率,从而能够根据需要控制电机转动。
根据驱动功率大小以及连接电路的简单化要求选择L298N为直流电机驱动芯片。
L298N是SGS公司的产品,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
其引脚排列如下图所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。
L298N可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。
(5、10)、(7、12)脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。
L298N的逻辑功能如表1所示。
表1L298N逻辑功能表
ENA(B)
IN1(IN3)
IN2(IN4)
电机运行状况
H
L
正转
反转
同IN2(IN4)
同IN1(IN3)
快速停止
X
停止
其引脚图如图1所示:
引脚介绍:
第1、15脚:
可单独引出连接电流采样电阻器,形成电流传感信号,也可直接接地。
第2、3脚:
A电机输出端口。
第4脚:
接逻辑控制的+5V电源。
第6脚:
A桥使能端口。
第5、7脚:
输入标准TTL电点平对A桥的输出OUT1、OUT2进行控制。
第8脚:
接电源地。
第9脚:
接电机驱动电源,最高可达50V。
第11脚:
B桥使能端口。
第10、12脚:
输入标准TTL电平对B桥的输出OUT3、OUT4进行控制。
第13、14脚:
B电机输出端口。
5、直流电机
(1)实物图
(2)原理
因为一个驱动芯片L298N可驱动两个直流电机,可我们这次购买的小车有四个直流电机,所以我们采用两两并联的方法,即左侧两个并联,右侧两个并联。
这样就可以使每一侧的两个电机步调一致起来,便于控制。
4、系统硬件电路设计(各模块的硬件连接关系)
5、CPLD控制模块内各单元模块的设计
1、PWM(脉冲宽度调制)
(1)VHDL程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYPWMAIS
PORT
(CLK:
INSTD_LOGIC;
C:
INSTD_LOGIC_VECTOR(3DOWNTO0);
PWM:
OUTSTD_LOGIC
);
ENDPWMA;
ARCHITECTUREexampleOFPWMAIS
SIGNALCOUNT:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK)
BEGIN
IFCLK'
EVENTANDCLK='
1'
THEN
IFCOUNT="
1001"
COUNT<
="
0000"
;
ELSE
=COUNT+1;
ENDIF;
IFCOUNT<
CTHENPWM<
='
ELSEPWM<
0'
ENDPROCESS;
ENDexample;
(2)原理图
(3)仿真波形
2、主要控制模块
(1)原理和功能
根据小车前面的四个红外传感器所检测到的信号控制两端电机的转速。
1)当小车需要正常前进时,左侧两个电机的转速应等于右侧两个电机的转速。
2)当小车需要左小拐时,左侧两个电机的转速应略小于右侧两个电机的转速。
3)当小车需要左大拐时,左侧两个电机的转速应比右侧两个电机的转速小得多。
4)当小车需要右小拐时,左侧两个电机的转速应略大于右侧两个电机的转速。
5)当小车需要右大拐时,左侧两个电机的转速应比右侧两个电机的转速大得多。
6)当小车需要停止时,左侧两个电机的转速和右侧两个电机的转速应都为零。
(2)VHDL程序
ENTITYcontrolIS
PORT
(p1,p2,p3,p4:
A,B:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
ENDcontrol;
ARCHITECTUREbehaveOFcontrolIS
PROCESS(p1,p2,p3,p4)
VARIABLETEMP:
STD_LOGIC_VECTOR(3DOWNTO0):
TEMP:
=p1&
p2&
p3&
p4;
IF(TEMP="
)THEN
A<
1000"
B<
ELSIF(TEMP="
0010"
0011"
ELSIF(TEMP=("
0001"
)ORTEMP=("
))THEN
0100"
1100"
1010"