基于51单片机的多功能蓝牙循迹避障测距小车

基于51单片机的多功能蓝牙循迹避障测距小车
基于51单片机的多功能蓝牙循迹避障测距小车

基于51单片机的多功能蓝牙循迹避障测距

小车的设计与制作

摘要:无线遥控的机器人小车在危险环境作业、人员搜集等应用中可发挥特殊的作用。本次设计选择基于蓝牙遥控的多功能智能小车为对象。设计了该系统的硬件电路原理图,控制系统以STC89C52单片机为主控芯片,采用BTS7970为电机驱动芯片、蓝牙无线串口模块、红外光电传感器模块、舵机模块、超声波发射与接收模块等构成外围扩展电路。将自制的控制电路、控制程序和四轮小车机械结构相结合,制作多功能机器人小车。实验调试实现了智能小车的蓝牙无线遥控、自动避障、自动循迹、自动三向测距等功能。

关键词:单片机;蓝牙遥控;舵机;光电传感器

目录

第一章前言 (3)

第二章方案比较与论证 (3)

2.1总体方案设计 (3)

2.2无线模块设计 (4)

2.3显示模块设计 (4)

2.4循迹模块设计 (5)

2.5避障模块设计 (5)

第三章智能车机结构分析 (5)

第四章控制系统电路设计 (6)

4.1 MCU的选型 (6)

4.2 电机驱动电路设计 (6)

4.3 红外传感器模块设计 (7)

4.4 蓝牙模块设计 (7)

4.5 舵机模块设计 (7)

4.6 超声波模块设计 (8)

4.7 电源电路设计 (8)

第五章调试结果分析 (8)

5.1 各模块功能调试 (8)

5.2 总结 (9)

致谢 (10)

参考文献 (11)

附录部分程序 (12)

第一章前言

随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。遥控小车起源于美国,由于政府对无线遥控小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在遥控小车技术上占据着明显优势。我国的无线遥控小车研究工作始于20世纪中后期,在国家的863、973等技术发展计划的重点支持下,国内已大范围地进行无线遥控小车的研究。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,但是与国际先进还存在一定的差距。可见其研究意义很大。本设计就是在这样的背景下提出的。设计的智能小车能够实现无线遥控,串口通讯,循迹,避障碍等功能。无线遥控实现方法包括蓝牙、红外、射频几种,其中蓝牙技术具有一定优势,目前在信息家电方面应用正在铺设。各种家电共用遥控,并可组网与公众互联网相接,共享有用信息。目前蓝牙技术实现无线遥控的短板在于传输距离短和芯片价格高方面。但随着科技发展,这些问题正在逐步得以解决。无线遥控机器人有着广阔的应用前景。根据题目的要求绘制电路原理图,制作电路板;在Keil C编译环境下编写控制程序并调试,确定如下方案:在蓝牙无线遥控的基础上,加装光电红外传感器、超声波传感器、舵机,实现对小车的位置、运行状况的实时监测,并将测量数据传送至单片机进行处理,然后由单片机根据所检测到的各种数据,对电动车经行对应的控制并将计算出的数据送至上位机显示,实现真正的实时监控。本次设计可以对电动车的运动状态进行实时监控,可满足对系统的各项要求。本设计采用STC系列中的STC89C52单片机。以单片机为控制核心,利用传感器检测道路上的各种信息,控制小车的无线遥控、自动避障、自动寻迹、三向测距等功能。

第二章方案比较与论证

本次设计主要是针对无线遥控智能车进行分析、设计和制作。本次设计以STC89C52单片机为主控芯片,实现了智能车的蓝牙遥控功能、自动避障功能、自动循迹功能、多方向距离检测功能等。

2.1总体方案设计

图2.1系统原理框图

本小车是以STC89C52为主控制器。开始由手机发送蓝牙无线信号来启动小车,由超声波传感器或红外光电传感器进行障碍检测,通过单片机控制小车行驶、测距、避障和循迹。智能车使用4WD驱动,以提高整车运动的平稳性;在智能车进驶过程中,通过红外光电传感器实现自动避障,自动循迹等功能;通过舵机、超声波传感器实现多方向测距;最后通过蓝牙无线传输功能将智能车的行驶信息实时地传送给上位机,以实现实时监控功能。当然也可通过蓝牙无线遥控来控制小车的行驶状态。这就是本设计的总体设计思路。

2.2无线模块设计

无线控制是为了能够实现对智能车的远程遥控,使小车可以在遥控状态下代替人类完成一些危险项目。目前短距离无线数据传输技术主要有两大类,一类是基于IrDA红外无线通信技术,另一类是基于ISM(Industrial Scientific Medical)频段射频通信技术。较为主流的几种通信技术之间既存在着相互竞争,但又在某些实际应用领域内相互补充、相互配合,究竟选择何种技术更优越,需要由具体的工作环境来决定。表2.1所示为四种短距离无线通讯技术主要性能参数。

方案:通过表格可以看出,他们在近距离通讯领域都可以提供可靠的通信服务,但是同时他们的应用有着各自的技术架构的限制。在以上的几种中,我最终选择了蓝牙无线传输方式。

2.3显示模块设计

显示模块的主要功能是显示小车所测得的距离等信息。常用显示器件有1602LCD显示器、5110LCD显示器等。根据此次设计需要我提出了以下实现方案。

方案一:采用1602LCD显示器(或5110LCD显示器)显示。此方案采用集成显示模块,硬件电路更加简单,并且液晶显示器消耗电流小,更节能,同时软件实现也简单。

方案二:手机上位机显示。通过上位机的串口软件来监控智能车的行驶信息。软件实现简单,无需其他的外部硬件设计。

表2.2 几种典型显示方式比较

通过LCD来观察智能车行驶信息也不方便,所以我最终选择方案二为本设计中的显示方案。

