简易循迹小车(实训)

更新时间:2023-10-18 08:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

桂林电子科技大学职业技术学院

单片机实训Ⅱ报告

自动循迹智能小车

学院(系): 电子信息工程系 专 业: 电子信息工程技术 学 号: 091222523 学生姓名: 颜远昌 指导教师: 叶俊明

桂林电子科技大学职业技术学院实训报告

目 录

摘 要...................................................................2 1 绪论 ...................................................................4 2 课题背景 .........................................................4 2.1 设计任务与要求 ....................................................4 2.2 设计目的 .........................................................4 3 总体设计方案 .......................................................5 3.1 设计思想 ......................................................5 3.2 方案选择与论证.............................................. 5 3.2.1轨迹探测模块设计与比较 ....................................5 3.2.2 控制电机方案与比较 ..............................................5 3.2.3 电机驱动方案与比较 ..............................................6 4 硬件设计 ..............................................6 4.1智能小车的总体硬件结构及原理.................................6 4.2 硬件原理框图 ..............................................6 4.3 部分元件介绍及功能..............................................7 4.3.1 单片机AT89S52 ..............................................7 4.3.2 比较器LM393N ..............................................8 4.3.3 红外对管 ..............................................8 4.4 原理图设计 ..............................................8 4.4.1 红外传感器(循迹探头)设计 ..........................................8 4.4.2 直流电机H桥驱动设计 .............................................10 4.5 PCB图设计要求 ......................................................10 5 程序设计流程 ...................................................11 6 总 结 .............................................................11 鸣 谢 ................................................................13 参考文献 .............................................................14 附 件 ................................................................15

桂林电子科技大学职业技术学院实训报告

摘 要

随着电子行业的飞速发展,智能化产品越来越受到人们的青眯。人们都喜欢使用安全、可靠、能自动控制的电子产品。就本着这样的思想,此次实训就设计了个智能循迹小车。

本次设计的简易智能循迹小车采用简单的人工智能技术,基于红外传感器和AT89S52两个核心部件来作为对小车的行驶状态进行检测和控制,让小车在人为布置的轨迹上行驶。由于采用自制的红外传感器,它可以辨别黑色物质和非黑色物质;所以可以人为的给小车循着黑带轨迹走。使用单片机AT89S52对当前红外传感器采集到的黑带信息来控制小车的下一步行驶。

通过编程控制小车的速度与转向。根据题目设定的行进及具体要求,分别采用红外传感器进行寻迹行驶、黑带采集及变速行驶,采用PWM脉宽调制改变输出电压进行变速,用三极管自制H桥电路对直流电机进行驱动,采用直流减速电机可以对小车实行较精确定位,由蜂鸣器及LED构成声光提示电路。最后,小车的运行过程中的各种自动化过程由单片机通过编程实现。

关键词: 红外传感;PWM调制;直流减速电机;H桥驱动电路;

Abstract

第2页

桂林电子科技大学职业技术学院实训报告

With the rapid development of electronic industry, intelligent products were high in many people’s favour more and more. People like to use the electronic products which is safe, reliable and can be controlled automatically. In such thoughts,I designed the intelligent car.

This simple intelligently tracing car is used simply artificial intelligence technology.it is based on the two core components ,infrared sensors and AT89S52 devices for testing and controlling the car’s condition letting the car driving on the track designed randomly. Due to the infrared sensor made by ourselves, it can distinguish black substance and blackness substance and we can have the car track along the black belt. By giving AT89S52 the information collected by current infrared sensor ,the AT89S52 can control the next step’s driving.

We control the car’s speed and steering by programming. According to marching and specific requirements set by subject ,we use infrared sensors for tracing driving, black belt for collecting , variable speed for driving, PWM pulse width modulation for changing output voltage for changing speed ,transistor and self-made H bridge circuit for dc which can give the car more precise positioning, the buzzer and LED constitute acousto-optic tip circuit for indicating. Finally, the car’s variously automatic process in running process realized by programming by single-chip microcomputer.

Keywords: infrared sensor; PWM modulation; DC gear motor; H bridge

driver circuit;

第3页

桂林电子科技大学职业技术学院实训报告

1 绪论

智能小车可以作为机器人的代表。我此次设计主要实现循迹功能。它可以

分为三大组成部分:传感器检测部分、执行部分、CPU。智能小车可以识别路线,进行正确党的行进路线,所以考虑到小车不需要感知清晰图像,只要求粗略感知即可,所以选用价廉物美的红外反射式传感器;智能小车的执行部分有直流电机来充当,主要控制小车的行进方向和速度;单片机驱动直流电机一半有两种方案:第一,不需占用单片机资源,直接选用有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大,考虑到实际情况,本文选择第二种方案,CPU使用AT89S52单片机,配合 软件编程实现。

