智能寻迹避障小车寻迹系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章智能寻迹避障小车寻迹系统设计1.任务
任务一:产生智能寻迹避障小车沿黑线转圈的控制程序;
任务二:产生智能寻迹避障小车带状态显示沿黑线转圈的控制程序;
2.要求
(1)能控制智能寻迹避障小车沿黑线实现转圈功能;
(2)行走过程中小车一直压着黑线走,不得冲出黑线圆圈之外或之内;
度
、
程如下:两对红外线收、发对管安装在智能寻迹避障小车底盘正前方,红外发射管一直发射信号,接收管时刻准备接收信号。两对对着地的红外管发射红外信号,信号在白色的地面上反射回接收管,通过接收管把信号送回单片机进行处理,完成相应的动作。假如在黑色的地面上,信号被地面吸收,就无信号返回,单片机检测到无信号,根据程序也会做出相应的动作。如图2.1所示为红外线收、发对管外型示意图。
图2.1 红外收、发对管外形图
2.3 案例设计
2.3.1 系统设计方案
本项目采用单片机最小系统+红外寻线传感器来实现小车寻线功能。系统设计框图如图
2.2所示。
图2.2 系统设计框图
2.3.2 硬件电路设计
智能寻迹避障小车寻线电路原理图如图2.3所示:它是在单片机最小系统的基础上直接由单片机的P3连接红外线收、发对个构成的,其中单片机的P3.5端口控制左边寻线电路模块,右边寻线电路模块由P3.6控制。为了保准巡线信号的准确度,一般要求左、右红外发射对管安装时离地面高度控制在0.5cm内比较理想,距离太大,可能造成信号不灵敏,巡线不够准确,距离太小,也可能造成小车前进会与地面产生刮擦,从而损坏器件;另外,左、右收、发对管安装的距离应保持在比黑线条的宽度多一点,做到夹在黑线条,并处于黑线条的边缘,不能压在黑线上。这样巡线才能准确。
图2.3 智能寻迹避障小车寻线电路原理图
void qian()
{
zuo1=0;
zuo2=1; //左边往前
you1=0;
you2=1; //右边往前
}
void hou()
{
zuo1=1;
zuo2=0; //左边往后
you1=1;
you2=0; //右边往后
}
void zuo()
{
zuo1=1;
zuo2=0; //左边往后
you1=0;
you2=1; //右边往前
}
D1=1;
break; //跳出循环
}
}
}
if(youd==1&zuod==0)
{
while(1)
{
you();
D2=0;
if(youd==0)
{
D2=1;
break; //道理同上
}
}
}
}
}
2、程序运行及调试
图2.4 智能寻迹避障小车寻黑线转圈流程图
任务二:产生智能寻迹避障小车带状态显示沿黑线转圈的控制程序;
1、源程序
#include
#define uint unsigned int
#define uchar unsigned char
#define out P2
sbit zuo1=P0^1;
sbit zuo2=P0^0;
sbit you1=P0^3;
sbit you2=P0^2;
sbit zuod=P3^5;
sbit youd=P3^6;
zuo2=0; //左边往后
you1=1;
you2=0; //右边往后}
void zuo()
{
zuo1=1;
zuo2=0; //左边往后
you1=0;
you2=1; //右边往前
}
void you()
{
zuo1=0;
zuo2=1; //左边往前
you1=1;
you2=0; //右边往后
}
void main()
{
while(1)
{
you();
out=ZM[4];
D2=0;
if(youd==0)
{
D2=1;
break; //道理同上
}
}
}
}
}
2、程序运行及调试
程序的运行与调试与任务一相同,当程序下载到小车控制电路单片机中,开机运行,小车除完成任务一的动作外,还会在小车行进过程中在数码管上显示小车的状态,比如,小车前进,则在数码管上显示“1”;小车左转弯则在数码管上显示“3”;小车右转弯则在数码管上显示“4”。
3、程序设计思路
程序设计思路与任务一基本相同,只是在小车直行、左转、右转函数后面调用相应的状态显示字符。其程序流程图如图2.5所示。
”,
c)表2-1显示器显示数字、字母与显示代码之间的对应关系
2、LED显示器显示方式
点亮LED显示器有两种方式:一是静态显示;二是动态显示。
所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。如图2.7所示为4位静态LED显示器电路。该电路每一位可单独显示。只要在要显示的那位的段选线上保持段选码电平,该位就能保持显示相应的显示字符。这种电路的优点是:在同一
3、LED显示器接口实例
实例1:用LED数码管显示数字“6”
本例用LED数码管显示数字“6”,接口电路如图2.9所示(采用共阳极数码管)。