2.4循迹模块设计

探测路面黑线的原理:光线照射到路面并反射,由于黑线和白线的反射系数不同,可根据接收到的反射光的强弱来判断传感器和黑线相对位置。

采用反射式红外发射-接收器。直接用直流电压对发射管进行供电,其优点是实现简单,对环境光源的抗干扰能力强,在要求不高时可以使用。

2.5避障模块设计

方案:红外式探测

采用红外式发射、检测一体化模块。由于单个发射器的照射范围不能太小,因此不使用激光管。用波瓣较宽的脉冲调制型红外发射管和接收器。其优点是电路实现简单,但抗干扰性较弱。

第三章智能车机械结构分析

在本次设计中,小车使用四轮驱动。四轮驱动式的结构中因为后轮的转动力矩的增大,所以在横向上的轮胎阻力要大于2轮驱动式的,因此四轮驱动式的车子不易发生方向偏移。而且四轮驱动的车子动力更大,爬坡能力更强。但存在一些不足,如:四轮驱动式的车子更加耗电,而且车体比一般的2轮驱动式的车体重。从整体的性能来看四轮驱动式结构的优势是很明显的。

图3.1 智能小车电机安装图

车身是车体的主要部件。同时也是用来固定车子零部件的,车身上主要有红外传感器安装槽、舵机安装孔、电机定位槽和走线孔。电机的安装位置如图3.1所示。底板采用的是废旧PCB板。废物利用,结构可靠稳定。

第四章控制系统电路设计

在本设计中包括的外围设备有电机驱动模块﹑红外传感器模块、蓝牙模块﹑舵机模块、超声波模块等,还要设计合适的接口电路。

4.1 MCU的选型

本设计中使用的是STC89C52单片机。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

4.2 电机驱动电路设计

图4.1 电机驱动电路图

本次设计本想采用以上电路,由于自己手上刚好有两块集成的BTS7970电机

驱动模块,所以就直接采用了该集成模块作为本次设计的电机驱动电路。

4.3 红外传感器模块设计

4.3.1 循迹电路设计

由光电管采集的信号经三极管单级放大之后,送入单片机,本次设计共设计了四路光电管采集电路,能够使小车平稳的沿黑线行驶。

4.3.2避障电路设计

避障采用的是红外发射接收一体化的光电传感器,基本不需要外围电路,只在信号输出端接了一个上拉电阻。

4.4 蓝牙模块设计

蓝牙模块主要是为了实现上位机与下位机的数据传输,本设计是通过蓝牙转串口模块,实现上位机与下位机的无线通讯功能,所以本质上使用的是单片机串口通信。

串行通讯的特点是:数据按位顺序传送,最少仅需一根传输线即可完成,成本低但传送速度慢。串行通讯的距离可以从几米到几千米。

在本设计中采用HC-06蓝牙模块。通过手机发送指令来控制智能车的前进、后退、转弯和其他功能。

4.5 舵机模块设计、

舵机的安装如下图所示

4.6 超声波模块设计

本次设计将超声波模块置于舵机上面,可实现多方向测距。

4.7 电源电路设计

图4.2 电源电路图

如图4.2中,VP1为LM2940稳压芯片,VP2为LM7806稳压芯片,C2、C3、C4、C5、C10、C11、C12、C13为滤波电容。

第五章调试结果分析

5.1 各模块功能调试

1、蓝牙遥控调试及结果分析

在小车上电后HC-06蓝牙模块上的工作状态指示灯会快速闪烁,当与手机上位机配对成功进行通讯时,蓝牙模块上的连接指示灯常亮。在非开阔地的环境下对不同的距离的通讯情况经行测试,通过手机端串口工具控制小车直行,观察小车的极限距离为多少。统计本次调试的结果表明,HC-06蓝牙模块的有效通讯距离为0m到25m,在此范围内电脑与小车通讯正常

2、红外避障调试及分析

在进行红外避障时,首先要调节红外传感器的灵敏度,如果发现传感器在距离障碍物很远时就检测到了障碍,就将滑动电阻调大些,降低红外线的发射频率;如果发现传感器在距离障碍物很近时才检测到了障碍,就将滑动电阻调小些,提高红外的发射频率。总之将传感器的检测范围调在20-30CM以内。

上电运行后,放到没有障碍物的空地上,小车直走。当前方没有障碍物的的时候车就一直直走。如果前方遇到障碍物,则小车做后退—右转运动。直至前方没有障碍物,这时小车恢复直走。如果左方有障碍物,则小车右转。直至左边没有障碍物,这时小车恢复直走。如果右方有障碍物,则小车左转。直至右边没有障碍物,这时小车恢复直走。如果前面没有障碍物,则先执行直走。也就是说如果前方没有障碍物,即使其他任意方向都有障碍则小车依然直走。

在调试时,小车发生没有发生误判断动作,

3、循迹功能调试及分析

循迹功能中使用的是红外传感器,在调节传感器时,始终保持红外检测距离在4CM以内。上电后,当小车对着轨迹中间行驶时,左右传感器都没检测到黑线,小车高速直行;当小车偏轨道左侧时,左侧的传感器检测到黑线,小车低速右转;当小车偏轨道右侧时,右侧的传感器检测到黑线,小车低速左转;当小车的左右红外传感器都检测到黑线时,小车停车。

在进行循迹功能调试时,小车经常会冲出跑道。通过改变小车转弯方式,解决了这一问题

5.2总结

随着时间的流逝,我们的设计也接近尾声当然这次设计并不是非常完美,还有一些地方需要后续的改进,比如小车的测距方式可以改成实时测距的。当然车子可以在以后再做大些,在上面安装机械臂,这样就可以更加方便地控制小车进行一些生产作业。当然,没有任何事物可以做到完美无缺的,我相信只要我们不断努力去完善,那做出来的产品才会更出色。