2 课题背景

在高新技术日新月异的今天,科学技术已经成为整个社会发展的源动力,电子领域的发展更是令人目不暇接,在其推动下,现代电子产品几乎渗透了社会的各个领域,遍迹了千家万户,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。智能小车发展速度很快,从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几节的电子设计大赛智能小车又在向声控系统发展。

2.1设计任务与要求

本设计主要能够通过红外反射式传感器来实现小车沿黑线的速度、位置、运行状况的实时测量,并将测量的数据传给单片机进行处理,然后有单片机根据所检测的各种数据实现对小车的智能控制,使小车顺利按照黑线完成行驶。

2.2设计目的

通过该毕业设计对单片机系统要有一个全面的了解、掌握常规芯片的使用方法、掌握简单单片机应用系统软硬件的设计方法,明白单片机外围电路的硬件设计(直流电机的驱动电路、红外反射式传感器的设计等),通过编程控制小车的运行速度和方向,进一步锻炼在单片机应用方面的实际动手能力。

第4页

桂林电子科技大学职业技术学院实训报告

3 总体设计方案

3.1 设计思想

智能小车是基于单片机的控制系统、红外反射式传感器电路、驱动电路和直流电机组合而成。利用AT89S52单片机外接红外传感电路来感知小车的位置,外接直流电机的驱动电路,通过编程来改变输出脉冲的占空比和高低电平来控制电机的速度与转向。

3.2方案选择与论证

3.2.1轨迹探测模块设计与比较

方案一:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。

方案二:红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。单片机就是通过接收到的高低电平为依据来确定黑线的位置和小车的行走路线。对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。经测试,此种方法简单可靠。

经反复对比后,采用方案二。

3.2.2 控制电机方案比较

方案一 :利用步进电机的准确定长步进性能方便的实现调速和方向的偏转,且能准确的测量速度、路程以及时间,简化编程和硬件连接的工作量。但是步进电机在与机械配合的小车改装上难度极大,非短时间所能完成。该方案实现较困难。

方案二 :用玩具小车上自带的双直流电机,只需对后轮电机进行简单改造,加上一个齿轮减速装置即可,两电机分别负责小汽车的驱动和转向的功能,依据外围红外反射传感器所采集到的信息可以补足直流电机定位不准的缺点,同时红

第5页

桂林电子科技大学职业技术学院实训报告

外反射传感器的使用还能实现比较准确的寻迹行驶,用较好的控制算法及特色硬件来提高小车的整体性能,可具有很高的性能/价格比。

经比较验证,显然方案一的机械结构在短时间内难以满足题目的要求,而方案二本身是与小车相兼容的,性能也比较好,采用方案二。

3.2.3电机驱动方案的比较

方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。

方案二:采用电阻网络或数字电位器调节电机的分压,从而得到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一半的电动机电阻很小,而电流很大,分压不仅会降低效率,而且实现很困难。

方案三:采用传统的功率三极管搭建H桥作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,成本低,加速能力强,压降低,由于这种 电路工作在管子的饱和和截至模式下,效率非常高,稳定性也极强,是一种广泛采用的PWM调速技术。

因此决定采用功率三极管来搭建H桥来驱动直流电机。

4 硬件设计

4.1智能小车的总体硬件结构及原理

智能小车的硬件结构主要由AT89S52、红外传感、PWM调制、直流减速电机、H桥驱动电路组和而成。

4.2硬件原理框图

轨 迹探 测 电 路 单 左右拐弯驱动电路 片机前进驱动电路 第6页

桂林电子科技大学职业技术学院实训报告

图4.2.1 硬件原理框图

4.3 部分元件介绍及作用

4.3.1 单片机AT89S52

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。单片机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。它的P3.2和P3.3也可以做外部中断端口,检测到中断信号后执行中断服务函数,用它的IO口可以检测电平的高低,对外部硬件电路做出相应的操作,实现我们所要的功能。

4.3.2 比较器LM393N

LM393N是双电压比较器,具有以下特性:

工作电源范围宽,单、双电源均可工作,单电源:2--36V,双电源:±1--±18V; 消耗电流小:ICC = 0.8mA; 输入失调电压小:VIO = ±2mV;

共模输入电压范围宽:VIC = 0--VCC -1.5V; 输出与TTL、DTL、MOS、CMOS等兼容;

