智能循迹小车_智能小车循迹

2020-02-27 其他范文 下载本文

智能循迹小车由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“智能小车循迹”。

附件一:

参赛队号:___________(由工作人员填写)

简易小车寻迹竞速大赛

设计方案书

参赛队名:_____胜利队________________ 参赛队员及班级:__李永新___电信101____

吕凯 电信101 __邓邹超 电信122____ 联系方式:__ 李永新 _____

目录

引言………………………………………………………………… 3 摘要………………………………………………………………… 3 关键词……………………………………………………………… 3 一.系统设计……………………………………………………… 4

1.1 设计思想…………………………………………………

1.2 设计要求…………………………………………………

1.3 循迹的原理………………………………………………二.程序设计及说明……………………………………………… 5 三.参数调试……………………………………………………四.总结…………………………………………………………

引言:

近现代,随着电子科技的迅猛发展,人们对技术也提出了更高的要求。汽车的智能化在提高汽车的行驶安全性,操作性等方面都有巨大的优势,在一些特殊的场合下也能满足一些特殊的需要。智能小车系统涉及到自动控制,车辆工程,计算机等多个领域,是未来汽车智能化是一个不可避免的大趋势。

摘要:本组的智能小车是采用学院提供的小车,是以四个电机来驱动小车,程序部分自行设计。通过接收器来采集信息,传送进主控芯片STC89C52RC单片机,进行数据处理后,送进驱动芯片L298N以完成相应的操作。L298N电机驱动适宜2轮驱动,为此修改成左、右边两轮电机相接,由此4路转换成2路进行驱动,采用反射式红外光电传感器识别黑白线来实现小车自动循迹功能。

关键词:L298N STC89C52RC 反射式红外光电传感器 自动循迹

一.系统设计

1.1设计思想

在智能寻迹小车系统设计过程中,用 L298N驱动四个电机,当产生信号驱动车前进时,是通过寻迹模块里的红外对管 ST178 是否寻到黑线产生的电平信号通过LM339再返回到单片机,单片机再根据程序设计的要求做出相应的判断送给电机驱动模块,当左边的探头检测到黑线时,让小车往右转;右边探头检测到黑线时,小车往左转,以实现小车自动寻迹功能。

1.2 设计要求

实现小车的前进,左转右转,和自动循迹功能

1.3 寻迹的原理

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

二.程序设计及说明

#include

//定义头文件

#define uint unsigned int uint time;sbit OUT2 = P1^0;

//定义4个探头的IO口 sbit OUT1 = P1^1;sbit OUT4 = P1^2;sbit OUT3 = P1^3;sbit IN1 = P1^4;

//定义两个电机的IO口 sbit IN2= P1^5;sbit IN3 = P1^6;sbit IN4 = P1^7;

void delay(uint time)

//定义延时函数 {

}

void GO(void)

//前进函数 {

IN1=1;IN2=0;IN3=1;IN4=0;

//让左右电机同时前进 delay(22);IN1=0;IN2=0;IN3=0;IN4=0;delay(2);

uint i=0,j=0;for(i=0;i

IN1=0;IN2=0;IN3=0;IN4=0;

//停止函数,让左右电机同时关闭

delay(60000);

}

void TRT(void)

//右转函数 {

IN1=0;IN2=1;IN3=0;IN4=1;

//先让小车后退

delay(40);

IN1=1;IN2=0;IN3=0;IN4=1;

//然后左边电机前进,右边电机后退,实现小车右转

delay(200);IN1=0;IN2=0;IN3=0;IN4=0;

delay(1);} void TLT(void)

//左转函数

{

IN1=0;IN2=1;IN3=0;IN4=1;

//后退

delay(40);IN1=0;IN2=1;IN3=1;IN4=0;

//左边电机后退,右边电机前进,实现左转

delay(200);IN1=0;IN2=0;IN3=0;IN4=0;

delay(1);}

void SMALLTRT(void)

//右小转函数 {

IN1=1;IN2=0;IN3=0;IN4=1;

//实现小幅度的右转

delay(20);IN1=0;IN2=0;IN3=0;IN4=0;

delay(1);} void SMALLTLT(void)

//左小转函数 {

IN1=0;IN2=1;IN3=1;IN4=0;

//实现小幅度的左转

delay(20);IN1=0;IN2=0;IN3=0;IN4=0;

delay(1);} void main()

//循迹主函数

{

IN1=0;IN2=0;IN3=0;IN4=0;while(1){

if(OUT1==0&&OUT2==0&&OUT3==0&&OUT4==0)//4个探头均未检测到黑线时前进

{

GO();

} if(OUT2==1)

//最左探头检测到黑线时实现右小转

{ SMALLTRT();

} if(OUT3==1)

//最右探头检测到黑线时实现左小转 { SMALLTLT();

} if(OUT1==1)

//左侧中间探头检测到黑线时实现右转 { TRT();

} if(OUT4==1)

//右侧中间探头检测到黑线时实现左转

{

TLT();

}

if(OUT1==1&&OUT2==1&&OUT3==1&&OUT4==1)//全部检测到黑线时停止

}

{

} } stop();

三.参数调试

在程序中,要对小车的前进速度及转弯速度进行多次反复的调试,对delay函数的参数修改了上百次,达到前进不会冲出跑道,转弯幅度合适,后轮不会掉出跑道等,使各方面达到一个平衡,以实现在跑道上完整的顺利的运行。

四.总结

经过两个礼拜的忙碌,在三个人的共同努力下,终于给简易循迹小车比赛划上了句号。虽说不上是完美,但总算是成功了。

本次比赛不仅给我们提供了一个很好的展现自己所学知识的平台,又是对自己所学知识的一次考核、检验。我们运用各自在各方面的优势,化腐朽为神奇,形成了一个团队。通过团队合作的力量,使设计得以顺利完成。可以说,我们三个人是一个不可或缺的整体,少了任何一个人都是无法把任务完美的完成。

在设计的过程中我们也不可避免的遇到了很多的问题。尤其是在调试过程中,经常出现一些我们意想不到的的问题,但通过我们三个人的共同努力都克服了。

通过这次比赛,无论是对于学习方法还是理论知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践运作能力。

最后还要特别感谢主办方举办这次比赛,给了我们这个很好的平台来展示自己;同样感谢各位评委在百忙之中抽出宝贵时间来指导我们,你们的点评让我们有了进一步提高的方向和信心!

《智能循迹小车.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
智能循迹小车
点击下载文档
相关专题 智能小车循迹 小车 智能 智能小车循迹 小车 智能
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文