循迹小车实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循迹小车实训报告
目录
一、项目目标 (3)
二、项目内容 (3)
三、项目原理 (3)
四、项目原理图和实物图 (3)
1、电路原理方框图 (4)
2、实物图 (4)
3、总共装图 (4)
五、项目模块 (5)
1、寻迹模块 (5)
2、显示模块(1602液晶/数码管) (5)
3、提示音模块 (5)
4、FPGA模块 (5)
5、单片机控制模块 (6)
六、项目程序 (7)
1、循迹程序(部分) (7)
2、FPGA程序(部分) (8)
七、总结 (9)
一、项目目标
1、学会智能电子产品的功能设计与任务分析,能进行小型电子产品方案设计;
2、掌握基于51单片机、FPGA模数混合硬件系统设计和程序设计;
3、熟悉电子信息类企业项目完整的运作过程及管理规范,培养团队协作能力、沟通能力、创新能力和组织能力。
二、项目内容
任务描述:完成任务分析、功能设计,硬件系统设计、制作与装调,软件系统设计及整机调试等工作任务。
具体内容:
1、自行设计、制作寻迹电路板;
2、采用制作的寻迹电路板、控制板与提供的小车车体搭建寻迹小车;
3、用C语言和VHDL语言编写程序。
三、项目原理
这是一种基于STC89C52RC 单片机的小车寻迹系统。
该系统采用四组高灵敏度的光敏感应,对路面黑色轨迹进行检测,并利用单片机产生的PWM波,控制小车速度。
测试结果表明,该系统能够平稳跟踪给定的路径。
四、项目原理图和实物图(高菊、谢鹏飞完成)
1、电路原理方框图
2、实物图
2.1寻迹板(正面)2.2寻迹板(反面)2.3FPGA板
2.4工装图
五、项目模块
1、寻迹模块
寻迹板送过来的4路检测信号送到FPGA板,FPGA将此4路信号送出至4个LED灯显示状态(检测至黑线亮,否则灭);同时将此4路信号送到单片机。
2、显示模块(1602液晶/数码管)
显示模块可以采用1602液晶,也可采用数码管来显示。
2.1 小车启动
小车启动时,显示“Start”/“1”。
2.2 小车左拐
小车左拐时,显示“Left”/“2”。
2.3 小车右拐
小车右拐时,显示“Right”/“3”。
2.4 小车前进
小车前进时,显示“Running”/“4”。
2.5 小车后退
小车后退时,显示“Back”/“5”。
2.6 停车
小车停车时,显示“Stop”/“6”。
3、提示音模块
3.1 小车启动
小车启动前发出3声“嘟、嘟、嘟”的声音,提示音结束后,FPGA发出一个启动信号给单片机,从而启动小车。
3.2 停车
小车停车时,FPGA播放一首音乐,音乐播放结束即表示小车完成了任务。
4、FPGA模块
4.1 寻迹信号处理
寻迹板过来的信号一方面送到LED灯显示寻迹状态,另一方面要将此信号送到单片机去处理。
4.2 小车状态显示
将小车的运行状态用1602显示出来。
4.3 提示音
小车启动前,发出3声提示音。
小车停车后播放一首音乐。
4.4 小车启动
小车在发出3声提示音后,FPGA发出一个开始指令给单片机,从而启动小车前进。
4.5 小车停车
小车停车后,FPGA接收到单片机的停车指令,开始播放音乐,直到一首音乐播放完毕。
5、单片机控制模块
5.1 启动小车
小车在接收到FPGA送过来的启动指令后,读取寻迹信号,根据寻迹信号确定小车的运行状态,将小车的运行状态送至FPGA,同时根据相应算法,驱动小车的左右电机前进。
5.2 正常前进
当寻迹板中间两个传感器检测到黑线(任意一个检测到黑线或两个同时检测到黑线),小车都正常前进。
5.3 左拐弯
当最左端的传感器检测到黑线,右端3个传感器检测到白色时,小车应左拐弯。
5.4 右拐弯
当最右端的传感器检测到黑线,左端3个传感器检测到白色时,小车应右拐弯。
5.5 后退
当4个传感器都检测到白色,小车后退。
5.6 停车
当4个传感器同时连续多次检测到黑线(如连续3次),小车停车。
小车停车后,发出一个停车标志信号送给FPGA。
提示:注意停车标志和十字交叉线的区别。
停车标志的宽度要远大于十字交叉线。
六、项目程序(欧明扬完成)
3、循迹程序(部分)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint tt=0,flag=0,flag1=0,flag2=0,num=0,stop_buzzer=0;
sbit in1=P2^0;
sbit in2=P2^1;
sbit in3=P2^2;
sbit in4=P2^3;
sbit a=P0^0;
sbit b=P0^1;
sbit c=P0^2;
sbit d=P0^3;
sbit ENA=P2^4;
sbit ENB=P2^5;
sbit control=P1^0;
sbit FPGA1=P1^1;
sbit FPGA2=P1^2;
sbit FPGA3=P1^3;
sbit FPGA4=P1^4;
sbit buzzer=P1^5;
void init_time();
void delay(unsigned int z);
void Turn_left()
{
in1=0;
in2=0;
in3=1;
in4=0;
}
void Turn_right()//本程序为右轮旋转,左轮停止
{
in1=1;
in2=0;
in3=0;
in4=0;
}
void Go()
{
in1=1;
in2=0;
in3=1;
in4=0;
}
void Back()
{
in1=0;
in2=1;
in3=0;
in4=1;
}
void Stop()
{
in1=1;
in2=1;
in3=1;
4、FPGA程序(部分)
Buzzer
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity buzzer is
port(
clk1HZ,clk10MHZ:in std_logic;
out_buzzer,control:out std_logic );
end buzzer;
architecture bhv of buzzer is
signal s1:integer range 0 to 20;
begin
process(clk1HZ)
begin
if (clk1HZ'event and clk1HZ='1') then s1<=s1+1;
if(s1=20) then
s1<=18;
end if;
end if;
end process;
七、总结(刘庆利完成)
本次实训,我们的设计小组有高菊、刘庆利、谢鹏飞、欧明扬四个成员。
小组内有明确的分工,具体的分工及完成情况如上述,在总体设计之前我们全体成员经过了一段时间的讨论,明确了所做项目的具体思路及想法,各成员通过分工之后,都能按时的完成自己的工作,这在实践方面对我们自身都有很大的提高。
并且在此过程中,团队合作、互帮互助、相互讨论,从中提高了我们的团队合作能力。
比如说,我是负责写实训报告的,那么在这之前,我得了解整个团队里的动向,每个人的分工和完成情况。
同时我要对组员所做的工作以及成果进行分析,至少我要对其内容有所了解。
如此,在充满团结和奋斗的精神下,我们小组终于在26号将整个设计与制作圆满完成。
在此结果中,我们可以看到我们做得优秀的方面,但是也固然存在着一些问题,希望老师和各位同学能给与指出,并提出你们宝贵的意见。