循迹小车设计报告精华51单片机智能小车.docx
- 文档编号:10625800
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:14
- 大小:218.15KB
循迹小车设计报告精华51单片机智能小车.docx
《循迹小车设计报告精华51单片机智能小车.docx》由会员分享,可在线阅读,更多相关《循迹小车设计报告精华51单片机智能小车.docx(14页珍藏版)》请在冰豆网上搜索。
循迹小车设计报告精华51单片机智能小车
设计报告
课程:
机器人工程
设计名称:
智能循迹小车
小组成员:
学号:
专业:
机械电子工程
日期:
2012/2/5
指导老师:
成绩:
1.任务及要求
1.1任务
设计一个基于直流电机的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并沿着黑色车轨迹行驶。
系统方案方框图如图1-1所示。
图1-1系统方案方框图
2.系统设计方案
2.1小车循迹原理
这里的循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。
通常采取的方法是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。
单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。
2.2控制系统总体设计
自动循迹小车控制系统由主控制电路模块、直流电压电源模块、红外检测模块、电机及驱动模块等部分组成,控制系统的结构框图如图2-1所示。
主控制电路模块:
用STC89C52单片机、复位电路,时钟电路
其他模块见表2-1所示。
表2-1其他模块构成
电机及驱动模块
寻迹传感模块
电源模块
电机
驱动
红外发射/接受头
6V直流电
直流电机
LG9110
5号电池
两个
两个
两对
四个
3.系统方案
3.1寻迹传感器模块
本寻迹采用简单的红外探头。
白色的为红外发射探头,通电后连续的发射红外光线;黑色的为红外接收探头,接受反射回来的红外光线。
当寻迹时,红外接收头接收到黑线反射的红外光,电阻变小,对应P1端变为低电平。
将信号送入单片机进行处理。
3.2控制器模块
采用STC89C52单片机作为主控制器。
它是一个低功耗,高性能的8位单片机,片内含32k空间的可反复擦写100,000次Flash只读存储器,具有4K的随机存取数据存储器(RAM),32个I/O口,2个8位可编程定时计数器,且可在线编程、调试,方便地实现程序的下载与整机的调试。
时钟电路和复位电路如图3-2(与单片机构成最小系统)
1)采用外部时钟,晶振频率为12MHZ
2)采用按键复位
图3-2时钟电路和复位电路
3.3电源模块
电源采用直流电源,为四节五号电池供电。
为电机驱动电路板、传感器模块板和单片机主控制板提供能源,满足寻迹要求。
3.4电机及驱动模块
3.4.1电机
车体采用四轮结构,前轮驱动;为三级减速机构,有一级蜗轮蜗杆传动,两级直齿轮传动。
电机采用直流减速电机,直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。
由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。
3.4.2驱动
驱动模块采用专用芯片LG9110作为电机驱动芯片,以下为L298N的引脚图和输入输出关系表。
图3-3LG9110外部引脚表2LG9110管脚定义
驱动电路的设计如图3-4所示:
图3-4LG9110电机驱动电路
4.软件设计
智能小车通过前端的红外传感器,识别寻迹的效果。
当左指示灯探到白色道路时,说明小车往左跑偏,应该左轮比右轮转速快。
此处设为左轮正转,右轮停转,从而实现寻线功能。
单片机控制端口初始化定义如下:
sbitLeftLed=P2^0;//定义前方左侧指示灯端口
sbitRightLed=P0^7;//定义前方右侧指示灯端口
sbitLeftIR=P3^5;//定义前方左侧红外探头端口
sbitRightIR=P3^6;//定义前方右侧红外探头端口
sbitM1B=P0^0;//定义左侧电机驱动A端
sbitM1A=P0^1;//定义左侧电机驱动B端
sbitM2B=P0^2;//定义右侧电机驱动A端
sbitM2A=P0^3;//定义右侧电机驱动B端
sbitB1=P0^4;//定义语音识别传感器端口
sbitSB1=P0^6;//定义蜂鸣器端口
……
voidControlCar(unsignedcharConType)//定义电机控制子程序
{
M1A=0;//将M1电机A端初始化为0
M1B=0;//将M1电机B端初始化为0
M2A=0;//将M2电机A端初始化为0
M2B=0;
寻迹相关程序段如下:
if(LeftIR==0&RightIR==1)//左侧红外探头没有接收到白色道路信号
{
ControlCar(4);//左侧没有信号时,开始向右转一定的角度
Delay();//修改这里进行转弯角度的调整
//Delay();//同上
//Delay();
gotoNextRun;
}
if(RightIR==0&LeftIR==1)
{
ControlCar(3);//右侧没有信号时,开始向左转一定的角度
Delay();//修改这里进行转弯角度的调整
//Delay();//同上
//Delay();
gotoNextRun;
}
if(RightIR==0&LeftIR==0)
{
ControlCar
(2);//后退
Delay();//修改这里
//Delay();//同上
//Delay();
gotoNextRun;
}
if(RightIR==1&LeftIR==1)
{
ControlCar
(1);//前进
Delay();//修改这里进调整
//Delay();//同上
//Delay();
gotoNextRun;
}
gotoStart;
NextRun:
小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号,即进入判断处理程序,如果小车左半部分压到黑线,车身向右偏出,此时应使小车向左转在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。
循迹流程图如图4-1所示。
附录1:
硬件电路图
附录2:
程序源代码
#include
sbitLeftLed=P2^0;//定义前方左侧指示灯端口
sbitRightLed=P0^7;//定义前方右侧指示灯端口
sbitLeftIR=P3^5;//定义前方左侧红外探头端口
sbitRightIR=P3^6;//定义前方右侧红外探头端口
sbitFrontIR=P3^7;//定义前方正前方红外探头端口
sbitM1B=P0^0;//定义左侧电机驱动A端
sbitM1A=P0^1;//定义左侧电机驱动B端
sbitM2B=P0^2;//定义右侧电机驱动A端
sbitM2A=P0^3;//定义右侧电机驱动B端
sbitB1=P0^4;//定义语音识别传感器端口
sbitSB1=P0^6;//定义蜂鸣器端口
#defineRunShowP1//定义数据显示端口
voidDelay()//定义机器人调转子时间子程序
{unsignedintDelayTime=50000;//定义机器人转弯时间变量
while(DelayTime--);//机器人转弯循环
SB1=!
SB1;//蜂鸣器闪响
return;
}
voidControlCar(unsignedcharConType)//定义电机控制子程序
{
M1A=0;//将M1电机A端初始化为0
M1B=0;//将M1电机B端初始化为0
M2A=0;//将M2电机A端初始化为0
M2B=0;//将M2电机B端初始化为0
switch(ConType)//判断用户设定电机形式
{
case1:
//前进//判断用户是否选择形式1
{M1A=1;//M1电机正转
M2A=1;//M2电机正转
break;
}
case2:
//后退//判断用户是否选择形式2
{M1B=1;//M1电机反转
M2B=1;//M2电机反转
break;
}
case3:
//左转//判断用户是否选择形式3
{
M2A=1;//M2电机正转
break;
}
case4:
//右转//判断用户是否选择形式4
{M1A=1;//M1电机正转
//M2电机反转
break;
}
case8:
//停止//判断用户是否选择形式8
{
break;//退出当前选择
}
}
}
voidmain()//主程序入口
{
bitRunFlag=0;//定义小车运行标志位
RunShow=0;//初始化显示状态
ControlCar
(1);//初始化小车运行状态
while
(1)//程序主循环
{
Start:
LeftLed=LeftIR;//前方左侧指示灯指示出前方左侧红外探头状态
RightLed=RightIR;//前方右侧指示灯指示出前方右侧红外探头状态
if(FrontIR==0)
{
ControlCar
(2);//前侧没有信号时,开始向后退
Delay();//修改这里进行转弯角度的调整
//Delay();//同上
//Delay();
ControlCar(4);//左侧没有信号时,开始向右转一定的角度
Delay();//修改这里进行转弯角度的调整
Delay();//同上
//Delay();
gotoNextRun;
}
if(B1==0)
{
while(B1==0);//话筒,暂停
Delay();//去除杂音
//Delay();//同上
//Delay();
ControlCar(8);
Delay();//停车
Delay();//同上
Delay();
gotoNextRun;
}
if(LeftIR==0&RightIR==1)//左侧红外探头没有接收到白色道路信号
{
ControlCar(4);//左侧没有信号时,开始向右转一定的角度
Delay();//修改这里进行转弯角度的调整
//Delay();//同上
//Delay();
gotoNextRun;
}
if(RightIR==0&LeftIR==1)
{
ControlCar(3);//右侧没有信号时,开始向左转一定的角度
Delay();//修改这里进行转弯角度的调整
//Delay();//同上
//Delay();
gotoNextRun;
}
if(RightIR==0&LeftIR==0)
{
ControlCar
(2);//后退
Delay();//修改这里
//Delay();//同上
//Delay();
gotoNextRun;
}
if(RightIR==1&LeftIR==1)
{
ControlCar
(1);//前进
Delay();//修改这里进调整
//Delay();//同上
//Delay();
gotoNextRun;
}
gotoStart;
NextRun:
ControlCar
(1);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小车 设计 报告 精华 51 单片机 智能