致谢

历时一个月左右的设计过程中,我首先边查资料,我感觉到即使是一个简单的电路,要想很轻松的焊好,也不是很容易的事情。有时可能是阻值选错。这使我深深感受到理论与实际间的差距。通过这样的设计,提高了我的动手能力,使我软件调试知识也提高了。

本设计采用的是STC89C52单片机,当然还可以采用其它系列的单片机。经过自己不断的搜索努力以及庞老师的耐心指导和热情帮助,本设计已经基本完成。庞老师的态度和热忱的工作作风令我十分钦佩,他的指导使我受益非浅。在此对庞艳荣老师表示深深的感谢。

通过这次设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这一个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。

由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。

参考文献

1 何立民,单片机应用系统设计[M],,92京:航天航空大学出版社,44~57

2 李广弟,单片机基础[M],北京:北京航空航天大学出版社,2001年

3 何希才,新型实用电子电路400例[M],电子工业出版社,2000年

4赵负图,传感器集成电路手册,第一版[M],化学工业出版社,2004年

5张毅刚,彭喜元,新编MCS-51单片机应用设计,第一版[M],哈尔滨工业大学出版社,2003年,24~27,410~416

6马长芳,资丽芳,通信原理[M],北京:科学出版社,2005年

7陈万寿,通信电源系统[M],北京:人民邮电出版社,2008年11月

8富军,单片机开关电源,北京:电子工业出版社,2007年7月

9Michael Miller,蓝牙技术起跳,北京:电子工业出版社,2002年1月

10郭洁,蓝牙技术原理与协议,北京:北京交通大学出版社,清华大学出版社,2002年8月

11李永龙,李祖枢,王牛.直流电机双闭环调速系统(DLM)的建模与辨识[J],控制理论与应用,2008,25(6):78-85

12王洪锋,夏明飞,王坚.单片机与微机的远距离串行通信[J],电力自动化设备,2002,22(5),59-67

13蔡自兴.智能控制及移动机器人研究进展[J],中南大学学报,2005,36(5),121-127

附录部分程序#include

/***********定义变量************/

#define stop 0 //停止

#define front 1 //前进

#define away 2 //后退

#define left 3 //左转

#define bigleft 4 //大左转

#define right 5 //右转

#define bigright 6 //大右转

#define xj 7 //循迹

#define bz 8 //避障

#define dd 9 //舵机

#define cj 10 //测距

sbit llun1=P2^0;

sbit llun2=P2^1;//左轮输入

sbit rlun1=P2^2;

sbit rlun2=P2^3;//右轮输入

sbit lin1=P1^0;//左外

sbit lin2=P1^1;//左中

sbit rin1=P1^2;//右外

sbit rin2=P1^3;//右中//红外光电4个输入

sbit llin1=P1^4;//左外

sbit llin2=P1^5;//左中

sbit rrin1=P1^6;//右中

sbit rrin2=P1^7;//右外//红外光电收发4个输入

sbit RX= P0^2;//ECHO

sbit TX= P0^3;//TRIG //超声波模块

sbit dj= P0^1;

uchar ldata=0;

uint time=0;

float S=0;

bit flag =0;

/***********串口初始化************/

void SCI_init(void)

{

TMOD=0X21; //设置定时器1为模式2,做为波特率发生器//设T0为方式1,GATE=1;

SCON=0x50; //串口方式2

TL1=0xFb; //9600波特率的初值,板子使用18.432M晶振,初值

=256-18432000/32/12/9600

TH1=0xFb; //自动重装初值

TR1=1; //开启定时器//启动波特率发生

//TH0=0;

//TL0=0;

ES=1; //开始串口中断

EA=1; //开启总中断

}

/***********ms延时**************/

void delayms(uint ms)

{

uchar a,b;

for(;ms;ms--)

{

for(b=4;b>0;b--)

for(a=190;a>0;a--);

}

}

void delay500us(void) //误差 -0.651041666667us

{

unsigned char a,b;

for(b=4;b>0;b--)

for(a=94;a>0;a--);

}

/***********小车行走函数************/

void go() //直走

{

llun1=1;

llun2=0;

rlun1=1;

rlun2=0;

}

void turnleft() //左转

{

llun1=1;

llun2=1;

rlun1=1;

rlun2=0;

}

void turnright()//右转

{

llun1=1;

llun2=0;

rlun1=1;

rlun2=1;

}

void turnbigleft()//大左转

{

llun1=0;

llun2=1;

rlun1=1;

rlun2=0;

}

void turnbigright()//大右转

{

llun1=1;

llun2=0;

rlun1=0;

rlun2=1;

}

void back() //后退

{

llun1=0;

llun2=1;

rlun1=0;

rlun2=1;

}

void ting() //停车

{

llun1=1;

llun2=1;

rlun1=1;

rlun2=1;

}

/************循迹函数*************/

void xunji()

{

go();

if(lin1==1&&lin2==1&&rin1==1&&rin2==1)//直走

go();

}

if(lin1==0&&lin2==0&&rin1==1&&rin2==1)//大转左

{

turnbigleft();

}

if(lin1==1&&lin2==0&&rin1==1&&rin2==1)//转左

{

turnbigleft();

}

if(lin1==1&&lin2==1&&rin1==0&&rin2==0)//大转右

{

turnbigright();

}

if(lin1==1&&lin2==1&&rin1==1&&rin2==0)//转右

{

turnbigright();

}

if(lin1==0&&lin2==0&&rin1==0&&rin2==0)//停车

{

ting();

}

}

/************避障函数*************/

void bizhang()

