资源描述
全国大学生电子设计大赛报告智能小车设计摘要:智能小车的研究、开发和应用涉及传感技术、电气技术、电气控制技术、智能控制等学科,智能控制技术是一门跨科学的综合性技术,当代研究十分活跃,应用日益广泛的领域。智能作为现代社会的新产物,是以后的发展方向,它可以按照预先设定的模块在一个特定的环境里自动的运行,可运用于科学勘探等用途,无需人为的管理,便可以完成预期所要达到的或更高的目标。本设计采用C8051F410 单片机为控制核心,设计了一辆智能小车并对其功能进行测试,利用单片机实现小车的启停和转弯;利用超声波传感器检测道路上的障碍,实现了小车的避障功能、避免撞到障碍物、行车时间和壁障距离的数码显示三大功能。整个系统的电路结构简单,可靠性能高,测试结果均能满足个环境要求。关键词:L298N 循迹 避障 测距 测速 c8051f410Abstract: the research, development and application of intelligent car involved in sensing technology, electrical technology, electrical control technology and intelligent control discipline, intelligent control technology is a cross science comprehensive technology, the contemporary research is very active, are applied widely. Smart as a new product of modern society, is the future development direction, it can be in accordance with the pre-set module automatically run in a specific environment, can be used in scientific exploration purposes, without human management, can accomplish expected to achieve goals or higher. This design USES C8051F410 the single chip processor as the core, to design a smart car and to test its functionality, using single-chip microcomputer realize car stop and turn; Using ultrasonic sensors to detect road obstacles, the car of the ultrasonic control, to avoid hitting obstacles, driving time and mileage of the digital display the three functions. The circuit of the whole system has simple structure, reliable performance is high, the test resultsKeywords:L298 tracking obstacle avoidance velocity measurement 目 录1 引言12 方案论证与分析1 2.1 车体方案论证与分析1 2.2 微控制器的论证与分析1 2.3 电机驱动模块论证与分析1 2.4 循迹模块论证与分析2 2.5 避障测距模块论证与分析2 2.6 测速模块论证与分析3 2.7 显示模块论证与分析33 系统设计3 3.1 系统总体设计3 3.2 车体部分设计4 3.3 微控制器模块设计4 3.4 电机驱动模块设计5 3.4.1 L298N介绍5 3.4.2 电机驱动电路6 3.4.3 L298N电机驱动芯片引脚说明6 3.5循迹模块模块设计7 3.6 避障测距模块设计7 3.7 测速模块设计8 3.8 LCD显示模块设计94 软件设计9 4.1 软件调试平台9 4.2 系统软件设计11 4.2.1 循迹程序流程图11 4.2.2 避障程序流程图12 5 系统调试12 5.1系统的性能指标12 5.1.1电机驱动参数12 5.1.2 超声波测距模块13 5.2测试工具14 5.3测试过程146 设计总结157 参考文献158 附录15 8.1控制及显示原理图15 8.2控制部分PCB图16 8.3总程序171 引言 近年代,随着电子科技的迅猛发展, 人们对技术也提出了更高的要求。汽车的智能化在提高汽车的行驶安全性,操作性等方面都有巨大的优势,在一些特殊的场合下也能满足一些特殊的需要。智能小车是一个集环境感知、规划决策、自动行驶等功能于一体的综合系统, 它集中地运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。本设计的智能小车实现了实时显示速度和壁障距离,循迹控制,自动避障三大功能。2 方案论证与分析 2.1车体方案论证与分析 方案一:自己到电子市场买到所需小车组件,进行组装,价格比较便宜但实用性较差,可能不能满足制作小车的需要。需要自己制作花费精力,又不能保证在一定时间内做出,因为要考虑到要在短时间做出,所以排除此种方案。 方案二:网购小车车体,易于电路的安装和调试,外形美观,价格一般,也方便后边整改电路,能满足此次设计要求。 方案三:采用RP5履带车底盘,其比较专业,驱动能力强,扭矩大,造型美观,扩展性强,但价格昂贵。 比较三种方案,考虑到时间、精力,价格方面,方案二能满足此次制作要求。2.2 微控制器的论证与分析 微控制器是系统控制的中心部件,负责控制与协调各种传感器的监测工作。控制器的好坏直接影响到车子的整体性能,控制器的类型很多,主要有: 方案一:采用可编程逻辑器件CPLD。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展且具有各种IP核可以调用。其采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高,且从使用及经济的角度考虑,我们放弃了此方案。 方案二:采用MCS-51系列单片机。采用MCS-51系列单片机,经典的MCS-51单片机功能和速度有限;而高档的MCS-51系列衍生产品价格昂贵、冗余资源较多、使用范围较窄,价格较贵。 方案三:采用单片机C8051F410。c8051f系列兼容了51指令,片内资源丰富,单片机运算功能强,软件编程灵活,自由度大,可与常用51单片机兼容,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低,体积小,技术成熟和成本低等优点,使其在各个领域应用广泛。考虑到此次设计的难易程度、价格因素等单片机的要求就选择c8051f410这种单片机作为小车的控制核心。 综上述几种方案论证,选择方案三作为这次比赛的控制核心部件。2.3 电机驱动模块论证与分析 方案一:采用传统的功率三极管搭建驱动桥作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大,对环境要求较高,不能满足制作要求。 方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,价格贵,笨拙可靠性不高。 方案三:采用专用芯片L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良,容易买到。且由L298N结合单片机可实现对小车速度的精确控制。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。 综合考虑,我们选用方案三作为此次设计的驱动部件。2.4 循迹模块论证与分析 巡迹是指小车在白色地板上检测黑线,执行相应的动作,通常采用的方案有: 方案1:利用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。 方案2:采用颜色传感器。颜色传感器对颜色具有较高分辨率,能较准确区分各种颜色,但它易受外界光的干扰并且价格昂贵,在此处只为区分黑白色,没有必要使用。 方案3:采用红外探测法实现。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在电动小车上的接收管接收;如果遇到黑线则红外光被吸收,电动小车上的接收管接收不到红外光。单片机根据是否收到反射回来的红外光来确定黑线的位置,从而控制小车的行走路线。采用红外线发射,外面可见光对接收信号的影响较小,再用射极输出器对信号进行隔离。红外探测法常采用的元件是反射式红外线光电传感器。它的特点是尺寸小、使用方便、工作状态受温度影响小。它的外围电路简单且工作可靠。 经过比较分析,从经济性和可靠性选择方案3作为巡迹检测电路的方案。 2.5 避障测距模块论证与分析 方案一:采用激光传感器测距。能非常准确地测出小车与障碍物的距离,但是单个发射器的照射范围不能太小,而且价格昂贵、速度快,因此不使用激光管作为测距模块。 方案一:红外反射式传感器优点是检测周期短,能够较实时的对小车进行控制;缺点是前瞻距离小,处理电路复杂,检测精度低,功耗大。 方案二:采用超声波传感器。超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播,而且抗干扰能力强,不受物体表面颜色的影响等特点。超声波由发射和接受两大部分组成,除了电路,主要器件是超声换能器,其基本原理是基于压电效应。发射与接受往往使用同一个探头。超声波测距是通过发射声波,接受反射回波并计算回波时间从而得出与反射物体的距离。R=VT/2简易机器人往往应用超声波探测前方障碍物的距离,从而实现避障功能。超声波不受被测物体的透明度、颜色、电导率的影响,但不适合测量海棉或棉织物等吸音材料。而且它不仅可用于测距,还可用于避障。 考虑到经济可靠,选用第三种方案。2.6 测速模块论证与分析 方案一:采用红外传感器进行测速。但无论是反射式红外传感器还是对射式红外传感器,他们对都对外围环境要求较高,易受外部环境的影响,稳定性不高,安装困难且价格较为昂贵。 方案二:采用霍尔开关元器件A44E检测轮子上的小磁铁从而给单片机中断脉冲,达到测量速度的作用。霍尔元件具有体积小,频率响应宽度大,动态特性好,对外围电路要求简单,使用寿命长,价格低廉等特点,电源要求不高,安装也较为方便。但是它的转换率较低,温度影响大,要求转换精度高时,必须进行温度补偿。 方案三:采用光电传感器。光电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,抗干扰性较强,形式灵活多样,因此,光电式传感器在检测和控制中应用非常广泛。光电传感器是各种光电检测系统中实现光电转换的关键元件,它是把光信号(红外、可见及紫外光辐射)转变成为电信号的器件。它的优点为:检测距离长、对检测物体的限制少、响应时间短、分辨率高、可实现非接触的检测、可实现颜色判别、便于调整。 综上考虑,选用方案三,配合电机码盘进行测速。2.7 显示电路论证与分析 方案一:LED数码管显示。优点:亮度高、工作电压低、小型化、寿命长、耐冲击和性能稳定、易于查看。缺点:数码管的只能显示简单的数字,功耗大,其电路复杂,占用资源较多,显示信息少,不宜显示信息量大的特点。 方案二:采用LCD1602液晶显示器。可以显示各种英文及数字,微功耗,尺寸小,超薄轻巧,显示信息量大,字迹美观,视觉舒适,而且容易用单片机进行控制。经比较选择LCD1602液晶显示器作为显示器件。3 系统设计3.1 系统总体设计 本组智能小车的硬件主要有以C8051F410作为核心的主控器部分、自动循迹部分、显示部分、路程检测部分、障碍物检测部分、测速部分、电机驱动部分。小车硬件系统结构示意图如下:单片机控制器测速电路循迹模块壁障模块测距模块显示电路驱动电路测试模块 3.2 车体设计智能小车采用前后轮驱动,四个轮子各用一个电机驱动,通过控制四个轮子的转向来控制小车行进方向,采用四轮小车控制灵活,没有甩头也没有推头,能满足各个环境的要求。3.3 微控制器设计经上述论证,我们采用C8051F410芯片作为主控芯片,其主要完成以下任务:电机的转速及转向控制、数码管显示控制等。 根据题目的要求,我们制作了C8051F410的最小系统板,这样用起来方便、灵活可根据需求搭建任意电路,其主要包括:电源、ISP下载接口、晶振电路、复位电路。 C8051f410单片机主要有以下特征: 模拟外设:12位 ADC;两个12位电流输出DAC;两个比较器(可编程回差电压和 响应时间、可配置为唤醒或复位源、上电复位/欠压检测器、电压基准 1.5V、2.2V(可编程) 在片调试:片内调试电路提供全速、非侵入式的在系统调试(不需仿真器);支持断点、单步、观察/修改存储器和寄存器;完全的开发套件 供电电压 2.0V 5.25V:内建LDO稳压器:2.1或2.5 V;高速8051微控制器内核;流水线指令结构;70%的指令的执行时间为一个或两个系统时钟周期;速度可达50MIPS(时钟频率为50MHz时);扩展的中断系统 存储器:2304字节内部数据RAM(256+2048);32/16KB FLASH;可在系统编程,扇区大小为512字节;64字节电池后备RAM(smaRTClock) 数字外设:24个端口I/O;推挽或漏极开路,耐5.25 V电压 ;可同时使用的硬件SMBus(I2C兼容)、SPI和UART串口;4个通用16位计数器/定时器;16位可编程计数器/定时器阵列(PCA),有6个捕捉/比较模块和WDT;硬件实时时钟(smaRTClock),工作电压可低至1V,64字节电池后备RAM和后备稳压器 时钟源;内部振荡器:24.5MHz,2%精度,可支持UART操作;时钟乘法器可达50MHz;外部振荡器:晶体、RC、C、或外部时钟;smaRTClock振荡器:32KHz晶体或谐振器;可在运行中切换时钟源 32脚LQFP或28脚5x5 QFN封装 温度范围:-40C - +85C 3.4 电机驱动模块设计3.4.1 L298N介绍L298N是一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。L298N的主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作.L298内部的原理图如图1所示:3.4.2 电机驱动电路 L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。 L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。考虑到节省能耗和成本的高低,我们选用L298驱动两相步进电机。原理图如图2所示:图23.4.3 L298N电机驱动芯片引脚说明 L298N可接受标准TTL逻辑电平信号,VSS可接457 V电压。4脚VS接电源电压,VS电压范围VIH为2546 V。输出电流可达25 A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。L298N逻辑功能控制表如图3所示,外形及封装如图4所示:ENAIN1IN2运转状态0停止110正转101反转111刹停110停止 图3 L298N功能 In3,In4的逻辑控制表与上表相同。由上表可知EnA为低电平时,输入电平对电机控制不起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。图3 L298N实物图3.5 循迹模块设计 循迹是指小车在白色地板上循黑线行走通常采取的方法是红外探测法,红外探测法即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射反射光被装在小车上的接收管接收,如果遇到黑线则红外光被吸收小车上的接收管接收不到红外光 ,单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线 ,从而实现小车的循迹功能。红外探测器探测距离有限一般最大不应超过3cm。循迹功能如图所示:3.6 避障测距模块设计 超声波模块是用来测距并且避障用的,当检测到距离障碍物很近时,就给主程序一个信号,提示要转弯了,而转弯的角度则通过不断的测距来实现,当距离稳定后则不再偏转。我们没有选用现有的超声波测距模块,而是自己根据超声波的原理,利用超声波探头和一些外围电路而搭建起超声波模块。超声波测距的原理如下: 首先超声波传感器向空气中发射声脉冲, 声波遇到被测物体反射回来, 若可以测出第一个回波达到的时间与发射脉冲间的时间差t,利用,即可算得传感器与反射点间的距离s , 测量距离,若sh 时,则d s。系统中有三个超声波模块,其中每个都有接收探头与发射探头,这两个模块分别位于小车的左、右处,来进行测距以达到避障的效果。对于放射探头,我们选用的是发射频率为40KHz的一种,该类型现在应用较普遍,电路也比较简单,只需给发射端40KHz的脉冲,发射探头即不断的往外发送超声波。对于接收探头,因为接收的超声波信号很微弱而且考虑到干扰的因素,接收端有放大电路与滤波电路。当接收到超声波时,IO口即为高电平。若此IO支持外部中断,则可在MCU中引发中断。在我们的系统中,三个超声波模块接收端都有外部中断功能的IO口来确定是否检测到超声波。因此通过计算测的距离障碍物的距离然后就可以判断是否转弯。3.7测速模块设计测速模块的功能是完成当前小车速度信息采集,并输出标准脉冲信号,供单片机处理,运算出小车实时速度。我们使用的是光电传感器,光电式传感器是以光电器件作为转换元件的传感器。光电式传感器的工作原理是:首先将被测量的变化转换成光信号的变化,然后通过光电器件转换成电信号。光电式传感器一般由辐射源、光学通路和光电器件三部分组成。被测量通过对辐射源或光学通路的影响,将被测信息调制到光波上,通常改变光波的强度、相位、空间分布和频谱分布等,光电器件将光信号转化为电信号。电信号经后续电路的解调分离出被测信息,从而实现对被测量的测量。3.8 LCD显示模块设计采用市面上容易购买1602LCD,由单片机的总线模式连接。为节约电源电量并且不影响LCD的功能,LCD的背光用单片机进行控制,使LCD的背光在小车行驶的过程中不亮,因为我们不必看其显示;在其它我们需要看显示的内容的时候LCD背光亮。4 软件设计4.1 软件调试平台Keil for C51是美国Keil Software公司出品的C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil for C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil for C51开发系统各部分功能和使用。C51开发中除必要的硬件外,同样离不开软件,我们写的源程序要变为C51可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。随着C51开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件除了致力于单片机的编程开发平台外,还针对目前最流行C51开发项目出品了Keil for 51软件平台以及支持在线调试的串口烧写。从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision2)将这些部份组合在一起。如图4-1所示图4-1 Keil for 51 开发平台截图KEIL for C51 编译平台对51单片机的器件选型设置。如图4-2所示。图4-2 MCU选型设置4.2 系统软件设计4.2.1循迹程序流程图若小车偏左的时候,车轮将向右偏转;若小车偏右,车轮将向左偏转;为了识别大小弯道我们用一个长的循迹模块和一个短的循迹模块配合使用,这样更能避免小车冲出跑道,若没有偏移,小车将继续向前;若小车完全偏离黑色轨迹,小车后边的循迹传感器会自动让它停车。后边的循迹模块主要完成终点线的检测。4.2.2 避障程序流程图我们的作品用2个传感器实现蔽障,前后两个用来判断前方是否有障碍物。左右靠前的位置有两个传感器,探测距离比较近,防止左右碰壁。左边车身中间位置有一个传感器,此传感器探测距离比较远,用来判断左边是否是出口。上边还加一个超声波避障传感器,来配合红外避障。软件设计时当前面传感器检测到障碍物,左边车身中间的传感器也检测到障碍物时则向左转,否则向右转,当完成了4次转弯,即进入第三条直到,只需检测左边这个传感器,当无障碍物时,向右转,然后直走,直到前面两个传感器检测到障碍物时,向右转,然后进入正常检测,最终完成蔽障。5 系统调试5.1 系统计算与分析5.1.1 电机驱动参数计算与分析 电气时间常数:电枢电流从零开始达到稳定值的63.2%时所经历的时间。测定电气时间常数时,电动机应处于堵转状态并施加阶跃性质的驱动电压。电气时间常数工程上常常利用电枢绕组的电阻和电感求出:/ 机械时间常数:电动机从启动到转速达到空载转速的63.2%时所经历的时间。测定机械时间常数时,电动机应处于空载运行状态并施加阶跃性质的阶跃电压。机械时间常数工程上常常利用电动机转子的转动惯量和电枢电阻以及电动机反电动势系数e、转矩系数求出: * * 转速:电动机旋转的速度,工程单位为r/min,即转每分,在国际单位制中为rad/s,即弧每秒。 工作电流:在单个电机正常工作或停止的工作电流 100MA,四个电机同时工作时总电流 570MA。 直流电机参数表:5.1.2 超声波测距模块计算 参数: 使用电压:DC5V 静态电流:小于2mA 感应角度:不大于15度 探测距离:2cm-450cm距离计算公式:d=(s*0.034)/2 cm D为检测距离 S为超声波回来的时间 0.034为声速,环境温度不同声速也不相同 使用方法: 控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,可算出距离.如此不断的周期测,就可以达到移动测量的效果。5.1.3 测速模块计算 用红外对管传感器进行测速,经实际测得轮子圆周为20.5cm,电机的码盘为20个孔,在一定时间测得通过圆孔的个数然后再乘以0.025就知道小车行驶的路程。d=(C*0.025/500)*2 (cm/s) C为每500ms内的计数值 0.025是车轮的周长(20.5cm)和码盘圆孔的个数(20个)的比值 5.2 测试工具:仪器名称用途电脑调试及下载程序数字万用表测量各种电路工作情况直流稳压电源提供系统工作电压5.3 测试过程 由于智能小车属于移动性高精度实时控制领域,因此各模块必须具有精度高、传感器综合控制、智能控制等性能要求,所以测试时将整个系统分为传感器测试模块,电机测试模块,程序测试,总体测试。传感器测试:作品采用了九对红外对管用于信息检测,三只用于检测黑线,二只用于检测障碍小车,测试过程中我们用白纸黑胶带模拟测试,用其他物品模拟障碍物,调整程序来调整需要的测试范围。超声波检测参数:工作电流检测角度检测距离理论值2ma15度2450cm实际值2.85ma13度2415cm避障模块检测参数:工作电流检测角度检测距离理论值2ma35230cm实际值2.9ma30226cm循迹模块的检测距离测得为03cmPWM调速测试:通过单片机产生PWM波形来控制LN298驱动模块的使能端进行控制小车速度,中间用按键来控制小车的速度,调节到塞题要求。测距测试:用超声波来进行测量小车与障碍物的距离,声速根据温度、环境的不同而变化,在一般情况下声速是340M/S。 电机模块测试:我们通过程序,给电机下载不同的指令,观察电机是否按照设定的方试转动。 程序测试:通过与传感器模块,电机模块一起协同测试。 整体测试:当所有的模块测试没有问题后,我们协力按照大赛要求制作了跑道,通过跑道进一步进行精确测试,认真编写程序,通过分析、修改数据参数,根据环境温度及光照的变化来调节传感器灵敏度以实现设计要求。在轨道上也多次调节小车运动弯度,最终成功完成题目要求。6 设计总结经过的奋战,智能小车终于能按照设计要求在预定轨道实现了全部功能。感觉小车设计的关键点不在控制程序的算法,而在于小车的环境温度,小车最容易受到电压波动、光照、赃物等东西的影响。只要给小车的工作环境能好,在调程序这样设计起来受外界影响就小。在整个过程中,我们不仅在通力合作中体会到了团结的重要性。还将理论与实践结合了起来,培养了一定的科研能力,拓宽了知识面。展望未来,智能车技术必将在更广阔的领域广泛应用。本智能小车系统最诱人的前景就是可用于未来的智能汽车上了。当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。在设计过程中,由于电机的反复运转引起电压不稳定,导致小车未按照规定的赛道奔跑,出现乱跑现象,经过稳压芯片从而使电压恢复正常。7 参考文献1郭惠,吴迅.单片机C语言程序设计完全自学手册M.电子工业出版社,2008.10:1-200.2王东锋,王会良,董冠强. 单片机C语言应用100例M. 电子工业出版社,2009.3:145-300.3韩毅,杨天. 基于HCS12单片机的智能寻迹模型车的设计与实现J.学术期 刊,2008,29(18):1535-1955.4 王晓明. 电动机的单片机控制J. 学术期刊,2002,13(15):1322-1755.5Yamato I , et al 1 New conversion system for UPS using high fre2quency linkJ 1 IEEE PESC ,1988 :210-320.6Yamato I , et al 1 High frequency link DC/ AC converter for UPSwith a new voltage clamperJ 1IEEE PESC ,1990 :52-105.8 附录8.1 控制及显示原理图8.2 控制部分PCB图8.1 总程序#include C8051F410.h#include 410.h#include CH452.htypedef unsigned char uchar;typedef unsigned int uint ;sfr16 TMR3RL=0X92;sfr16 TMR3 =0X94;sbit Left_0 =P20; /左轮电机sbit Left_1 =P21;sbit Right_0=P22; /右轮电机sbit Right_1=P23;sbit Track_Left=P10; /左边循迹传感器sbit Track_Right=P11; /右边循迹传感器sbit Track_Middle=P12; /右边循迹传感器sbit Trig = P01; /产生脉冲引脚sbit Echo = P00; /回波引脚uchar Count;uchar Jishu; uchar outcomeH,outcomeL;uint distance_data;uchar Leiji;uint Abc;bit Stop_flag_0=0;bit Stop_flag_1=0;bit Go=1;bit succeed_flag;void Deley_Ms(uint i) unsigned intj;dofor(j=0;j!=1000;j+);while(-i);/延时20US void delay_us() char a=50; while(a-);/定时器0/void timeset(unsigned int adt) unsigned long int tt; tt=65535-(12250000/12/1000)*adt; TMR3RL=tt; TMR3 =tt; /前进/void Car_Forward() Left_0=0; Left_1=1; Right_0=0; Right_1=1; /后退/void Car_Back() Left_0=1; Left_1=0; Right_0=1; Right_1=0; /左转/void Car_Left() Left_0=1; Left_1=0; Right_0=0; Right_1=1; /右转/void Car_Right() Left_0=0; Left_1=1; Right_0=1; Right_1=0; /停止/void Car_Stop() Left_0=0; Left_1=0; Right_0=0; Right_1=0;/壁障程序/void Counterguard() uint w; Trig=1; delayus(); Trig=0; /产生一个20us的脉冲,在Trig引脚 for(w=0;w1000;w+) if(Echo=1) goto aa; /等待Echo回波引脚变高电平 goto bb; aa: succeed_flag=0; /清测量成功标志 EX0=1; /打开外部中断 TH1=0; /定时器1清零 TL1=0; /定时器1清零 TR1=1; /启动定时器1 while(TH1 6)&(distance_data5)&(distance_data=10) Abc/=10; speed=(uchar)(float)Abc*0.41); Display_Left(speed); Display_Right(uchar)distance_data); Jishu=0; Leiji=0; EX1=1; TR0=1; /定时器3中断/void T3_ISR() interrupt 14 TMR3CN&=0X7F; /清楚中断标志 Count+; if(Count=40) Count=0; EIE1 &= 0x7f; TMR3CN&=0xfb; Stop_flag_0=0; Stop_flag_1=0; /*/外部中断0,用做判断回波电平void INTO_() interrupt 0 / 外部中断是0号 outcomeH =TH1; /取出定时器的值 outcomeL =TL1; /取出定时器的值 succeed_flag=1; /至成功测量的标志 EX0=0; /关闭外部中断 /这个定时器用来测速/void Timer_0() interrupt 1 /这里可以累技求平均 TH0=0X9c; TL0=0X4f; Leiji+; if(Leiji10) Abc+=Jishu; else EX1=0; TR0=0; /这里用来测速,轮子周长20.5Cm。码盘20个/void waibu_1() interrupt 2 Jishu+; /* /定时器1中断,用做超声波测距计时void timer1() interrupt 3 / 定时器0中断是1号TH1=0;TL1=0;25
展开阅读全文