《基于单片机的智能寻迹小车设计说明.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能寻迹小车设计说明.doc(31页珍藏版)》请在三一办公上搜索。
1、基于单片机的智能小车设计摘 要本文介绍了基于 AT89S52 单片机的智能循迹小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线根据黑色引导线的走向实现快速稳定的行驶,并且在前方出现障碍物时能够发出报警信号。小车系统以 AT89S52 单片机为微控制处理器,采用 TCRT5000光电传感器获取路线信息,通过由 L298N 构成的驱动电路分别驱动两个直流电机的正转、反转和停止,从而实现小车的循迹功能,当路线前方检测到有障碍物时,小车能够立即停止并报警,障碍物消除后,小车继续循迹行驶。关键词:单片机;自动寻迹;TCRT5000;L298N;The Design of Intelligen
2、t Car Based on Single-chip MicrocomputerAbstractThis article introduces the design and execution of intelligent tracking car. .The main function of the car is tracking the black line to realize auto driving stably and sending alarm signal when obstacle appears. The intelligent tracking car takes AT8
3、9S52 single-chip microcomputer as main control processor.Using TCRT5000 single-beam infrared photoelectric sensor for route information detection device,and L298Nconstant voltage constant-current bridge driver IC for car driving chip todrive two DC motors to forward, reverse and stop, so that the ca
4、r can run by planned pathway stably.When there is an obstacle is detected in front of the car, the car will stop and send alarm signal.When obstacles removed, the car will continued to tracking the black line.Keywords: Single-chip microcomputer;Auto-tracking;TCRT5000;L298N driver IC目 录1 绪论 11.1 智能小车
5、的研究背景 11.2 智能小车的自主循迹概述 11.3 设计的思路和要实现的功能 12 系统总体方案和主要芯片介绍 22.1 系统总体方案 22.1.1 车体设计 22.1.2 系统结构框图 22.2 主要芯片介绍 32.2.1 STC89C52 简介 32.2.2 78L05 简介 52.2.3 TCRT5000 简介 62.2.4 L298N 简介 63 硬件设计与实现 83.1 单片机主控电路 83.1.1 单片机最小系统 83.1.2 输入输出端口确定 93.2 电源电路 93.3 路面检测及蜂鸣器电路 103.3.1 路面检测电路 103.3.2 蜂鸣器电路 113.4 系统运动部分
6、设计 123.4.1 电机选型 123.4.2 驱动电路 124 软件设计 164.1 程序设计的思路和结构 164.1.1 程序设计总体思路 164.1.2 程序流程图 174.2 各模块程序分析 174.2.1 端口定义 174.2.2 子程序 184.2.3 主程序 195 总结 21致 22参考文献 23附录智能小车照片及总接线图 24附录 2 系统程序 251 绪论自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能化水平不断提高,它大大提高了劳动效率,减轻了人的劳动强度,提高了产品质量,改善了劳动环境,减少了能源和材料消耗,保
7、证了安全等。1.1 智能小车的研究背景智能小车,即轮式机器人,是移动机器人的一种。它可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无需人工干预,操作员可以通过修改智能小车的计算机程序来改变它的行驶方式。智能小车是一个集环境感知、规划决策、自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。智能小车能够在无现场操作人员的情况下按照预定的设计方案和根据现场的实际情况作出相应的反应,并能稳定的运行,在恶劣条件下探测、救生等方面具有广阔的应用前景。1.2 智能小车的自主循迹概述自主循迹已成为当今许多智能小车设计中的
8、一个必不可少的功能,可以说是智能小车实现智能化的一个重要指标。任何智能小车想要实现智能化就必须能够实现对外部环境的自我感知判断并作出相应反应,最终完成人们布置的任务。自主循迹小车是一种集环境探索、决策规划、自动行驶等功能于一体的机电系统,其设计技术涉及机电、电子、传感、计算机控制等多门学科知识,尤其涉及许多当今前沿领域的相关技术。因而自主涉及循迹小车已成为培养当代大学生的动手能力、创新能力首选工程实践训练项目之一,被列为国众多机器人大赛重点项目,备受各类院校与机器人开发公司的高度重视。1.3 设计的思路和要实现的功能 本设计的主要任务就是设计一个以单片机为核心的智能小车,主要实现循迹及简单的障
9、碍物检测功能。通过装在小车前面的红外传感器,获取路面黑线位置信息,输入到单片机中,再由单片机输出控制信号,由驱动模块驱动电机实现小车的自主循迹行驶,同时当路线前方检测到有障碍物时,小车能够立即停止并报警,障碍物消除后,小车继续沿黑线行驶。2 系统总体方案和主要芯片介绍本章围绕智能小车设计的总体思路,确定车体的设计方案,系统各部分组成,以及主要芯片的选定。2.1 系统总体方案2.1.1 车体设计小车采用废旧的玩具车车架,传感器安装在小车车体正前方,传感器的安装高度要保证每个传感器能正常工作。小车采用左右两轮分别驱动,后万向轮转向的方案。即左右轮分别用两个转速和力矩完全相同的直流电机进行驱动,车体
10、尾部装一个万向轮。这样,当一个电机转另一个电机不转时实现转弯,由此可以轻松的实现小车坐标不变的 90 度和 180 度的转弯。在安装时要保证两个电机同轴。当小车前进时,左右两驱动轮与后万向轮形成了三点结构,这种结构使得小车在前进时比较平稳。图 2-1 车体结构2.1.2 系统结构框图整个系统电路由电源模块、微控制模块、路面检测模块、电机驱动模块、蜂鸣器模块构成。系统的结构框图如下所示。图 2-2 系统结构框图2.2 主要芯片介绍2.2.1 STC89C52 简介STC89C52 是一种带 8K 字节闪烁可编程可檫除只读存储器FPEROM-Flash Programable and Erasab
11、le Read Only Memory 的低电压,高性能 COMOS8 的微处理器,俗称单片机。该器件采用 ATMEL 搞密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。图2-3 STC89C52单片机实物图图2-4 STC89C52单片机接口引脚图STC89C52 具体介绍如下:1主电源引脚2 根VCC:电源输入,接5V 电源GND:接地线2外接晶振引脚2 根XTAL1:片振荡电路的输入端XTAL2:片振荡电路的输出端3控制引脚4 根RST/VPP:复位引脚,引脚上出现 2 个机器周期的高电平将使单片机复位。ALE/PROG:地址锁存允许信号PSEN:外部存
12、储器读选通信号EA/VPP:程序存储器的外部选通,接低电平从外部程序存储器读指令,如果接高电平则从部程序存储器读指令。4可编程输入/输出引脚32 根STC89C52 单片机有 4 组 8 位的可编程 I/O 口,分别位 P0、P1、P2、P3 口,每个口有 8 位8 根引脚,共 32 根。PO 口Pin39Pin32:8 位双向 I/O 口线,名称为 P0.0P0.7P1 口Pin1Pin8:8 位准双向 I/O 口线,名称为 P1.0P1.7 P2 口Pin21Pin28:8 位准双向 I/O 口线,名称为 P2.0P2.7 P3 口Pin10Pin17:8 位准双向 I/O 口线,名称为
13、P3.0P3.7STC89C52 主要功能如表 2-1 所示:表 2-1 STC89C52 主要功能主要功能特性兼容 MCS51 指令系统8K 可反复擦写 Flash ROM32 个双向 I/O 口256x8bit 部 RAM3 个 16 位可编程定时/计数器中断时钟频率 0-24MHz2 个串行中断可编程 UART 串行通道2 个外部中断源共 6 个中断源2 个读写中断口线3 级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能2.2.2 78L05 简介78L05 是一颗三端稳压电源调整器,可以将输入电压稳定到5V输出,具有如下特点:1输出电流可达150mA。2输出电压5.0V。3输出精度可
14、达4%。4简单的外围电路。5静电防护ESD可达2.7KV图 2-5 78l05 封装图图2-6 78L05引脚图2.2.3 TCRT5000 简介光电传感器TCRT5000,是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。其检测距离在6mm-14mm。接收管输出端的低电平输出大致为0.78V,高电平的输出大致为2.85V,经过比较器后输出低电平为0.03V,高电平为3.26V,能够被单片机所识别。TCRT5000 的发射管和接收管采用DIP4封装,其结构如图2-7所示,具有如下特点:1塑料透镜可以提高灵敏度。2置可见光过滤器能减小离散
15、光的影响。3体积小,结构紧凑图 2-7 TCRT5000 封装和引脚图2.2.4 L298N 简介L298 是 SGS 公司的产品,比较常见的是 15 脚 Multiwatt 封装的 L298N,部同样包含 4 通道逻辑驱动电路。L298N 芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达 50V。L298N 可接受标准 TTL 逻辑电平信号 VSS,VSS可接 457 V 电压。4 脚 VS接电源电压,VS电压围 VIH为2546 V,输出电流可达 25 A,可驱动电感性负载。1 脚和 15 脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298N 可驱
16、动 2 个电动机,OUT1,OUT2 和 OUT3,OUT4 之间可分别接电动机。5、7、10、12 脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。图 2-8 L298N 引脚图3 硬件设计与实现3.1 单片机主控电路主控电路的核心为 STC89C52 单片机,首先要搭建单片机最小系统,然后确定输入端口和输出端口。3.1.1 单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。最小系统一般应该包括:单片机、晶振电路、复位电路,其中各个部分的功能如下:时钟电路:时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,
17、决定单片机的执行速度。STC89C52 单片机时钟频率围:0 33MHz,本设计中给单片机提供一个外接的 12MHz 的石英晶振。电源电路:向单片机供电。STC89C52 单片机的工作电压围:4.0V5.5V, 所以通常给单片机外接 5V 直流电源。连接方式为 VCC接电源+5V,VSS20脚接电源地端。复位电路:确定单片机工作的起始状态,完成单片机的启动过程,在电压达到正常值时给单片机一个复位信号。单片机接通电源时产生复位信号,完成单片机启动,确定单片机起始工作状态。手动按键产生复位信号,完成单片机启动,确定单片机的初始状态。通常在单片机工作出现混乱或死机时,使用手动复位可实现单片机重启。X
18、TAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5
19、/A1326P2.6/A1427U1AT89C52X112MHzC130pFC230pF+5VR210kC310uR110kR32k+5VCLPSS1SS2SS3SS4SS5NEARIN1IN2IN3IN4ENAENBFMQ图 3-1 单片机最小系统3.1.2 输入输出端口确定为了方便程序设计,将 P0 端口作为输入端口,P1 作为输出端口。单片机由P0.0-P0.6 口接收循迹模块发出的路面检测信号,通过 P1.0-P1.3 口控制驱动两个直流电机。当前方出现障碍物时通过 P2.0 口控制蜂鸣器发出报警信号。如表3-1 所示:表 3-1 单片机各接口接法P0.0接 CLP 触碰开关输出P0.
20、1接 SS1 传感器输出P0.2接 SS2 传感器输出P0.3接 SS3 传感器输出P0.4接 SS4 传感器输出P0.5接 SS5 传感器输出P0.6接 NEAR 红外蔽障传感器输出P1.0接控制信号输入端 1P1.1接控制信号输入端 2P1.2接控制信号输入端 3P1.3接控制信号输入端 43.2 电源电路电路的各部分电压要求不同,单片机的工作电压是 4.0-5.5V,循迹模块的工作电压是 3.0-5.5V,电机驱动模块的工作电压是 5-46V。为了保证整个电路能够稳定运行,给单片机和循迹模块提供 5V 的输入电压,给电机驱动模块提供 7.5 的输入电压。本设计中的电源模块选用了 78L0
21、5 这样一个电源调整器件,78L05 具有输出电压精度高,外围电路简单,价格便宜的特点。将 7.5V 干电池组的的电压输入到78L05 的输入端,输出端可以得到 5V 电压输出,输入输出端各并一个电容,可以起到。 。 。 。 。 的作用。7.5V 干电池一方面直接给驱动电路供压,通过 78L05 得到的 5V 电压给单片机等其他部分供压,这样系统电路各部分都能得到比较稳定的电压。图 3-2 电源模块电路图3.3 路面检测及蜂鸣器电路3.3.1 路面检测电路路面检测模块的主要功能是通过光电传感器检测路面黑线及前方障碍物情况,并将检测到的情况以高低电平的形式输出给单片机 P0 口。小车在白色地面行
22、驶时,红外发射管发出的红外信号被反射,接收管收到信号后,输出端为低电平。而当红外信号遇到黑色路面时,红外信号被吸收,接收管不能接收到信号,输出端为高电平。单片机通过采集每个红外接收管的输出端电压,便可以检测出路面黑线的位置,从而控制小车的转向,使小车一直沿黑线行驶。设计中采用了BDF-1000传感器模块,BFD-1000是以光电传感器TCRT5000为基础专门设计用作黑白线检测的传感器模块,它有6路高灵敏度的TCRT5000红外传感器5 路循迹、1 路蔽障,能够对黑白线准确的识别。图 3-3 BDF-1000传感器模块图3-4 TCRT5000光电传感器电路图3.3.2 蜂鸣器电路当检测电路上
23、的蔽障传感器检测到线路上有障碍物时,会从P2.0口发出一个低电平信号,蜂鸣器电路导通,蜂鸣器发出报警信号,当障碍物移除后,小车会继续沿黑线行驶,报警信号消除。图3-5 蜂鸣器电路图3.4 系统运动部分设计系统运动部分主要由驱动模块分别驱动两个完全相同的直流电机,通过齿轮带动两个前轮分别转动,在车体尾部的万向轮支撑下,实现小车的前进、转弯和停止。3.4.1 电机选型本设计中对电机要求不高,不需要调速,不需要很大力矩,只要求能够正转、反转、停机就可以,所以选了用普通的玩具车马达。3.4.2 驱动电路 单片机端口的负载只能驱动若干组 TTL 电路,所以必须使用驱动电路来控制、带动小车电机。本设计中采
24、用了 L298N 双 H 桥电机驱动模块,以 L298N 作为驱动核心。一个 L298N 芯片可以同时控制两个直流电机,正好能满足小车的前进、转向和停止需求。图 3-6 L298N 电机驱动模块图 3-7 L298N 驱动模块接线图L298N 含两个 H 桥驱动电路,如图 3-8 所示,H 桥式电机驱动电路包括 4 个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。图 3-8 H 桥式驱动电路要使电机运转,必须使对角线上的一对三极管导通。例如,如图 3-9 所示,当 Q1 管和 Q4 管导通时,
25、电流就从电源正极经 Q1 从左至右穿过电机,然后再经Q4 回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管 Q1 和 Q4 导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动电机周围的箭头指示为顺时针方向。图 3-9 驱动电机顺时针转动图 3-10 所示为另一对三极管 Q2 和 Q3 导通的情况,电流将从右至左流过电机。当三极管 Q2 和 Q3 导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动。图 3-10 驱动电机逆时针转动表 3-2 L298N 逻辑功能EnAIn1In2运转状态0停止110正转101反转111刹停100停止由表 3-2 可知,
26、当 EnA 为高电平,且输入电平一高一低,则 OUT1 与 OUT2 端接的直流电机正或反转,同为低电平电机停止,同为高电平电机刹停。4 软件设计4.1 程序设计的思路和结构4.1.1 程序设计总体思路在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。为了完成上述任务,在进行软件设计时,
27、通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓模块,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。模块程序设计法的主要优点是:1单个模块比起一个完整的程序易编写及调试;2模块可以共存,一个模块可以被多个任务在不同条件下调用;3模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序前进子程序、左转子程序右转子程序、后退子程序、蜂鸣器子程序构成。4.1.2 程序流程图图 4-1 程序流程图4.2 各模块程序分析4.2.1 端口定义/*定义驱动电路管脚*/sbit INPUT1 = P10; /控制口sbit INPU
28、T2 = P11;sbit INPUT3 = P12;sbit INPUT4 = P13;/*定义循迹传感器管脚*/sbit CLP=P00;sbit SS1=P01;sbit SS2=P02;sbit SS3=P03;sbit SS4=P04;sbit SS5=P05;sbit Near=P06;定义蜂鸣器管脚sbit FMQ=P20; 4.2.2 子程序void CarGoINPUT1=1; /高电平有效 两个电机都正转INPUT2=0;INPUT3=1;INPUT4=0;void CarBackINPUT1=0; /两个电机都反转INPUT2=1;INPUT3=0;INPUT4=1;vo
29、id CarTurnLeftINPUT1=0; /左电机停止 右电机正转INPUT2=0;INPUT3=1;INPUT4=0;void CarTurnRightINPUT1=1; /右电机停止 左电机正转INPUT2=0;INPUT3=0;INPUT4=0;void CarStopINPUT1=0; /两个电机都停转INPUT2=0;INPUT3=0;INPUT4=0;蜂鸣器频率响亮子程序void Delay /定义蜂鸣器频率响亮子程序 unsigned int DelayTime=20000; /定义频率定时变量while; /频率定时循环开时return;4.2.3 主程序void mai
30、n CarGo; while if CarTurnLeft; else if CarTurnRight; else if /判断避障传感器现在状态 Delay; /延时子程序开时 FMQ=!FMQ; /蜂鸣器响亮 elseCarGo; 5 总结本次设计的智能小车,主要实现黑线循迹和障碍物检测报警的功能。在本次设计的过程中主要做了以下的工作:1充分利用互联网和图书馆强大资源库,借阅了大量的相关辅导资料,从而了解了智能小车和发展前景,以及前人研究的一些经验和技术,确定了本次设计的大体思路;2在大体思路的基础上,继续查阅大量资料,依次对各部分方案进行确定,确定各部分芯片的型号,熟悉各芯片的使用;3通
31、过 protues 等软件,对各部分的电路图进行设计;4确定小车程序流程图,对各模块进行编程;5对编写的程序进行调试,改进,必要时修改小车设计的方案;6通过 protues 仿真软件对智能小车电路进行仿真,通过仿真小车基本上能完成预计的功能;7对小车元器件进行采购;8组装,焊接,进行硬件的反复调试,完成最总的设计。本次设计,提高了我的文件检索,归纳总结的能力,让我对单片机有了更进一步的了解,进一步熟练了 word 等常用办公的使用和文字排版工作,学会了运用protues 绘制电路图,对电路进行仿真,学会了运用 keilC 对单片机进行 C 语言编程,软件调试。本次设计更锻炼了我对各专业知识的综
32、合运用能力,实际动手能力,以及发现问题、解决问题的能力。本次在设计基于 STC89C52 单片机的智能小车过程中遇到了各种曾未遇到的问题,很多次设计进度止步不前,其原因一方面是自己专业知识还不够扎实,更重要的是缺乏一定的实际设计经验,以及综合运用各方面知识处理问题的能力。因此本次设计的过程,对我来说就是一个学习、巩固、实践、提高的过程,其意义远大于本次设计本身。致 本次设计对我来说将会是一段难忘的经历,是我大学四年成果的一个检验,也为大学四年的学习过程画上了句号。我要感辅导员、各科老师、系领导以及各位同学对我提供的教育、帮助,你们!参考文献1 梁静.一种基于光电传感的路径识别智能车J.科学技术
33、与工程.2011.2 燕,志. .基于单片机控制的自主寻迹电动小车的设计J.自动化与仪器仪表.2007.3 安岩.自动循迹智能小车的设计J. 科技学院学报.2010.4 董涛,进英,.基于单片机的智能小车的设计与制作J.计算机测量与控制.2009.5高月华.基于红外光电传感器的智能车自动寻迹系统设计J.半导体光电.2009.6 LIUDa Chuan,WANG Xiao Cheng .The design and optimizing of robot vision system based on S12 MCUJ. Application of Electronic Technique. 2
34、008附录智能小车照片及总接线图附录 2 系统程序#include#define uchar unsigned char#define uint unsigned int/*定义驱动电路管脚*/sbit INPUT1 = P10; /控制口sbit INPUT2 = P11;sbit INPUT3 = P12;sbit INPUT4 = P13;/*定义循迹传感器管脚*/sbit CLP=P00;sbit SS1=P01;sbit SS2=P02;sbit SS3=P03;sbit SS4=P04;sbit SS5=P05;sbit Near=P06;/*定义蜂鸣器管脚*/sbit FMQ=P
35、20; void CarGoINPUT1=1; /高电平有效 两个电机都正转INPUT2=0;INPUT3=1;INPUT4=0;void CarBackINPUT1=0; /两个电机都反转INPUT2=1;INPUT3=0;INPUT4=1;void CarTurnLeftINPUT1=0; /左电机停止 右电机正转INPUT2=0;INPUT3=1;INPUT4=0;void CarTurnRightINPUT1=1; /右电机停止 左电机正转INPUT2=0;INPUT3=0;INPUT4=0;void CarStopINPUT1=0; /两个电机都停转INPUT2=0;INPUT3=0;INPUT4=0;void Delay /定义蜂鸣器频率响亮子程序 unsigned int DelayTime=20000; /定义频率定时变量while; /频率定时循环开时return;void main CarGo; while if CarTurnLeft; else if CarTurnRight; else if /判断避障传感器现在状态 Delay; /延时子程序开时 FMQ=!FMQ; /蜂鸣器响亮 else CarGo;
链接地址:https://www.31ppt.com/p-1131816.html