{

go();

if((llin1==1&&llin2==1&&rrin1==1&&rrin2==1)||(llin1==0&&llin2==1& &rrin1==1&&rrin2==0))//直走

{

go();

}

if((llin1==0&&llin2==0&&rrin1==1&&rrin2==1)||(llin1==0&&llin2==0& &rrin1==0&&rrin2==1)||(llin1==0&&llin2==1&&rrin1==1&&rrin2==1))//大转右

{

turnbigright();

}

if((llin1==1&&llin2==1&&rrin1==0&&rrin2==0)||(llin1==1&&llin2==0& &rrin1==0&&rrin2==0)||(llin1==1&&llin2==1&&rrin1==1&&rrin2==0))//大转左

{

turnbigleft();

if((llin1==0&&llin2==0&&rrin1==0&&rrin2==0)||(llin1==1&&llin2==0& &rrin1==0&&rrin2==1))//后退

{

ting();

}

}

/***********超声波距离计算*************

void Conut(void)

{

time=TH0*256+TL0;

TH0=0;

TL0=0;

S=(time*1.87)/100; //算出来是CM

if(flag==1) //超出测量

{

flag=0;

printf("-----\n");

}

printf("S=%f\n",S);

}

/*****************启动超声波*******************

void StartModule()

{

TX=1; //800MS 启动一次模块

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

//_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

TX=0;

}

void juli(void)

{

StartModule();

while(!RX); //当RX为零时等待

TR0=1; //开启计数

while(RX); //当RX为1计数并等待

TR0=0; //关闭计数

Conut(); //计算

delayms(100); //100MS

}

/********舵机*************/

void nizhuan()

{

dj=1;

delayms(1);

dj=0;

delayms(19);

}

void shunzhuan()

{

dj=1;

delayms(2);

dj=0;

delayms(18);

}

void zhizhong()

{

dj=1;

delayms(1);delay500us();

dj=0;

delayms(18);delay500us();

}

void duoji(void)

{

//ET0=1; //允许T0中断

uchar i=0;

for(i=0;i<20;i++)

nizhuan();

for(i=0;i<20;i++)

zhizhong();

for(i=0;i<20;i++)

shunzhuan();

for(i=0;i<20;i++)

zhizhong();

}

/***********蓝牙控制函数************/ void lanya()

{

if(ldata==front) {go();}

if(ldata==away) {back();}

if(ldata==left) {turnleft();}

if(ldata==right) {turnright();}

if(ldata==bigleft) {turnbigleft();}

if(ldata==bigright) {turnbigright();}

if(ldata==stop) {ting();}

if(ldata==xj) {xunji();}

if(ldata==bz) {bizhang();}

if(ldata==dd) {duoji();}

// if(ldata==cj) {juli();}

}

/***********主函数************/

void main(void)

{

SCI_init();

while(1)

{

lanya();

}

}

/******************************************************** void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围 {

flag=1; //中断溢出标志

}

/***********串口中断入口函数************/

void com_isr(void) interrupt 4

{

if(RI)

{

ldata=SBUF;

RI=0;

}

}

TI杯电子设计大赛C题金属循迹小车

2016年TI杯大学生电子设计大赛 自动循迹小车(C题) 【本科组】 摘要: 该系统以STM32F103VET6和89C52单片机为控制核心,采用了比赛指定的LDC1000电感传感器来探测铁丝和硬币,通过单片机产生的PWM和LM298模块控制电机,通过光耦传感器测量小车轮胎转动圈速,并应用LCD1602显示模块,以LM2596S为核心的电源电路为系统供电,从而实现了电动小车循迹、检测到硬币后蜂鸣器发出声响和实时显示小车行驶的距离和运行时间等功能。 整个系统的电路结构简单明了,可靠性能高,多次实验测试结果满足基本要求和大部分发挥部分的要求。 关键词:STM32F103VET6 89C52 LDC1000 智能小车

一、方案论证 1.方案选择 1.1电机驱动方案的选择 方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车进行调整,此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。 方案二:采用专用L298N作为电机驱动。L298N是一个具有高电压大电流的全桥驱动,它相应频率高,一块L298N可以分别控制两个直流电机。用该模块驱动电机,操作方便,稳定性好,性能优良。 因此决定采用方案二。 1.2电机的选择 方案一:采用步进电机,步进电机具有快速启动和停止能力,其转换灵敏度比较高,正转、反转控制灵活。但是步进电机的价格比较昂贵,且该实验对小车速度等没有特殊要求,因而,不选取该方案。 方案二:采用普通的直流电机。直流电机具有优良的调速特性,调速平滑、方便。调整范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。可以满足实验要求。 因此选择方案二 1.4探测线圈的选择 方案一:使用TI公司生产的LDC1000模块自带的PCB线圈,其优点是布线精致,感应灵敏,但其探测范围小,对小车探测载体的机械结构要求较高。 方案二;使用自制线圈,其优点是检测范围大,但其精度不够高,且绕制难度较高。 综合考虑,选择方案一。 1.5主控芯片的选择 方案一:采用51单片机,操作简单,功耗低,廉价,但IO口不足,运行速率较低,无法控制LDC1000。 方案二:采用STM32单片机,高性能,低功耗,还有较多IO口,但操作相对较难。 经过综合评测,采用STM32控制小车循迹,51控制小车的实时显示的方案。 2.方案描述 根据题目的要求,设计任务是通过使用TI公司生产的LDC1000电感数字转换器作为循迹传感器,在规定的平面跑道上自动按顺时针方向循迹前进,并对沿路检测到的硬币产生声光提示,而且实时显示路程与时间。为了完成上述功能,将整个系统设计为四个基本模块,电机控制模块,信号采集与检测模块,检测提

基于51单片机智能小车循迹程序

#include #define uchar unsigned char #define uint unsigned int ////电机驱动模块位定义//// sbit M11=P0^0; //左轮 sbit M12=P0^1; sbit M23=P0^2; //右轮 sbit M24=P0^3; sbit ENA=P0^4; //左轮使能PWM输入改变dj1数值控制转速sbit ENB=P0^5; //右轮使能PWM输入改变dj2数值控制转速////占空比变量定义//// unsigned char dj1=0; unsigned char dj2=0; uchar t=0; ////红外对管位定义//// sbit HW1=P1^0; //左前方 sbit HW2=P1^1; //右前方 sbit HW3=P1^2; //左后方 sbit HW4=P1^3; //右后方 ////小车前进//// void qianjin() { M11=1; //左轮 M12=0; // M23=1; //右轮 M24=0; // dj1=50; dj2=50; } ////向左微调//// void turnleft2() { M11=1; M12=0; M23=1; M24=0; dj1=7; //左轮 dj2=50; //右轮 } ////向右微调//// void turnright2() { M11=1; M12=0;

M23=1; M24=0; dj1=50; dj2=7; } ////向左大调//// void left() { M11=0; M12=1; M23=1; M24=0; dj1=7; dj2=80; } ////向右大调//// void right() { M11=1; M12=0; M23=0; M24=1; dj1=80; dj2=7; } ////循迹动作子函数//// void xj() { if(HW1==0&&HW2==0&&HW3==0&&HW4==0) //前进逻辑 { qianjin(); } if(HW1==1&&HW2==0&&HW3==0&&HW4==0) //左右微调 { turnleft2(); } if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnright2(); } if(HW1==1&&HW2==0&&HW3==1&&HW4==0) //左右大调 { left(); }