采用双列直插8脚塑料封装(DIP8),和微型的双列8脚塑料封装(SOP8); (此次设计使用单电源方式,采用DIP8的封装)

第7页

桂林电子科技大学职业技术学院实训报告

LM393N功能表:

引脚序号 功能 引脚序号 功能 1 输出端1 5 正向输入端2 2 反向输入端1 6 反向输入端2 3 正想输入端1 7 输出端2 4 地或者负电源 8 电源

4.3.3 红外对管

红外发光二极管

红外发光二极管是一种在正常工作下发出红外肉眼不可见光的二极管器件,跟普通二极管一样也具有单向导电性,工作电压在1V--3.0V左右(此次设计用到的是导通电压在1V左右),静态电流最大20mA,另外,它的脉动电流可以通过比静态大得多的电流,脉动最大电流可达60--70mA。 红外接收二极管

红外接收二极管是一种只对红外光敏感的器件,当有红外光照射到时,其正向电阻将减小,减小幅度跟照射到其表面的红外光的强度有关,越强电阻越小,反之则越大。

4.4 原理图设计

4.4.1 红外传感器(循迹探头)设计

利用红外光遇到不同的物质会产生不同的反射,特别是遇到黑色物质和白色有很大的区别。当红外光照射到黑色物质时,光的反射量会急剧减少;而当红外光照射到白色物质时,光的反射量会很大。另外,红外接收二极管在不同的红外

第8页

桂林电子科技大学职业技术学院实训报告

照射下PN节的导通状态会不同,这样就可以达到循迹的目的。

红外发光二极管采用电阻驱动法,给发光二极管串联一个限流电阻,约360欧姆,导通电流约为11mA。

红外接收二极管反向接法,并给其串联一个电阻,电阻的经验值为10K,在自然状态条件下,红外管的负端能产生1--3V左右的电压,这样便于给输入电压作比较。

此次使用四路红外对管来作为对黑色轨迹的探测,有两个放在黑带里面,另外两个放在黑带外面。其原理图如下:

第9页

桂林电子科技大学职业技术学院实训报告

4.4.2 直流电机H桥驱动设计

电机驱动使用独立的元件三极管9012和9013,可通过电流达200mA,NPN型和PNP型管结合使用,最终可以用TTL电平控制。 具体原理图如下:

4.5 PCB图设计要求

对PCB图的主要要求就是红外对管有较为严格的要求,因为只对17mm的黑边带循迹,所以红外对管应该安装在边带边沿处。具体的距离如下:

第10页

桂林电子科技大学职业技术学院实训报告

5 程序设计流程

开始

初始化

按键是否按下

Y N 延迟,防抖 按键是否按下 Y N run=~run;

Y run N 读取红外循迹信号 对小车进行拐弯变量和前进速度变量赋值 具体程序见附件。

6结论

此电路基本可以完成任务要求的各个功能,能较好的实现循迹功能。由于转弯轮子是弹簧式的,所以在行走过程中,拐弯轮子会在不停的来回左右摆动这是此次做的小车的不足之一。

另外,在这次初次设计电路时忘了多加一个使能按键,即在系统通电后不是

第11页

桂林电子科技大学职业技术学院实训报告

马上进入工作状态,而是先把车放好后再通过使能按键让小车正式进入工作状态。这是在设计电路之前事先没有弄明白它的工作过程而导致范的错误。

通过此次做板实训,让我对红外二极管有了较为深刻的使用认识,及对H桥电机驱动电路也有较深刻的认识。

第12页

桂林电子科技大学职业技术学院实训报告

谢 辞

实训是将理论用于实际最好的方法,它促进我们对知识的积极学习和动手能力。通过这次实训,我学会了怎么使用红外二极管和进一步理解三极管的工作方式,也让我明白了团队的合作很重要,从合作中我学会了互相学习,团结很重要。最后,我非常感谢叶俊明老师对我的支持与帮助。

第13页

桂林电子科技大学职业技术学院实训报告

参考文献

[1] 王连英,张永生.模拟电子技术.北京:高等教育出版社,2008.1

社,2010.5

[3] 张秀国,单片机C语言程序设计.北京:北京大学出版社,2008.6 [4] 赵广林,常用电子元器件识别/检测/选用一读通.北京:2007.4

[2] 宋雪臣,单振清,王金花,王道俊.传感器与检测技术.北京:人民邮电出版

第14页

桂林电子科技大学职业技术学院实训报告

附 件

/****************************************/ //文件名:小车智能循迹.C //作 者: 颜远昌 //开发环境: Keil //完成日期: 2011-06-03 //备注:

