当前位置:文档之家› 基于51单片机的巡线小车

基于51单片机的巡线小车

基于51单片机的巡线小车
杭州电子科技大学信息工程学院二分院科技创新大赛
技术报告
作品名称:基于51单片机的巡线小车
参赛队伍:WALLE
参赛队员:周先军
吴添恒
南畅
目录
第一章设计思路以及技术方案 (2)
第二章技术要求 (3)
第三章系统方案比较与论证 (4)
第四章系统电路设计 (6)
第五章系统硬件设计 (8)
第六章系统软件设计 (9)
第七章测试方法与数据 (12)
第八章结论 (13)
第一章、设计思路以及技术方案
智能寻机器人之所以能够寻迹,主要需要三个模块完成。

信号采集模块、控制模块、驱动模块。

通过信号采集系统将实际路径信号采集以电信号的形式传递给控制系统,控制系统将采集来的信号进行比较分析计算,并给出判断驱动驱动模块,控制小车前进。

基于51单片机的小车迅疾系统,该系统采用四组高灵敏度的光点对管,对路面黑色轨迹进行检测,并利用单片机产生的PWM波,控制两个独立的电机分别以合适的速度转动,使得小车能沿着轨迹前进。

第二章. 技术要求
小车循迹路线为白底黑线KT跑道,轨迹与底板用黑白两色区分。

小车能正确的识别其中的黑线,并由STC89C52RC单片机控制处理,驱动两个直流电机转动,使得小车能沿着正确的路径行进。

第三章、系统方案比较与论证
整个电路系统分为检测、控制、驱动三个模块。

首先利用关电对管度路面信号进行检测,通过比较器处理之后,送给控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。

系统方案如图
该智能小车在画有黑线的白纸“路面“上行驶,由于黑线和白纸对光线的反射系数不同,课根据接收的反射光的强度来判断黑线。

用红外检测综合比较是最佳的方案。

ST 系列的集成红外谈都价格便宜、体积小、使用方便、用途广泛,系统最终选择了ST168反射传感器作
为红外的发射和接收器件,其原理图如下:
ST168采用高发射功率红外光、电二极管和灵敏的光点晶体管组成。

采集距离很小。

实践检测时加上5V电压时,最佳的检测距离为10mm-15mm.因此在架车时要充分考虑ST168的检测距离,合理设好高度高度。

采用如图的方案将4个光点传感器一字排列。

两个个点击分别设置在小车的后方,前面用个万向轮导向。

通过电子差速控制。

单片机IO口输出的信号无法直接驱动电机转动,因此需要驱动模块来驱动电机。

为了简化电路,小车驱动模块采用了两块ULN2003
并联组成的驱动电路驱动直流电机转动。

直流电机外接齿轮减速器,增大扭力,让小车能顺利前进。

第四章、系统电路设计
1,检测模块
基于ST168光点传感器的检测电路
2,系统控制模块
基于STC89C52单片机的控制电路
信号比较电路
3,驱动模块
ULN2003驱动电路
第五章系统硬件设计
鉴于小车的制作成本和效率等因素,本小车采用了4节5号电池串联供电。

6V直接供电电机,驱动小车前进;4.5V供给51单片机,控制小车运行。

采样电压有4.5V和6V两个选择,经过对比测试,6V 供电能使小车采集的信号更稳定。

直流电机和减速器制作比较麻烦,这里采用网购这样套件。

用薄木板坐车身钻孔固定各种部件模块。

两个驱动轮放置小车后方,前部用外向轮协助转向,提高稳定性。

最后测试时网购买了来的轮子轮胎与路面摩擦不够,打滑严重,我们采用了网球拍的防滑带用双面胶贴在轮胎上增大摩擦。

第六章、系统软件设计
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define s1 0
#define s0 1
sbit dj0=P2^4;
sbit dj1=P2^5;
sbit qy0=P1^0;
sbit qy1=P1^1;
sbit qy2=P1^2;
sbit qy3=P1^3;
void delayus(uchar n)
{
while(n--);
}
void init() {
P1=0x00;
dj0=dj1=0;
}
void main()
{
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内核的STC89C52RC单片机是电子设计入门级别的单片机,学习51单片机能很好的提高自己的C语言编程能力,为以后学习更高级的控制系统打下基础。

51单片配合一些简单的电路能制作出很多很实用的电子作品,例如:无线红外控制器、数字万年历、电子闹钟。

本51巡线小车,设计方式简单,电路可靠性高,程序简单。

适合初学者学习自动控制思想,能为参加飞思卡尔智能车打好基础。

相关主题