基于单片机89c51循迹小车原理与程序

自循迹小车 第一章引言 1.1 设计目的 通过设计进一步掌握51单片机的应用,特别是在嵌入式系统中的应用。进一步学习51单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。 1.2 设计方案介绍 该智能车采用红外对管方案进行道路检测,单片机根据采集到的红外对管的不同状态判断小车当前状态,通过pid控制发出控制命令,控电机的工作状态以实现对小车姿态的控制。 1.3 技术报告内容安排 本技术报告主要分为三个部分。第一部分是对整个系统实现方法的一个概要说明,主要内容是对整个技术方案的概述;第二部分是对硬件电路设计的说明,主要介绍系统传感器的设计及其他硬件电路的设计原理等;第三部分是对系统软件设计部分的说明,主要内容是智能模型车设计中主要用到的控制理论、算法说明及代码设计介绍等。

第二章技术方案概要说明 本模型车的电路系统包括电源管理模块、单片机模块、传感器模块、电机驱动模块. 在整个系统中,由电源管理模块实现对其他各模块的电源管理。其中,对单片机、光电管提供5V电压,对电机提供6V电压 路径识别电路由3对光电发送与接收管组成。由于路面存在黑色引导线,落在黑线区域内的光电接收管接收到反射的光线的强度与白色的路面不同,进而在光电接收管两端产生不同的电压值,由此判断路线的走向。传感器模块将当前采集到的一组电压值传递给单片机,进而根据一定得算法对舵机进行控制,使小车自动寻线行走。 单片机模块是智能车的核心部分,主要完成对外围各个模块的管理,实现对外围模块的信号发送,以及对传感器模块的信号采集,并根据软件算法对所采集的信号进行处理,发送信号给执行模块进行任务执行,还对各种突发事件进行监控和处理,保证整个系统的正常运作。 电机驱动采用L293驱动芯片,该芯片支持2路电机驱动同时支持PWM 调速

基于AT89S51单片机的智能超声波避障小车

基于 AT89S51 单片机的智能 超声波避障小车
姓名: 班级: 学号:
钟洋 08 电子二班 200810330219 张儒
指导老师:

目录
摘要...........................................3 一、总体方案概述.......................................3 二、总体电路原理图....................................3 三、各模块功能介绍.................................4 (一) 、超声波测距模块................................4 (二) 、数码管显示模块................................4 (三) 、步进电机控制模块..............................6 (四) 、语音提示模块..................................7 (五) 、速度自控模块..................................8 (六) 、信号提示模块..................................8 (七) 、单片机控制模块...............................8 四、系统软件设计..................................9 五、元件清单.....................................10 六、应用前景.....................................10 六、参考文献.....................................11
2

循迹小车原理

寻迹小车 在历届全国大学生电子设计竞赛中多次出现了集光、机、电于一体的简易智能小车题目。笔者通过论证、比较、实验之后,制作出了简易小车的寻迹电路系统。整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。 总体方案 整个电路系统分为检测、控制、驱动三个模块。首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。系统方案方框图如图1所示。 图1 智能小车寻迹系统框图 传感检测单元 小车循迹原理 该智能小车在画有黑线的白纸“路面”上行驶,由于黑线与白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。 红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。 传感器的选择 市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电路自制探头,也可以使用结构简单、工作性能可靠的集成式红外探头。ST系列集成红外探头价格便宜、体积小、使用方便、性能可靠、用途广泛,所以该系统中最终选择了ST168反射传感器作为红外光的发射与接收器件,其内部结构与外接电路均较为简单,如图2所示: 图2 ST168检测电路 ST168采用高发射功率红外光、电二极管与高灵敏光电晶体管组成,采用非接触式检测方式。ST168的检测距离很小,一般为8~15毫米,因为8毫米以下就是它的检测盲区,而大于15毫米则很容易受干扰。笔者经过多次测试、比较,发现把传感器安装在距离检测物表面10毫米时,检测效果最好。 R1限制发射二极管的电流,发射管的电流与发射功率成正比,但受其极限输入正向电流50mA的影响,用R1=150的电阻作为限流电阻,Vcc=5V作为电源电压,测试发现发射功率完全能满足检测需要;可变电阻

51红外循迹小车报告(舵机版)最终版

简易教程