/****************************************/ #include #define uint unsigned int #define uchar unsigned char sbit MA1=P2^7; //电机A,1接口; sbit MA2=P2^6; //电机A,2接口; sbit MB1=P2^5; //电机B,1接口; sbit MB2=P2^4; //电机B,2接口; sbit RUN=P3^6; //运行按键位; sbit BEEL=P1^6;//蜂鸣器; bit run=0; //运行标志位;

uchar deviate,sp = 0;//deviate寻轨迹值,sp前进速度等级; uint counter=0; //计数器;

uint beel=0; //确定脱离轨迹,让蜂鸣器响判断变量; /******************************************/ //函数名:delay( uchar time) //功能:延迟25us

/******************************************/ void delay( uchar time) {

unsigned int a; while( time-- ) for(a=0;a<25;a++);

第15页

桂林电子科技大学职业技术学院实训报告

}

/******************************************/ //函数名:inte()

//功能:对单片机定时器,中断进行初始化 /******************************************/ void inte() { }

/******************************************/ //函数名:main()

//功能:整个程序主函数的开始入口;

/******************************************/ void main() {

inte();//芯片初始化;

P1=0XFF; //给P1全部io口拉高电平; MB1=1; //设置小车只能向前走; while(1) {

if(!RUN) {

delay( 100 ); //延迟10ms防止抖动; if( !RUN ) {

第16页

TMOD = 0x00; //定时器1,方式0 TH1=0xfc; TL1=0x20;

ET1=1; //允许定时/计数器1,中断; TR1=0; //关闭定时/计数器1工作; EA=1; //打开总中断;

//判断运行按键是否按下;

//再次判断运行按键是否按下;

桂林电子科技大学职业技术学院实训报告

}

run = 1; //把运行标志位置1; TR1 = 1; //开定时器1; BEEL = 0;

delay( 100 ); //让蜂鸣器响一下; BEEL = 1; beel=0; //sp = 0;

//对脱离值让蜂鸣器置0;

}//end if(!RUN);

if( run ) //如果run=1,就进入循迹前进工作; {

deviate = 0x0f & P1;//取回低四位循迹信号; switch ( deviate ) {

case 0x0F : MA1 = 1; MA2 = 1; sp = 3;beel = 0;

//正常位置,不偏离,可以加速speed; //P14~P10;

break;

case 0x0D : MA2 = 1; MA1 = 0; sp = 2; delay(2);

MA2 = 1; beel = 0; //偏左,需右移;1101;

break;

case 0X05 :MA2 = 1; MA1 = 0; sp = 1; delay(2); delay(2);

MA2 = 1;beel = 0; //严重偏左,需右移;0101;

break;

case 0X0B: MA1 = 1; MA2 = 0; sp = 2; delay(2);

MA2 = 1; beel = 0; //偏右,需左移;1011;

break;

case 0X0A: MA1 = 1; MA2 = 0; sp = 1; delay(2); delay(2);

MA2 = 1; beel=0; //严重偏右,需左移;1010;

break;

第17页

桂林电子科技大学职业技术学院实训报告

default: MA1 = 1; MA2 = 1; sp = 0;beel++;

if( beel == 1500 )//确定已经脱离轨迹了;

{

BEEL = 0; delay(200); delay(200);

delay(200); delay(200);// 响第1声;

BEEL = 1; delay(50); delay(50); BEEL = 0; delay(200); delay(200);

delay(200); delay(200);// 响第2声;

BEEL = 1; delay(50); delay(50); BEEL = 0; delay(200); delay(200);

delay(200); delay(200);// 响第3声;

BEEL = 1; delay(50); TR0 = 0; run = 0;

//关定时器,置运行标志位run为0;

}

}

break;

} //end switch(deviate)

} // end if(run) } //end shile(1)

/******************************************/ //函数名:Timer1()

//功能:定时器,给电机前进产生PWM,以便调速; /******************************************/ void Timer1() interrupt 3 using 1 {

TH1=0xfc; TL1=0x20; counter++; if(counter>=100)

counter=0;

第18页

桂林电子科技大学职业技术学院实训报告

}

switch ( sp ) { }

case 1 : if ( counter <= 80 ) MB2 = 0;

else MB2 = 1;

break;

case 2 : if ( counter <= 90 ) MB2 = 0;

else MB2 = 1;

break;

case 3 : MB2 = 0;

break;

default: MB2 = 1;

break;

第19页

本文来源:https://www.bwwdw.com/article/c15f.html

Top