单片机c52可以制作循迹小车么

单片机c52可以制作循迹小车么,第1张

可以啊

我做过两个循迹小车了。

一个是用PIC单片机做的,一个是用52单片机做的

89C52的那个主要是增加了一些功能

有循迹,避障,手机遥控,倒车语音提示等

有一系列的资料,

包括原理图,PCB,程序,设计报告。

想要就联系我

直接在Q里面查找“爱在江南听雨”

然后发一封邮件到我邮箱说明你要小车资料。

实现自动寻迹等。基于单片机的循迹避障小车的设计与实现官网显示,设计意义为通过配合软件编程,可以很好的实现自动寻迹、避障的功能。arm单片机是以arm处理器为核心的一种单片微型计算机,是近年来随着电子设备智能化和网络化程度不断提高而出现的新兴产物。

工作原理:红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。

我也是初次做小车

上面的是我做玩后的一些见解

你这个可以这样

你的小车每到一个分岔口(“T”或者“十”型路口)就随机选择一个寻迹方向(路线),并且把第一个寻迹值保存起来(就是记住这次小车是往哪里走的,防止下次走重复的路)。

小车走下去会有2种情况:

1,小车此次走的路线正确 继续前走,值到下一个路口

2,小车走了一段路后没路了,又分为2种情况:

(1),小车走错路了,得退回去,这时候小车可以后退寻迹,直到返回分岔口,再重复上面过程(注意,此时小车选择路线时要和前面保存起来的值进行对比,不可以再走小车前面走过的错路了,并且还得把这次跑的方向保存,下面小车如果在这个点在此返回了,小车选择路线时就要排除上面2次的路线了,以此类推)

(2),小车到终点了,我看了你们的跑道情况,终点前面有2个断点,可以利用这个区分小车是到了终点还是跑错路了

程序可能有点复杂,祝你们成功

我用十三个对管,舵机控制转向,八个对管的话状态改下就行,给你参考下,不明白可以追问我,qq 181325995

#include<reg52h>

#define uint unsigned int

#define uchar unsigned char

uint i,count;

uchar pro; //驱动电机调速//

uchar finish=0;//停车标志

sbit le1=P1^0; //左边传感器//

sbit le2=P1^1;

sbit le3=P1^2;

sbit le4=P1^3;

sbit le5=P1^4;

sbit le6=P1^5;

sbit mid=P1^6;//中间传感器//

sbit ri6=P1^7;

sbit ri5=P2^3;

sbit ri4=P2^4;

sbit ri3=P2^5;

sbit ri2=P2^6;

sbit ri1=P2^7;//右边传感器//

sbit ENA=P2^0; //驱动电机pwm//

sbit moto1=P2^1; //电机控制//

sbit moto2=P2^2;

sbit PWM=P3^5; //舵机pwm//

sbit bz=P3^7;//蔽障管

init()

{

TMOD=0x11;//设定双定时器

EA=1;

TR0=1;

TR1=1;

TH0 = 0x0B1;//设定定时初始值,可去下载个定时器计算软件,

TL0 = 0x0E0;

TH1=(65536-100)/256;

TL1=(65536-100)%256;

ET0=1;

ET1=1;

ENA=1;

}

void delay(uint n)//延时函数

{

uchar a,b,c;

for(c=1;c>0;c--)

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

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

}

void delay2(uint z)

{

uchar a,b,c;

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

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

for(c=z;c>0;c--);

}

void qctyp(void) //光电管全无状态时(脱离轨道),读取前次状态

{

le1=P1^0;

le2=P1^1;

le3=P1^2;

le4=P1^3;

le5=P1^4;

le6=P1^5;

mid=P1^6;

ri6=P1^7;

ri5=P2^3;

ri4=P2^4;

ri3=P2^5;

ri2=P2^6;

ri1=P2^7;

}

void hhig(uint y)//前进函数

{

pro=y;//变量y是改变小车速度这里范围是0--39

moto1=1;

moto2=0;

}

void back(uint z)//后退函数

{

pro=z;//改变z 可改变行驶速度

moto1=0;

moto2=1;

}

void dj(uint m) //舵机控制

{

PWM=1;

delay(m); //改变m可改变舵机转向角度,

PWM=0;

}

void check_stop()//检测终点线,我用十三个对管,八个管停车状态自己分析