前言 往届全国大学生电子设计竞赛曾多次出现了集光、机、电于一体的简易智能小车题目,此次,笔者在通过多次论证、比较与实验之后,制作出了简易小车的寻迹电路系统。 整个系统基于普通玩具小车的机械结构,利用小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。系统分为检测、控制、驱动三个模块。首先利用光电对接收管和路面信号进行检测,然后经过比较器处理,对软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。 智能小车能在画有黑线的白纸“路面”上行驶,这是由于黑线和白纸对光线的反射系数不同,小车可根据接收到的反射光的强弱来判断“道路”---黑线,最终实现简单的循迹运动。 个人水平有限,有错误不足之处,还望各位前辈同学多多包含,指出修正,完善。谢谢! 李学云王维 2016年7月27号

目录 前言 (1) 第一部分硬件设计 (1) 1.1 车模选择 (1) 1.2传感器选择 (1) 1.3 控制模块选择 (2) 第二部分软件设计及调试 (3) 2.1 开发环境 (3) 2.2总体框架 (3) 2.3 舵机程序设计与调试 (3) 2.3.1 程序设计 (3) 2.3.2 调试 (3) 2.3.3 程序代码 (4) 2.4 传感器调试 (5) 2.4.1 传感器好坏的检测 (5) 2.4.2 单片机能否识别信号并输出信号 (5) 2.5 综合调试 (7) 附录1 (9) 第一篇舵机(舵机及转向控制原理) (9) 1.1概述 (9) 1.2舵机的组成 (10) 1.3舵机工作原理 (11) 1.4舵机使用中应注意的事项 (12) 1.5如何利用程序实现转向 (12) 1.6舵机测试程序 (13) 附录2 (14) 第二篇光电红外传感器 (14) 2.1传感器的原理 (14) 2.2红外光电传感器ST188 结构图 (15) 2.3传感器的选择 (15) 2.4传感器的安装 (16) 2.5使用方法 (16) 2.7红外传感器输入输出调试程序 (17)

51单片机-循迹小车项目报告材料(完整)

职业技术学院 《单片机系统设计》 项目设计报告 项目设计题目:智能寻迹小车 系部:电子信息与控制工程系班级:电子 XXXX 班 组号:第四组 小组成员:XXX 指导教师:XXX 2017年10月10日

目录 一、引言 (3) 二、方案论证 (4) 三、小车车体设计 (7) 四、硬件系统设计 (8) 1、单片机最小系统 (8) 2、循迹电路 (9) 3、电机驱动电路 (9) 五、软件系统设计 (12) 六、系统的制作、仿真与调试 (14) 七、总结 (15)

一、引言 当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。无容置疑,机电一体化人才的培养不论是在国外还是国,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为电子专业学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。此项设计是在以小为基础,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

基于 单片机设计智能避障小车

单片机设计智能避障小车 摘要 利用红外对管检测黑线与障碍物,并以STC89C51单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由L298N 驱动电路完成,速度由单片机输出的PWM波控制。本文首先介绍了智能车的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计实物图,及完整的C语言程序。 关键词:智能小车;51单片机;L298N;红外避障;寻迹行驶 abstract Using infrared detection black and obstacles to the line and STC89C51 microcontroller as the control chip to control the speed of the electric car and steering, so as to realize the function of automatic tracking and obstacle avoidance. Which the car driven by the L298N driver circuit is completed, the speed of the microcontroller output PWM wave control. This article first introduces the development of the intelligent car prospect, then introduces the design idea, the subject selection of each module circuit and working principle of the circuit, the design process of the subject is summarized and prospect with each module circuit principle diagram, and the real figure design, and complete C language program. Key words: smart car; 51 MCU; L298N; infrared obstacle avoidance; track driving

基于某51单片机的智能小车控制系统

工业职业技术学院 毕业设计 课题名称基于51与单片机的智能小车控制系统 系(院)名称电气工程系 专业及班级 学生 学号 指导教师

完成日期年11 月19 日

摘要 随着我国科学技术的进步,智能化作为现代社会的新产物开始越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。智能小车是一个多种高薪技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,可以涉及到当今许多前沿领域的技术。 整个小车平台主要以51单片机为控制核心,通过无线遥控实现前进后退和转向行驶,通过红外线传感器,实现小车的自适应巡航、避障等功能。设计采用对比选择,模块独立,综合处理的研究方法。通过翻阅大量的相关文献资料,分析整理出有关信息,在此基础上列出不同的解决方案,结合实际情况对比方案优劣选出最优方案进行设计。从电机车体,最小系统到无线遥控,红外线对管的自动寻迹再到红外线自动避障和语音控制,完成各模块设计。通过调试检测各模块,得到正确的信号输出,实现其应有的功能。最后将各个调试成功的模块结合到小车的车体上,结合程序,通过单片机的控制,将各模块有效整合在一起,达到所预期的目标,完成最终设计与制作,能使小车在一定的环境中智能化运转。 关键字:智能小车,单片机,红外传感器。

目录 第一章绪论.............................................................................................................................- 1 - 1.1.1智能循迹小车概述........................................................................................................- 1 - 1.1.2课题研究的目的和意义 ...............................................................................................- 2 - 1.1.3智能循迹小车智能循迹分类.......................................................................................- 3 - 1.1.4智能循迹小车的应用....................................................................................................- 3 - 第二章方案设计 ..........................................................................................................................- 5 - 2.1 主控系统.........................................................................................................................- 5 - 2.2单片机最小系统 ...............................................................................................................- 6 - 2.2.1 STC89C52简介...................................................................................................- 6 - 2.2.2 时钟电路...............................................................................................................- 8 - 2.2.3复位及复位电路....................................................................................................- 8 - 2.3 电机驱动模块................................................................................................................ - 10 - 2.4 循迹及避障模块............................................................................................................ - 11 - 2.5 机械系统......................................................................................................................... - 11 - 2.6电源模块......................................................................................................................... - 11 - 第三章硬件设计 ..................................................................................................................... - 12 - 3.1总体设计......................................................................................................................... - 12 - 3.1.1主板设计框图..................................................................................................... - 12 - 主板设计框图如图3-1,所需原件清单如表3-1 .................................................. - 12 -

