基于51单片机的巡线小车.docx
《基于51单片机的巡线小车.docx》由会员分享,可在线阅读,更多相关《基于51单片机的巡线小车.docx(10页珍藏版)》请在冰点文库上搜索。
基于51单片机的巡线小车
基于51单片机的巡线小车
杭州电子科技大学信息工程学院二分院科技创新大赛
技术报告
作品名称:
基于51单片机的巡线小车参赛队伍:
WALLE参赛队员:
周先军
吴添恒
南畅
第一章设计思路以及技术方案2第二章技术要求3第三章系统方案比较与论证4第四章系统电路设计6第五章系统硬件设计8第六章系统软件设计9第七章测试方法与数据12第八章结论13
第一章、设计思路以及技术方案
智能寻机器人之所以能够寻迹,主要需要三个模块完成。
信号采集模块、控制模块、驱动模块。
通过信号采集系统将实际路径信号采集以电信号的形式传递给控制系统,控制系统将采集来的信号进行比较分析计算,并给出判断驱动驱动模块,控制小车前进。
基于51单片机的小车迅疾系统,该系统采用四组高灵敏度的光点对管,对路面黑色轨迹进行检测,并利用单片机产生的PWM波,控制两个独立的电机分别以合适的速度转动,使得小车能沿着轨迹前进。
第二章.技术要求
小车循迹路线为白底黑线KT跑道,轨迹与底板用黑白两色区分。
小车能正确的识别其中的黑线,并由STC89C52R单片机控制处理,
驱动两个直流电机转动,使得小车能沿着正确的路径行进。
第三章、系统方案比较与论证
整个电路系统分为检测、控制、驱动三个模块。
首先利用关电对管度路面信号进行检测,通过比较器处理之后,送给控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。
系统方案如图
该智能小车在画有黑线的白纸“路面“上行驶,由于黑线和白纸对光线的反射系数不同,课根据接收的反射光的强度来判断黑线。
用红外检测综合比较是最佳的方案。
ST系列的集成红外谈都价格便宜、体积小、使用方便、用途广泛,系统最终选择了ST168反射传感器作为红外的发射和接收器件,其原理图如下:
图2ST168检测电路
ST168米用高发射功率红外光、电二极管和灵敏的光点晶体管组成。
采集距离很小。
实践检测时加上5V电压时,最佳的检测距离为10mm-15mn因此在架车时要充分考虑ST168的检测距离,合理设好高度高度。
采用如图的方案将4个光点传感器一字排列。
两个个点击分别设置在小车的后方,前面用个万向轮导向。
通过电子差速控制。
单片机10口输出的信号无法直接驱动电机转动,因此需要驱动模块来驱动电机。
为了简化电路,小车驱动模块采用了两块ULN2003
并联组成的驱动电路驱动直流电机转动。
直流电机外接齿轮减速器,增大扭力,让小车能顺利前进。
第四章、系统电路设计
1,检测模块
基于ST168光点传感器的检测电路
2,系统控制模块
基于STC89C52单片机的控制电路
1
-J—―—岛
4HEADER
HI
E5-
nutIK
3NOUT
ADJ
信号比较电路
4HEADER
ICvf
II
|Cl,19.
11
1JI
r^f
iAti
|C2T叫
1.1
1呻
vccH
3,驱动模块
PLQ
PLI
P12
PO
P14
P15
P16
PIT
P30RXD1
P3lTXD
P32INTC
P33INTI
P54.T0
P35T1
XL
甌VPP
RDPy
X2
巩7ELP%
ALEPRDO
RESET
psec
ATB9C51
Hi"
n
C0N2
GND
单片机最小系统电路
*
AWP—
4HEADER
Al
Y1
A2
Y1
A3
T-
A4
Y4
A5
Y1
AA
Y€
A"
¥?
CM)
caw
Al
Y1
Al
巳
A3
Yj
A4
Y4
出
Y3
浙
GXD
K
U3
ULN2003驱动电路
第五章系统硬件设计
鉴于小车的制作成本和效率等因素,本小车采用了4节5号电池串联供电。
6V直接供电电机,驱动小车前进;4.5V供给51单片机,控制小车运行。
采样电压有4.5V和6V两个选择,经过对比测试,6V供电能使小车采集的信号更稳定。
直流电机和减速器制作比较麻烦,这里采用网购这样套件。
用薄木板坐车身钻孔固定各种部件模块。
两个驱动轮放置小车后方,前部用外向轮协助转向,提高稳定性。
最后测试时网购买了来的轮子轮胎与路面摩擦不够,打滑严重,我们采用了网球拍的防滑带用双面胶贴在轮胎上增大摩擦。
第六章、系统软件设计
#include
#defineucharunsignedchar
#defineuintunsignedint
#defines10
#defines01
sbitdj0=P2A4;
sbitdj仁P2A5;
sbitqy0=P1A0;
sbitqy1=P1A1;
sbitqy2=P1A2;
sbitqy3=P1A3;
voiddelayus(ucharn)
{
while(n--);
}
voidinit()
{
P1=0x00;
dj0=dj1=0;
}voidmain()
{
init();
while
(1)
{
while(qy0==1&&qy1==0&&qy2==0&&qy3==0)
{
dj0=1;
delayus(20);
dj0=0;
delayus(20);
while(qy0==0&&qy1==1&&qy2==0&&qy3==0)
{
dj1=1;
delayus(20);
dj1=0;
delayus(20);
}
while(qy0==1&&qy1==1&&qy2==1&&qy3==1)//全白,冲出轨道了{
dj0=dj1=0;
}
//全黑,跑到交叉路口
while(qy0==0&&qy1==0&&qy2==0&&qy3==0)
{
dj0=dj1=1;
}while(qy0==1&&qy1==0&&qy2==0&&qy3==1)//{
dj0=dj1=1;
}while(qy0==1&&qy1==0&&qy2==1&&qy3==1){
dj0=1;delayus(10);dj0=0;delayus
(2);
}while(qy0==0&&qy1==0&&qy2==1&&qy3==1){
dj0=1;delayus(10);dj0=0;delayus(10);
}
while(qy0==0&&qy1==1&&qy2==1&&qy3==1){
//dj0=1;
//delayus(0);
dj0=0;
//delayus
(2);
}
while(qy0==1&&qy1==1&&qy2==0&&qy3==1)
{
dj1=1;
delayus(10);
dj1=0;
delayus
(2);
}
while(qy0==1&&qy1==1&&qy2==0&&qy3==0)
{
dj1=1;
delayus(10);
dj1=0;
delayus(10);
}
while(qy0==1&&qy1==1&&qy2==1&&qy3==0)
{
//dj1=1;
//delayus(10);
dj1=0;
//delayus
(2);
}
}
}
第七章、测试方法与数据
在确定方案后,我们首先对各模块电路进行测试。
单片机最小系统、信号采集模块、电机驱动模块。
再确定各电路正常后,我们用单片机开发板模拟各电路,用LED灯检查程序运行情况。
硬件软件均测试成功后才将各电路组装,架车调试。
最后将小车放在实际跑道中进行实际测试,根据实际情况调整部分参数,使得小车以最佳的状态巡线前进。
第八章、结论
基于51内核的STC89C52R单片机是电子设计入门级别的单片札学习51单片机能很好的提高自己的C语言编程能力,为以后学习更高级的控制系统打下基础。
51单片配合一些简单的电路能制作出很多很实用的电子作品,例如:
无线红外控制器、数字万年历、电子闹钟。
本51巡线小车,设计方式简单,电路可靠性高,程序简单。
适合初学者学习自动控制思想,能为参加飞思卡尔智能车打好基础。