{

uchar start_flag;

if((le3&&le4)&&(!le1&&!le6)&&mid&&(ri3&&ri4)&&(!ri1&&!ri6))

start_flag=1;

else if((le2&&le3)&&!le5&&(le6&&mid)&&(ri3&&ri4)&&(ri1&&ri6))

start_flag=1;

else if((le2&&le3)&&le6&&(!le5&&!mid)&&(ri3&&ri4)&&(ri1&&ri6))

start_flag=1;

else if((le2&&le3)&&!le4&&(le5&&le6)&&!mid&&(ri5&&ri4)&&ri1)

start_flag=1;

else if((le2&&le3)&&(!le4&&!le6)&&le5&&!mid&&!ri4&&(ri1&&ri2))

start_flag=1;

else if(le2&&!le3&&(le4&&mid)&&(le5&&le6)&&(ri1&&ri2))

start_flag=1;

else if((le3&&le4)&&le6&&(ri6&&mid)&&(ri2&&ri3)&&!ri5)

start_flag=1;

else if((le5&&le4)&&(!le1&&!mid)&&ri6&&(ri2&&ri3)&&!ri5)

start_flag=1;

else if((le5&&le6)&&(!le1&&!le2)&&ri5&&ri2&&!ri4)

start_flag=1;

else if((le5&&le4)&&(!le1&&!le2)&&(!mid||!ri6)&&ri5&&(ri1&&ri2)&&!ri4)

start_flag=1;

else start_flag=0;

if(start_flag)

{

count++;

delay2(50);

if (count==1)

else if(count==2)

else if(count==3)

{

count=0;

finish=1;

P0=0xa4;//加led显示只是为了方便调试,两圈之后停车

}

else

finish=0;

}

if(finish)

{

ENA=0;

TR1=0;//关定时器1,驱动电机停转

}

}

void xunji()//循迹函数,读取光电管状态

{

if(!le1&&!le2&&!le3&&!le4&&!le5&&!le6&&mid&&!ri6&&!ri5&&!ri4&&!ri3&&!ri2&&!ri1)

{

dj(109);

hhig(39);

}

else if(le6&&mid&&!ri6&&!ri5&&!ri4&&!ri3&&!ri2&&!ri1)

{

dj(114);

hhig(35);

}

。//分析八个光电管状态,看你的电路检测到黑线输出1或者是0

else

{

dj(109);//舵机归中

hhig(25);

}

}

void main()

{

init();

while(1)

{

check_stop();

if(bz==0)//检测到障碍,。。。

{

back(18);

}

}

}

void timer0() interrupt 1//产生pwm信号控制舵机,周期20ms

{

TH0=0xb1;

TL0=0xe0;

xunji();

}

void timer1() interrupt 3//产生pwm信号控制驱动电机速度

{

TH1=(65536-100)/256;

TL1=(65536-100)%256;

i++;

if(i<=pro)

{

ENA=1;

}

else

{

ENA=0;

}

if(i==40)

{

ENA=~ENA;

i=0;

}

}

1.通过解决相关实际问题,以巩固、加深对嵌入式的认识和相关知识的理解,提高综合运用课程知识的能力。

2.熟悉与计算机相关的嵌入式方面的电子元器件和电路特性,能正确反映设计和实验成果,提高自主创新能力。

3.培养严肃认真的工作作风和严谨科学态度。通过课程设计实践,获得初步的应用经验,为以后从事生产和科研工作打下的坚实的基础。

4.培养根据课题需要选学参考书籍、查阅手册图表和文献资料的自学能力。通过独立思考,深入钻研有关问题,学会自己分析解决问题。

5.了解与课程有关的电子电路以及元器件技术规范,按课程设计任务书的要求编写设计说明书。提高自己的动手能力,培养严肃、认真的工作作风和科学态度。

6.为了完成一款自主设计、制作的嵌入式作品,以提升个人能力和队嵌入式的兴趣。

7.对避障小车的避障原理有充分的理解,掌握其避障的方法,能够对实验过程中出现的问题进行解决,发现问题,解决问题。

12 背景

学习智能小车系统,有助于提高搭建系统的能力和对自动控制技术的理解。智能小车是一个较为完整的智能化系统,而智能化的研究已成为我国追赶世界科技水平的重要任务。智能小车有它特有的特点:成本低,涉及的知识面广,易于拓展[1]。整个智能小车系统作为一个完整的系统,从它的原理图的实现到实物的完成的过程,不仅需要深厚的电子方面的知识,还有对电路实现的良好掌握,对于培养学生的实践能力都有重要的意义。智能小车的竞赛在我国各大高校中都受到了重视,吸引了大批的高校学生的兴趣,而且取得了很多优异的成果,为我国推进智能化的进程做出了巨大的贡献,也为智能汽车的发展提供了理论依据[2-3]。