51单片机循迹小车开题报告

一、研究课题的目的和意义 1)研究目的: 随着汽车工业的迅速发展,其与电子信息产业的融合速度也显著提高,汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。本设计就是在这样的背景下提出的,为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。设计的智能电动小车应该能够具有自动寻迹、小灯显示等功能。 此项设计以AT89S52单片机为控制核心,逐步实现小车的循线行走功能。2)研究意义: 1、加深课堂上的学习 由于单片机教学例子有限,因此,单片机智能车能综合学生课堂上的知识来实践,使学习者更好的了解单片机的发展。通过此次的单片机寻轨车制作,使学 生从理论到实践,初步体会单片机项目的设计、制作、调试和成功完成项目的过 程及困难,以此学会用理论联系实际。通过对实践中出现的不足与学习来补充教 学上的盲点。 2、从理论转为实际运用 智能汽车是一种高新技术密集的新型汽车,是在网络环境下利用信息技术、智能控制技术、自动控制、模式识别、传感器技术、汽车电子、电气、计算机 和机械等多个学科的最新科技成果,使汽车具有自动识别行驶道路、自动驾驶等 先进功能.随着控制技术、计算机技术和信息技术的发展,智能车在工业生产和日 常生活中已经扮演了非常重要的角色.近年来,智能车在野外、道路、现代物流 及柔性制造系统中都有广泛运用,已成为人工智能领域研究和发展的热点。 二、研究内容 1)系统设计: 智能寻迹小车采用后轮驱动,左右后轮各用一个直流减速电机驱动,通过调制后面两个轮子的转速从而达到控制转向的目的在车体前部分别装有左中右三或者两个红外反射式传感

51单片机循迹小车程序

/*功能:寻迹小车 使用芯片:AT89S52或者STC89C52 或A T89S51 STC89C51 晶振:12MHZ 编译环境:Keil 作者:MH~?*/ #include <reg51、h>// 引用标准库得头文件 #include #define ucharunsignedchar #defineuintunsigned int //=================电机驱动===================== sbit dianji_r = P3^0;//右边电机控制口,低电平转? sbitdianji_l= P3^7;//左边电机控制口,低电平转 //=============循迹感应接口====================== sbit xjmk_r=P3^2;// 右边寻迹模块检测口INT0 sbit xjmk_l= P3^3;// 左边寻迹模块检测口INT1 void check_righet();//右边时候检测到黑线测试程序 voidcheck_left();//左边时候检测到黑线测试程序 void delay_50us(uint t); void delayms(uintMs); ucharr_count;//右边传感器检测到得次数计数单元 uchar l_count; uint time; //***********************主程序****************************** main() { time=50; dianji_r=0;//上电时右侧电机运行 dianji_l=0;//上电时左侧电机运行 EA=1; EX1=1; EX0=1; IT1=0; IT0=0; xjmk_r=1;//置IO为1,准备读取数据 xjmk_l=1; _nop_(); r_count=0; l_count=0; while(1) { _nop_(); //check_righet();//调用右边寻迹检测传感器 //check_left();//

51单片机循迹小车程序

/*功能:寻迹小车 使用芯片:AT89S52 或者STC89C52 或AT89S51 STC89C51 晶振:12MHZ 编译环境:Keil 作者:MH~ */ #include // 引用标准库的头文件 #include #define uchar unsigned char #define uint unsigned int //=================电机驱动===================== sbit dianji_r = P3^0; //右边电机控制口,低电平转? sbit dianji_l = P3^7; //左边电机控制口,低电平转 //=============循迹感应接口====================== sbit xjmk_r = P3^2;// 右边寻迹模块检测口INT0 sbit xjmk_l = P3^3;// 左边寻迹模块检测口INT1 void check_righet();//右边时候检测到黑线测试程序 void check_left();//左边时候检测到黑线测试程序 void delay_50us(uint t); void delayms(uint Ms); uchar r_count;//右边传感器检测到的次数计数单元 uchar l_count; uint time; //***********************主程序****************************** main() { time=50; dianji_r=0;//上电时右侧电机运行 dianji_l=0;//上电时左侧电机运行 EA=1; EX1=1; EX0=1; IT1=0; IT0=0;

循迹小车(程序)

附录程序 目录 一、前言------------------------------------------------------------ 二、小车功能------------------------------------------------------ 三、元器件选择-------------------------------------------------- 四、I/O分配及硬件连接简图--------------------------------- 五、相关模块、算法--------------------------------------------- 六、系统框图------------------------------------------------------ 七、调试过程------------------------------------------------------ 八、小车图片资料--------------------------------------------------- 九、讲座所感------------------------------------------------------ 十、实习总结------------------------------------------------------

