省赛论文C题智能小车Word格式.docx
- 文档编号:22204465
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:31
- 大小:153.21KB
省赛论文C题智能小车Word格式.docx
《省赛论文C题智能小车Word格式.docx》由会员分享,可在线阅读,更多相关《省赛论文C题智能小车Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
控制LCD显示的MCU有时间、路程、速度、金属检测模块,控制小车动作的MCU
有黑线、金属检测、电机控制模块。
1.4显示方案的决定
显示可采用LCD和LED两种方案。
照顾到题目要求显示多个参数和为了简化电路和算法。
我们决定采用,用户界面良好的LCD1602来实现显示。
1.5电机的比较和选择
使用两个直流机。
一个电机用来控制前轮的方向转动,后轮采用PWM控制电机前进速度。
直流机的扭矩大,但是不好控制,且不易于立即停止。
使用两个步进机对后轮驱动。
转弯时,只需控制一边的步进机的速度小于另一边的速度。
采用两个步进机控制很方便,但是两个步进机与小车一起的机械结构不好构造。
方案三:
前轮直流机驱动,后轮步进机驱动。
利用直流机的扭矩大的特性,控制转弯。
利用步进机的精确步进来控制小车前进、加速、减速、前进。
采用此方案符合要求。
二、系统的设计
2.1、总体设计
本设计分为两个MCU共6个模块:
前轮直流机驱动电路、后轮步进机驱动电路、轨迹探测模块、测距、测速及显示模块、金属探测模块。
前轮舵机驱动电路用于转向控制;
后轮步进机驱动电路用于速度控制;
探测模块利用反射式红外发射接收器对黑色轨道进行寻迹;
金属探测模块用于检测路过路径中探测黑线中和黑线外的金属。
控制显示部分的MCU:
控制小车的MCU:
2.2硬件系统设计
驱动电路使用步进机进行驱动。
实际电路图如下:
所用到的步进机的型号是PM42L-048-SYMG,工作电压2V~24V,两相四线。
2.2.2车转弯系统
前轮的转弯控制采用舵机转弯控制,舵机用调速控制芯片L298控制正反转。
为确保在行驶过程小车各部件均能正常工作且相互之间不收影响,我们使用了三组电源为不同模块提供工作电压。
其中:
其中一组12V电源为步进电机供电,另一组6V电源为直流机供电,一组5V为控制电路供电。
如此安排既满足了电机、电路的供电要求,也不会使电路系统因电压过大而烧坏,同时避免了各个系统之间的干扰。
2.2.4金属探测报警系统
金属探测系统采用FELING公司的LGA12M-5N1金属探测器。
工作电压6V到36V,工作电流20-200mA,有效探测距离为5mm。
我们采用P3.5,P3.6,P3.7作为金属探测器的接口,当出现低点平时为检测出金属。
将其安装于车头,分中间和两侧安装。
当检测到有金属时,输出至LED指示报警。
2.2.5寻轨系统
将9个反射式红外接收器
分布于小车头部,检测到黑线时,信号分别经过LM324比较电压,并把比较后得到的信号传送给单片机的P0口检测,检测黑线输出为高电平,否则为低电平。
2.2.6测速系统,测路程,计时系统
2.3软件系统
三、系统调试
系统功能:
该智能小车以宽度20mm,弧半径500mm黑色引导线为作为引导完成左行90°
,和右行90°
,并直行等功能。
并实时检测并显示小车速度、行驶路程、行驶时间和检测到的金属数目和金属位置。
在检测到铁片时能提示,会停车5秒并报警。
并在引导线中间断开时仍能够在规定时间内完成整个路程。
测试表
直道最大速度(cm/s)
直道最小速度(cm/s)
完成时间
测量总路程
(cm)
轨道上金属数
轨道外金属数
金属总数
球丢落次数
金属1位置
金属2位置
金属3位置
金属4位置
金属5位置
外
金属6位置
1
8
5
1:
41’
224
4
21
cm
82
149cm
181cm
120cm
171cm
2
7
43’
227
6
20
80
149
179cm
未测
3
40’
219
19
150cm
180cm
119cm
170cm
结果分析:
最大速度与最小速度均能较好的符合要求。
记录的完成时间,测量的路程均符合要求,很好的符合了行走的任务。
轨道内的金属均能检测到,但轨道外的金属有一次为能检测到,主要原因是舵机拐弯时偏离金属片,正好没有检测到金属。
其他次检测都符合要求。
小车行走稳定,小球未曾丢落。
该项符合要求。
总体上我们得小车符合实验要求。
性能表现良好。
四、总结
本系统以两个51单片机为核心控制器,分别控制LCD显示信息,和小车动作。
自动进行黑线寻轨,和金属检测。
以我们测试的数据来看我们的系统架构设计合理,功能电路实现较好,系统性能优良、稳定,我们的小车较好地达到了题目要求的各项指标。
【1】《51单片机C语言应用程序设计实例精讲》/戴佳戴卫恒编著-电子工业出版社,2006.4
【2】童诗白,华成英.模拟电子技术基础[M].北京:
高等教育出版社,2001.
【3】《MCS-51单片机应用开发实用子程序》/边春元王志强编著-人民邮电出版社,2005.9
【6】《8051单片机实践与应用》/吴金戎沈庆阳郭庭吉编著-清华大学出版社,2002.9
【7】《机器人设计与控制》/美丹尼斯.克拉克-科学出版社,2004.
附录
控制MCU程序清单
;
小车控制程序
;
--------------------------
RTURNBITP1.5;
左转
LTURNBITP1.6;
右转
BEGAINBITP1.0;
开始的按键
STOP_KEYBITP1^1
MIDDLEBITP0.4;
中间探测器
LEFTBITP0.5;
左边探测器
RIGHTBITP0.3;
右边探测器
LLEFTBITP0.6;
次左边探测器
RRIGHTBITP0.2;
次右边探测器
LLLEFTBITP0.7;
最左边探测器
RRRIGHTBITP0.1;
最右边探测器
LLLLEFTBITP3.1
RRRRIGHTBITP3.2
METAL1BITP3.5;
金属探测1
METAL2BITP3.6;
金属探测2
METAL3BITP3.7;
金属探测3
METAL4BITP3.4
METAL5BITP3.3
METAL_ALARMBITP3.0
ORG00H
JMPSTART
START:
CLRLLLLEFT
CLRRRRRIGHT
MOVP2,#00H
MOVP0,#00H
SETBP1^7
SETBSTOP_KEY
SETBLTURN
SETBRTURN
LOOP:
JNBBEGAIN,FOR2;
按钮按了没
JMPLOOP
FOR2:
CALLDELAY1
JNBBEGAIN,$
JMPFOR3
FOR3:
FOR33:
MOVR0,#00H;
开始时的速度
FOR4:
MOVA,R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZFOR33
CPLA
MOVP2,A
CALLCHECK1
;
CALLDELAY1
INCR0
JMPFOR4
CHECK1:
CLRC
MOVR4,#07H;
如果同时有4个以上检测到就是到尽头
MOVR5,#04H
MOVA,P0
CONTINUE:
RLCA
JCCHECK22
DJNZR4,CONTINUE
JMPCHECK23
CHECK22:
DJNZR5,CHECK13
CALLSTOP
CLRSTOP_KEY
JMP$
CHECK13:
DJNZR4,CONTINUE
CHECK23:
JBLEFT,A2
JBRIGHT,A3
JBMIDDLE,A1
JBLLEFT,A2
JBRRIGHT,A3
JBLLLEFT,A2
JBRRRIGHT,A3
JBLLLLEFT,BACK11
JBRRRRIGHT,BACK22
SETBRTURN
RET
BACK11:
CALLBACK1
BACK22:
CALLBACK2
RET
A1:
JNBMETAL1,STOP5S;
检测到金属停5秒
JNBMETAL2,STOP5S
JNBMETAL3,STOP5S
JNBMETAL4,STOP5S
JNBMETAL5,STOP5S
CALLDELAY2;
直线还是加速
A2:
SETBLTURN;
转弯减速
CLRRTURN
A3:
CLRLTURN;
STOP5S:
ORLP2,#0FFH
CLRMETAL_ALARM
CALLDELAY3
SETBMETAL_ALARM
JNBMETAL1,CHECK2;
检测到金属
JNBMETAL2,CHECK2
JNBMETAL3,CHECK2
JNBMETAL4,CHECK2
JNBMETAL5,CHECK2
CHECK2:
FOR55:
FOR6:
JZFOR55
JNBMETAL1,CHECK6;
JNBMETAL2,CHECK6
JNBMETAL3,CHECK6
JNBMETAL4,CHECK6
JNBMETAL5,CHECK6
CHECK6:
CALLCHECK3
JMPFOR6
CHECK3:
JBLEFT,A22
JBRIGHT,A33
JBMIDDLE,A11
JBLLEFT,A22
JBRRIGHT,A33
JBLLLEFT,A22
JBRRRIGHT,A33
JBLLLLEFT,BACK1
JBRRRIGHT,BACK2
BACK1:
MOVR3,#30H
SETBRTURN
CLRLTURN
FOR99:
FOR8:
MOVDPTR,#TABLE1
JZFOR99
CALLDELAY1
INCR0
DJNZR3,FOR8
BACK2:
MOVR3,#30H
SETBLTURN
CLRRTURN
FOR88:
FOR7:
JZFOR88
DJNZR3,FOR7
A11:
A22:
CLRRTURN
A33:
STOP:
DELAY1:
MOVR7,#50;
减速延时
D1:
MOVR6,#248
DJNZR6,$
DJNZR7,D1
DELAY2:
MOVR1,#50;
加速延时
D2:
MOVR2,#248
DJNZR2,$
DJNZR1,D2
DELAY3:
MOVR1,#05;
延时5秒
D22:
CALLDELAY4
DJNZR1,D22
DELAY4:
MOVR5,#100
D3:
MOVR6,#20
D4:
MOVR7,#248
DJNZR7,$
DJNZR6,D4
DJNZR5,D3
TABLE1:
DB0cH,09H,03H,06H;
步进机的码表
DB00H
TABLE:
DB0cH,06H,03H,09H
END
显示MCU程序清单
//------------------------
//小车显示程序
#include<
reg51.h>
math.h>
#definedisplay_portP2//definelcddisplayports
#definesmall_distance27//definethesmallunitofdistance
sbitRS=P0^5;
sbitRW=P0^6;
sbitE=P0^7;
sbitALARM=P1^3;
sbitmetal1_port=P1^5;
//definetheportfordetectthemetals
sbitmetal2_port=P1^6;
sbitmetal3_port=P1^7;
sbitmetal4_port=P1^4;
sbitmetal5_port=P1^3;
sbitBEGAIN=P1^0;
sbitSTOP=P1^1;
unsignedchartime_count=20;
//definethecountforonesecond
intdistance=0;
//definethedistanceofcarrunning
unsignedchardistance_reg=0;
unsignedcharminute=0;
//registerfortime
unsignedcharsecond=0;
unsignedcharspeed=0;
unsignedchartime_key=0;
//estimatethesignalofsecond
unsignedcharmetal_key=0;
//estimatethesignalofmetal
unsignedcharmetal1=0;
//definethedistancesofeverymetals
unsignedcharmetal2=0;
unsignedcharmetal3=0;
unsignedcharmetal4=0;
unsignedcharmetal5=0;
unsignedcharmetal_count=0;
//definethecountofmetals
unsignedcharCOLON=0x3a;
//definethelettersforlcdtodisplay
unsignedcharNULL=0x20;
unsignedcharT=0x54;
unsignedcharS=0x53;
unsignedcharD=0x44;
unsignedcharM=0X4d;
unsignedcharnumcode[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
unsignedchartimes[]={0x00,0x00,0x00,0x00};
//regitersfortimedistanceandmetalfordisplay
unsignedcharspeeds[]={0x00,0x00};
unsignedchardistances[]={0x00,0x00,0x00};
unsignedcharmetals1[]={0x00,0x00,0x00};
unsignedcharmetals2[]={0x00,0x00,0x00};
unsignedcharmetals3[]={0x00,0x00,0x00};
unsignedcharmetals4[]={0x00,0x00,0x00};
unsignedcharmetals5[]={0x00,0x00,0x00};
voiddelayl()//delayforlcdinitial
{
unsignedchari,j;
i=0x05;
j=0xFF;
while(i--)
while(j--);
}
voidenable(void)//enabledatesforlcd
RS=0;
RW=0;
E=0;
delayl();
E=1;
voidwrite(void)//writedatesforlcd
RS=1;
voidtime_run()//timedeal
second++;
if(second>
=60)
{
second=0;
minute++;
if(minute>
=10)
minute=0;
}
}
timer()interrupt1using1//0.05secondinterrupt
time_count--;
if(time_count==0)
time_key=1;
time_count=20;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
voidlcd_initial()//lcdinitial
{
display_port=0x01;
enable();
display_port=0x38;
display_port=0x0e;
display_port=0x06;
display_port=0x80;
voiddate_initial()//datesinitial
times[0]=numcode[minute];
times[1]=COLON;
times[2]=numcode[second/10];
times[3]=numcode[second%10];
speeds[0]=numcode[speed/10];
speeds[1]=numcode[speed%10];
distances[0]=numcode[distance/100];
distances[1]=numcode[(distance/10)%10];
distances[2]=numcode[distance%10];
metals1[0]=numcode[metal1/100];
metals1[1]=numc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 论文 智能 小车