只有当把理论和模型应用到实践中,这样的创新才用意义,我们国家这几年在智能化方面的进步越来越快,也推动了我国在国际社会上在智能化方面的话语权。智能小车是智能化的一部分,它的系统里的避障、循迹、红外遥控的技术用到了智能化,将智能化应用到传统技术上是21世纪发展的趋势。

我国虽然从改革开放以来大力发展科技创新,但是在智能化的创新水平与国外较发达的国家相比还有巨大的差距,智能竞赛在高校越来越流行,也证明了我国教育在这方面很快会赶上世界上的发展水平。本次设计是以单片机为电路板,通过编程和一些外围电路的设计来实现红外遥控,避障,循迹等功能。最重要的是把模型上的研究应用到实际生活中,智能车辆便做到了这一点[4-6]。在实际应用中比如在倒车的过程中实现的红外警报系统是以智能小车为模型而研发出来的。对于电子知识的热爱与钻研有利于研发更多智能车辆,使我们的生活更加便利、智能化。

本次课程设计主要任务是实现基于51单片机智能小车红外避障和循迹的主要功能应用。以红外避障的功能解决小车在不同的环境避开行走的障碍物,直到终点,以红外循迹的功能去感应黑线找到走出迷宫的线索为目标。让机器人小车变得更加灵活。

2 需求分析

智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动运作,不需要人为的管理,可应用于科学勘探等等用途;并且能实现显示时间、速度、里程,具有红外自动寻迹、避障等功能,可程控行驶速度、定位停车,远程传输图像、按键控启动K4让小车运行起来,利用红外传感器感应黑线进行寻迹,利用红外反射感应进行红外避障功能。

图1 智能小车设计思维导图

如图1所示,我们使用STC89C52RC单片机电路板控制整个机器人小车的功能,通过接线建立好小车的电路图连接以及通过C51书写红外避障以及循迹功能程序。在设计好的场地,从出发点到终点,通过现有的功能顺利躲开障碍物的干扰以及通过智能机器人寻找黑线的功能一直走好直线且顺利到达终点,完成任务。在车的模型上分析,我们也补充到了红外感应原理,红外传播通过我们学习物理光学知识后,能解决为什么避障反应慢的问题,并解决了。

如图2所示,智能小车初步构想流程图,让整个项目实现的目标更加清晰明了。利用红外传感器,其优点是对近距离的障碍物反应速度灵敏,不同方位的传感器之间信号不会相互干扰,最终选择红外传感器作为小车的眼睛,进行避障。

由于本次实验小车轮子没有实现转弯功能,所以通过设定左右两组轮子的不同前进速度来实现转弯功能。当向右转时,左侧轮子的速度要比右侧轮子的前进速度快,反之实现左转功能,此设计需小心谨慎,防止出现轮子不同步,无法实现转弯功能。

图2 智能小车功能模块流程图

3系统设计

31总体设计

311 设计思路

总体来说,这个程序设计还算比较简单,比较基础,目的就是要学会基本的应用,这个过程中利用红外线传感器发射和接收信号模块来控制单片机,让单片机翻译传输指令,从而实现相应的功能。具体的过程如下:四路红外传感器,每一路发射一个信号,检测接收到的信号,若出现高电平,则说明该方向前方有障碍物,则单片机控制电机正转和反转,从而实现绕开障碍物继续前行。同时还增加一个无线发射和无线接收模块控制单片机,让单片机翻译传输指令,从而实现相应的功能。无线发射模块发出指令,无线接收模块接收信号后,传递给单片机,单片机翻译接收到信号后,传输给驱动电路驱动电机旋转,从而实现让小车的前进、后退、左转和右转。

在主控制器模块上分析,采用STC89C52单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址 *** 作功能、价格低廉等优点。51单片机具有功能强大的位 *** 作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。

以上就是关于单片机c52可以制作循迹小车么全部的内容,包括:单片机c52可以制作循迹小车么、基于arm单片机的智能小车循迹避障设计意义、循迹小车原理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9343326.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存