一、前言 感谢生产实习能给我们这次实现自己想法的机会,虽然实验条件异常简陋、资金投入非常有限,总体感觉我的队友们灰常灰常给力啊,我感觉我是抱到大腿了--王威,夏青、峰哥,团队气氛非常好,大家一起讨论,一起分工研究模块,最后一起解决问题调试程序,而且是不同的组合在不同阶段解决了不同的问题,大家精诚合作,各显身手,在奋战中给大三学年画上了圆满的句号。 之前我们本来商量是不是可以拿往年电子设计大赛的题目过来做,如果难度太大就算只实现一部分功能也算是成功完成了,结果研究一天后发现电子设计大赛的题目需要很长时间的知识积累啊,基本上都是准备一个月以上然后开工的,后来王威提议要不我们做个小车吧,超声波测距实现自动物体追踪,控制核心采用单片机,传感器采用广泛用于避障和测距的超声波传感器,前进和后退用普通伺服电机和电机驱动模块实现。在网上选购单片机最小系统的时候,发现有一家商铺的最小系统上集成了红外模块,就想着不要浪费了,就萌生了做遥控车的想法,这样系统可以实现两个功能一个是类似于“光影魔术手”一样的物体追踪功能,一个是遥控运行功能。 组队之后,我们一起讨论,从原理上进行可行性分析,最后一致讨论通过,然后就分组从网上搜集相关的资料,最后周一在淘宝上确定并购买了相关的器件,周三上午收到元器件,下午我们从零开始熟悉开发环境keil uvision3、翻看器件的技术文档、搞懂模块原理及使用方法、模块的编程调试、系统功能编程调试、系统程序整合、装车、系统功能优化。这是一个发现问题和解决问题的过程,乐趣也正在于此,我们相信一切问题皆有解决的方法,我们队员四个克服种种困难最终实现了既定的系统的功能,并且在找到带有舵机新车后添加了转弯功能,实在是意外之喜。 二、小车具体功能 1、小车系统功能简述 接通电源后,按下开机键,小车进入模式选择状态,按左三角键进入(超声波)物体追踪模式,小车可以与物体始终保持设定的距离,实现与手(或其它物体)同步运动,即小车随物体一起前进后退、加速减速,同时显示当下距离值。按右三角键进入红外遥控模式,可以遥控小车前进、后退、左转、右转、剎停。在两个模式下按关机键,可以终止当前模式,重新选择功能,终止当前模式后按关机键,彻底关机,必须按开机键系统才能重新工作。 控制系统方框图: 超声波测距追踪:

51单片机_循迹小车项目报告(完整)

宜宾职业技术学院 《单片机系统设计》 项目设计报告 项目设计题目:智能寻迹小车 系部:电子信息与控制工程系班级:电子XXXX 班组号:第四组 小组成员:XXX 指导教师:XXX 2017年10月10日

目录 一、引言 (3) 二、方案论证 (4) 三、小车车体设计 (7) 四、硬件系统设计 (8) 1、单片机最小系统 (8) 2、循迹电路 (9) 3、电机驱动电路 (9) 五、软件系统设计 (12) 六、系统的制作、仿真与调试 (14) 七、总结 (15)

一、引言 当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为电子专业学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。此项设计是在以小为基础,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

基于AT89C52单片机的智能小车c语言程序

#include #define uchar unsigned char #define uint unsigned int uchar pro_left=35,pro_right=35,i,j; //左右占空比标志 sbit left1=P2^1;//定义端口 sbit left2=P2^0; sbit right1=P2^3; sbit right2=P2^2; sbit pleft=P2^7; sbit pright=P2^6; sbit en1=P1^0; sbit en2=P1^1; //循迹口三个红外传感器 sbit left_red=P1^2; //白线位置 sbit right_red=P1^4; //白线位置 void delay(uint z) { uchar i; while(z--) {for(i=0;i<121;i++);} } void init() {

left_red=0; //白线位置 right_red=0; TMOD=0X01; TH0=(65536-100)/256; TL0=(65536-100)%256; EA=1; ET0=1; TR0=1; en1=1; en2=1; } void time0(void)interrupt 1//定时中断{ i++; j++; if(i<=pro_right) {en1=1;} else en1=0; if(i==40) {en1=~en1;i=0;} if(j<=pro_left) {en2=1;} else en2=0; if(j==40) {en2=~en2;j=0;} TH0=(65536-100)/256; TL0=(65536-100)%256; } void straight() //走直线函数

基于单片机的智能循迹小车的控制过程毕业设计

基于单片机的智能循迹小车的控制过程 毕业设计

摘要 本文论述了基于单片机的智能循迹小车的控制过程。智能循迹是基于自动引导机器人系统,用以实现小车自动识别路线,以及选择正确的路线。智能循迹小车是一个运用传感器、单片机、电机驱动及自动控制等技术来实现按照预先设定的模式下,不受人为管理时能够自动实现循迹导航的高新科技。该技术已经应用于无人驾驶机动车,无人工厂,仓库,服务机器人等多种领域。 本设计采用STC89C52单片机作为小车的控制核心;采用TCRT5000红外反射式开关传感器作为小车的循迹模块来识别白色路面中央的黑色引导线,采集信号并将信号转换为能被单片机识别的数字信号;采用驱动芯片L298N构成双H桥控制直流电机,其中软件系统采用C程序,本设计的电路结构简单,容易实现,可靠性高。 关键词:单片机;自动循迹;驱动电路

Abstract This paper discusses the intelligent tracing electric trolley control process. Automatic tracing is used to make the car indentify route automatically , and choosing the right route, based on the automatic guide robot system. Intelligent tracing electric trolley is an advanced technology to realize automatic tracing navigation. It is out of human management but under the designed mode that use of the use of a transducer, single chip, motor drive and automatic control .This technology has been applied in unmanned vehicle, unmanned factory, warehouse, service robot and many other fields. During the design of Intelligent tracing electric trolley, STC89C52 single clip is used as the control core; at the same time with TCRT5000 reflective infrared transducer switch to identify the black guide line at the central of the white road, which used as the car tracing module, it can gather the signal and transfer it into digital signal that can be recognized by single chip. And the driving chip L298N constitute the double H bridge constitute of driving chip L298N can control direct current motor. Among which the software system is using C program. In a nutshell, the design of the circuit has the advantages of simple structure, easy implementation, and high reliability. Key words:single chip microcomputer; automatic tracing; driving circuit

相关文档
最新文档