




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着我国科学技术的进步,智能化和自动化技术越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。智能小车是一个多种高薪技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,可以涉及到当今许多前沿领域的技术。本系统采用2片AVRAtmega128单片机作为智能小车的检测和控制核心。一片用在在小车上,负责控制循迹、无线和电机驱动功能;一片在控制端上,负责控制语音播报、无线发送、液晶显示和按键功能。通过控制端的液晶显示和按键输入设定模式信息,再通过无线发送给车载控制器,车载控制器根据接收到的不同无线信息,控制小车进入不同的模式,实现不同的功能。本系统中的无线传输距离,空旷地为100米左右,室内可以隔着一层楼,接收端能收到发射端发射的无线信号。关键词:单片机,传感器,智能小车AbstractAlongwiththedevelopmentofscienceandtechnology,intelligentandautomationtechnologyismoreandmorepopular,allkindsofhi-techalsowidelyusedinintelligentrobottoycarandmanufacturingfield,makeintelligentrobotmoreandmorediverse.Intelligentcarisavarietyofhigh-payingtechnologyintegrationbody,itincorporatesmechanical,electronic,sensors,computerhardware,software,artificialintelligenceandmanyothersubjectknowledge,caninvolvesmanyoftoday'scurrentareasoftechnology.ThesystemUSES2slicesofAVRAtmega128single-chipprocessorasintelligentcardetectionandcontrolcore.Ausedinonthecar,isresponsibleforthecontrolfollowtrace,obstacleavoidance,wirelessandmotordrivefunction.Ainthecontrol,beresponsibleforcontrollingspeechbroadcast,thewirelessdelivery,liquidcrystaldisplayandkeyboard.Throughthecontrolofliquidcrystaldisplay(LCD)andkeyinputinformationsetmode,againthroughwirelesssenttothecontroller,thecontrolleraccordingtothedifferentwirelessreceivedinformation,controlthecarintoadifferentpattern,therealizationofdifferentfunctions.Thissystemofwirelesstransmissiondistance,aclearingfor100metersorso,intheinterior,youcanfromafloor,thereceivercanalsoreceivethelaunchofthelaunchwirelesssignals.Keywords:single-chipprocessor,sensor,intelligence目录第1章绪论51.1选题背景和意义51.2智能小车开展概况51.2.1国外智能小车开展概况51.2.2国内智能小车开展概况61.3研究设计的目标61.4方案选择6控制器选择分析61.4.2电源模块选择分析7电机驱动模块选择分析81.4.4循迹模块选择分析9无线模块选择分析9语音模块选择分析10显示模块选择分析10按键模块选择分析111.5可行性分析11第2章系统整体设计122.1系统结构框图122.1.1车载控制器局部122.1.2控制端控制器局部13第3章系统硬件设计153.1单片机最小系统153.1.1电源电路153.1.2复位电路16时钟电路163.2电源模块173.3电机驱动模块183.4循迹模块193.5无线模块203.6语音模块223.7显示模块253.10按键模块26第4章系统软件设计274.1主程序设计27车载控制器主程序设计27控制端控制器主程序设计294.2电机驱动子程序设计314.3循迹子程序设计334.4语音子程序设计36录音子程序设计37放音子程序设计394.5无线程序设计404.5.1无线发送子程序设计404.5.2无线接收子程序设计424.6显示子程序设计434.7按键子程序设计44第5章系统调试475.1硬件调试475.2软件调试49结论50致谢51参考文献52附录一54附录二55第1章绪论选题背景和意义自第一台工业机器人诞生以来,机器人的民展已经普及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的梦想。其中智能小车可以作为机器人的典型代表。其需要实现自动导引功能和避障功能就必须要感知导引线和障碍物,实现自动识别路线,选择正确的行进路线,使用传感器感知路线并作出判断和相应的执行动作。智能小车设计与开发涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科。它可以分为三大局部:传感器检测局部,执行局部,CPU。现智能小车开展很快,从智能玩具到各行业都有实质成果,其根本可实现循迹、避障、检测贴片,寻光入库、避崖等根本功能,有向声控系统开展的趋势。智能小车开展概况1.2.1国外智能小车开展概况国外的智能小车开展的也很火,这其中要数韩国的智能小车开展最为迅速。韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下,以HCS12飞思卡尔单片机为核心构造的智能小车系统。该智能小车系统主要功能为寻迹。利用红外、电磁、CCD摄像头等设备进行,这其中有数CCD摄像头最为常见,行驶速度快,过弯灵敏,控制算法上大多采用PID算法进行闭环控制。1.2.2国内智能小车开展概况国内智能小车系统做的比拟成熟的有北京博创科技。随着全世界范围内汽车炸弹袭击事件的不断增多,因此平安检查部门对重大活动的汽车检查也逐步升级,由过去仅检查车内和车箱,升级为对包括车底的全方位检查。在全国两会安保工作中采用了北京博创科技的UP_UVSR智能小车机器人。UP_UVSR既是一款针对车底检查任务研发的机器人系统,该产品体积小、重量轻,便于携带,作业效率高;可以驶入车底进行检查,也可以固定安装与车辆通道口对过往车辆进行检查。1.3研究设计的目标设计一个多功能智能小车系统。通过控制端的单片机检测按键的输入,根据输入的不同模式,控制无线模块发送不同的命令,小车上的车载控制器接收到无线信号,然后判断接收到的无线信号,来控制小车进入不同的模式,控制端的单片机通过LCD和语音模块进行参数信息的显示和播报。1.4方案选择控制器选择分析控制器主要用于各个传感器信号的接收和识别、控制小车的电机的动作,是整个智能车系统的心脏,考虑到需要实现多个功能的要求及各个模块引脚的数目,列出以下方案,对其分析、论证、选择。方案一:采用ATMEL公司的AT89S52。AT89S52单片机支持在线编程,易于操作,价格廉价,技术成熟,应用广泛,但是功能单一,如果系统电机驱动需要增加硬件,软件实现较为复杂;另外AT89S52单片机引脚数较少,达不到各个模块端口的要求。方案二:采用ATMEL公司的ATmega128。ATmega128是一款基于AVR内核,采用RISC结构,高性能,低功耗CMOS的8位单片机。32个通用工作存放器,53个通用I/O口,实时时钟计数器〔RTC〕,4个带有比拟模式灵活的定时器/计数器,2个可编程的USART接口,1个8位面向字节的TWI(IIC)总线接口,8通道单端或差分输入的10位ADC〔其中一个差分通道为增益可调的〕,可编程带内部振荡器的看门狗定时器,一个SPI接口,一个兼容IEEE1149.1标准的JTAG接口〔用于在线仿真调试和程序下载〕,6种可通过软件选择的节电模式。两个具有预分频器、比拟功能和捕捉功能的16位定时器/计数器。两路8位PWM。6路分辨率可编程〔2到16位〕的PWM。方案三:采用更加高端的处理器S3C2410。S3C2410是一款ARM内核的处理器,虽然具备了AVR的资源,但是根据本设计的实际情况,本钱比拟高,编程难度较大。综合以上三种方案,考虑到系统的可行性,及功耗,性能,硬软件的本钱,我选择方案二。电源模块选择分析方案一:采用传统的7805三端稳压电路,小车锂电池(7.4V)经过7805稳压后供应小车电机驱动电路和单片机、各传感器用电。由于小车电机启动瞬间需要消耗大量电流,长时间行使后,7805芯片会有明显的发烫现象,而且效率也很低,电池充满一次电后,小车行驶没多久,就得再次充电。方案二:采用LM2596开关型稳压芯片,配合电感和电容,一起搭配构成整体的电源电路。效率更高,性能也更加稳定。综合以上两种方案,考虑到系统的性能和稳定性方面,选择方案二。1.4.3电机驱动模块选择分析电机的驱动电路主要通过电机的正转和反转实现小车的前后或者左右方向的行驶。对于电机驱动模块有下面的几种方案。方案一:使用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,本钱低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大,对于小车的长时间运行不利。方案二:采用继电器对电机的开或关进行控制,通过开关的切换对小车的速度进行调整。此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案三:采用专用电机驱动芯片L298N,实现框图如图1-1所示。该芯片集成度高,占用空间小,主要应用于电机调速场合。L298N是恒压恒流双H桥集成电机芯片,可同时控制两个电机,且输出电流可到达2A。L298N的数据口分别与单片机的I/O口相连,作为调制信号。这样精度高并且稳定,可行性好,而且通过编程能实现人机别离,利于调试。综合以上三种方案,考虑到AVR单片机自带有PWM功能,能实现直流减速电机精准控制,选择方案三。1.4.4循迹模块选择分析循迹模块确保了小车在黑色边界线的区域内行驶。考虑到边界线是黑色的,可以考虑利用传感器识别赛车场地黑白两种不同状态。对传感器的选择有以下方案。方案一:采用热探测器。热探测器是利用所接收到的红外辐射后,会引起温度的变化,温度的变化引起电信号不同的输出,且输出的电信号与温度的变化成比例,当红外线被黑色线吸收时,温度会降低,电压变低,而红外线没有被吸收时,电压不变,单片机可以根据电压的变化来判断小车显示的情况。由于温度受环境的影响很大,当温度变高时,即使黑色线吸收了红外线,但是也会有很高的电压,导致单片机判断出错。方案二:采用红外对射管。红外发射接收管测量距离近,但反响灵敏、准确。由于测量的高度离场地仅1cm,距离很近,符合其特点。相比热探测器而言,其体积较小,价格低,安装较容易。综合以上两种方案,考虑到系统的稳定性和安装的简便性,选择方案二。1.4.5无线模块选择分析无线模块是用来进行控制端和小车之间的通信,控制小车进入不同的功能模式。方案一:采用目前流行的WiFi无线模式。WiFi覆盖面广,传输里远,但是其硬件开销本钱太高,需要很深厚的理论知识根底。短时间内实现有一定的难度。方案二:采用TI的CC1101无线传输方案。有效传输距离为100米,工作频率为387~464MHZ。主从一体,既可以作为发送端,也可以作为接收端,软件控制灵活、简单。此模块高灵敏度〔1.2kbps下-110dDm,0.1%数据包误码率〕、内置硬件CRC检错和点对多点通信地址控制、较低的电流消耗〔RX中,15.6mA,2.4kbps,433MHz、可编程控制的输出功率,最大输出功率+10dBm、无线唤醒功能,支持低功率电磁波激活功能,无线唤醒低功耗睡眠状态的设备等优点。综合以上两种方案,考虑到系统开发本钱和开发时间,选择方案二。1.4.6语音模块选择分析语音模块是用来进行在小车进入不同的功能模式和小车转向时,进行语音播报,使整个系统更加人性化些。方案一:采用555定时器,发出特定频率的声波。缺点:只能发出一定频率的波,难以发出人类的声音。方案二:采用ISD1760专业语音录放芯片。ISD1760可录、放音十万次,存储内容可以断电保存一百年。两种录放模式:独立按键录放模式和SPI总线操作录放模式。可处理多达255段信息。录音数据存储在芯片的FLASH内,没有经过任何压缩,所以有较好的音质和断电存储。多种采样频率对应多种录放时间。。静态电流:0.5-1μA。工作电流:20mA综合以上两种方案,考虑到系统的功能要求和控制的灵活性,选择方案二。1.4.7显示模块选择分析方案一:采用LCD1602液晶进行小车参数的信息显示。1602为2行16列式的液晶,可以显示一些数字和英文字母以及一些简单的图案,但是1602内部无字库,要想显示汉字就得自己编写汉字码了,软件开发繁琐。方案二:采用LCD12864字符式液晶。由于12864液晶内部带字库,且能够显示的信息也足够多,LCD1284和LCD1602二者在时序控制上差异不大,软件一直很容易。综合以上两种方案,考虑到系统的要求,选择方案二。1.4.8按键模块选择分析方案一:采用4*4矩阵键盘,共计需要16个独立按键,占用单片机8个IO端口。方案二:采用独立的按键,结合本系统,只需要6个独立按键即可满足要求,单片机只要检测对应的引脚电平几个判断那一按键被按下。综合以上两种方案,考虑到硬件的开发本钱和软件程序上的简便性,选择方案二。1.5可行性分析采用ATmega128A单片机作为控制核心,其标准工作频率为8MHz,可以为本系统提供高速的计算能力和实时控制能力。学校的硬件根底实验室可以提供焊接和调试场地,调试设备只需要电烙铁、万用表、示波器等常用设备即可。对大学开设的《C语言编程》、《单片机技术》、《模拟电子技术》、《Protel应用技术》等相关课程的学习,可以为该系统的设计与实现提供理论知识。第2章系统整体设计2.1系统结构框图本系统主要分为两个大模块,车载控制器模块和控制端的控制器模块。车载控制器局部车载控制器模块如图2-1所示。车车载控制器电机驱动电机驱动模块避障避障模块电源电源模块无线无线模块图2-1车载控制器模块结构框图从图2-1中可以看出,车载局部的控制器模块主要包括电源模块、电机驱动模块、循迹模块、避障模块、无线模块。各个模块的功能介绍如下。1.电源模块:采用7.4V的锂电池,经过降压电路,降到5V后供应整个系统。2.电机驱动模块:使用两片L298N驱动小车的电机。利用单片机的PWM功能,控制驱动芯片,驱动芯片再控制电机,实现小车的行驶转向功能。3.循迹模块:采用7对红外对射管作为单片机输入,来检测黑色循迹线路。4.无线模块:车载控制器控制无线模块,接收控制端的无线信号,然后根据所接收到的无线信号,车载控制器控制小车执行不同的功能。2.1.2控制端控制器局部车载控制器模块如图2-2所示。控控制端控制器显示模块无线模块语音模块电源模块按键模块图2-2控制端控制器结构框图从图2-2中可以看出,车载控制器主要包括电源模块、无线模块、显示模块、按键模块、语音模块。各个模块的功能如下。1.电源模块利用4节5号干电池经过7805稳压到5V后供应控制端的系统使用。2.语音模块:使用ISD1760芯片存储声音信息,外接扬声器,当按键设定小车进入不同的功能模式时,实现声音播报功能。3.按键电路:共使用6个独立按键,4个方向键,一个菜单键,一个确定键,负责设定小车进入不同的功能模式。4:显示模块:使用LCD12864,当按键设定小车的功能模式时,以文字的形式显示模式设定。在进入无线模式时,负责显示小车的操纵方向。第3章系统硬件设计本章从硬件系统上设计单片机最小系统模块、电源模块、电机驱动模块、循迹模块、无线模块、语音模块、显示模块、按键模块。3.1单片机最小系统电源电路电源电路把直流5V输入给降压芯片LM117,然后降压到3.3V后供应单片机和其他3.3V模块使用。电源电路如图3-1所示。图3-1电源电路3.1.2复位电路单片机的复位方式有上电自总复位和手工复位两种。本设计中复位电路采用的是手工复位电路,如图3-2所示。图3-2复位电路单片机的REST引脚为主机提供一个外部复位信号输入端口。复位信号是低电平有效,低电平有效的持续时间大于最小脉冲宽度(1.5us)时即触发复位过程。复位后,单片机内各部件都恢复到初始状态,单片机从ROM地址的0000H开始执行程序。3.1.3时钟电路时钟电路如图3-3所示。〔空白处补上〕图3-3时钟电路单片机的工作时间基准是由时钟电路提供的,在单片机的XTAL1和XTAL2的两个引脚间,接入一个8MHz晶振及两个22pF电容即构成了单片机最小系统的时钟电路。时钟电路中的器件可以从ATmega128的芯片资料上确定,也可以参考一些常见的电路的参数。3.2电源模块电源模块采用的是LM2596开关型稳压芯片。7.4V的锂电池经过LM2596稳压到5V后供应整个系统。电源模块电路图如图3-4所示。〔空白处补上〕图3-4电源模块电路图锂电池电压从J1输入给LM2596降压电路,5V从J2输出,供应整个系统。R2为可调电阻,可以调节输出电压。D1为SS34肖特基二极管,具有开关速度快,正向压降低的特点,在电路中配合L1电感,构成回路,起到续流的作用。3.3电机驱动模块电机驱动模块采用了2片L298N芯片,进行对小车的4个电机的控制。其中一片L298N电机驱动电路图如图3-5所示。〔空白处补上〕图3-5电机驱动模块电路图图中QIN1~QIN4为芯片输入端,接单片机PD4,PD5,PD6,PD7口,O1~O4为芯片输出端,接电机。JDY1和JDJY2为电机线插座。PWA和PWMB为PWM输入脚,接车载控制器的PB5(OC1A)和PB6(OC1B)PWM输出引脚。D2~D9为1N4007二极管,在电路中起到保护L98N芯片的作用,防止电机在正反转的瞬间,产生的电动势击穿L298N芯片。3.4循迹模块循迹模块采用了共计7对红外对射管,7路循迹接车载控制器的PA0~PA7口。其中一对红外对射管的电路如图3-6所示。〔空白处补上〕图3-6循迹模块电路图红外对射管为DT2和DR2。LM339N为比拟器,RW1为10K的可调电阻。当DR2接收到DT2发射的红外光时导通,此时339的反相输入端为逻辑0,正向输入端VREF电平高于反相输入端电平,根据比拟器的特性,比拟器输出端为高电平,车载控制器的PA1口也为高电平。当DR2未接收到红外光是截止,此时339的反相输入端为高电平且高于正向输入端VREF的电压值,比拟器输出端为低电平,车载控制器的PA1口也为低电平。3.5无线模块无线模块采用从网上购置的CC1101模块,无线模块实物图如图3-7所示。图3-7无线模块实物图CC1101工作电压为1.8V~3.6V,最高不超过3.8V,本系统无线模块工作电压供应的是3.3V。车载控制器通过IO模拟SPI串行总线的方式和无线模块进行相连接。无线模块和车载控制器的连接图如图3-8所示。车载控制器ATmega128A的PB0接CC1101的片选引脚/SS,控制CC1101是否被选通;车载控制器ATmega128A的PB1接CC1101的串行时钟输入脚SCLK,用于同步MOSI和MISO的数据传输;车载控制器ATmega128A的PB2接CC1101的串行数据输入脚MOSI,CC1101从该引脚读入发送/接收命令字;车载控制器ATmega128A的PB3接CC1101的串行数据输出脚MISO,车载控制器从该引脚接收来自无线模块传来的信号。无SS线SCLK模MISO块MOSIPB0车PB1载PB2控PB3制器图3-8无线模块和车载控制器的连接图3.6语音模块语音模块是本系统中的重要功能模块。当按键设定小车进入不同的功能模式时,语音模块能够播报相应的模式信息,防止设定进入错误的模式。语音模块实物图如图3-9所示。图中MIC为录音输入麦克,按键也可实现录音和放音的操作。〔空白处补上〕独立按键录放音外接MIC接口独立按键录放音外接MIC接口外接喇叭接口图3-9语音模块实物图语音模块和控制端的控制器连接图如图3-10所示。ISD1760与ATmega128A接口为SPI串行总线接口,单片机通过片选线SS(SS=0时允许ISD1760工作)、串行数据输入MISO、串行数据输出MOSI和串行时钟SCLK和ISD1760进行连接。单片机BATmega128A的PA3接ISD的片选引脚/SS,控制ISD1760是否被选通;ATmega128A的PA2接ISD的串行时钟输入脚SCLK,用于同步MOSI和MISO的数据传输;ATmega128A的PA1接ISD的串行数据输入脚MOSI,ISD从该引脚读入录、放音的地址;Tmega128A的PA0接ISD的串行数据输出脚MISO,单片机B从该引脚接收来自语音芯片传来的信号。〔空白处补上〕语SS音SCLK模MISO块MOSIPA3车PA2载PA1控PA0制器图3-10语音模块和车载控制器的连接图3.7显示模块显示模块的硬件原理图如图3-11所示。VSS、LED_K接地;VDD、/RST接+5V电源。液晶数据线DB0~DB7连接AVR128的PC口。RS接单片机PE2,当为高电平时,表示DB0~DB7为显示数据;为低电平时,表示DB0~DB7为显示指令数据。R/W接单片机PE3口,使能信号E接单片机PE4口,R/W为高电平,E为高电平,数据被读到DB0~DB7;R/W为低电平,E从高电平转换到低电平,DB0~DB7被写到液晶内部的DDRAM里。〔空白处补上〕图3-11显示模块电路图3.10按键模块按键模块电路图如图3-12所示。图3-12按键模块电路图6个按键作为输入方式接入控制器端控制器的PD0~PD5IO口。当有按键按下时,对应的端口电平变为低电平,当按键抬起时,对应的电平变为高电平。K1~K4分别为Up、Down、Left、Right键,当小车进入无线遥控模式时,负责小车的前进、后退、左转和右转功能。K5为菜单键,负责小车进入何种模式菜单的设定显示。当K5按下时,K1~K3分别对应无线模式、循迹模式和避障模式。K6为确定键,当K5按下,K1~K3设定某种模式后,按下K6,然后通过无线模块把模式字码发送给车载控制器。第4章系统软件设计系统的软件设计采用C语言,对单片机进行编程实现各项功能。程序是在WindowsXP环境下采用CodeVisionAVRCCompliler软件编译的。4.1主程序设计本系统主要分为两个主程序,即车载控制器上的主程序和控制端控制器的主程序。车载控制器主程序设计主程序采用模块化的思想设计,车载控制器的主程序流程图如图4-1所示。从图4-1中可以看出,车载空控制器首先进行对电机模块、循迹模块和无线模块的初始化,初始化主要包括各个模块和控制器相连接的IO端口的输入/输出初始化,以及一些功能存放器的初始化。初始化完成后,程序进入while循环,开始判断无线接收到的数据,如果无线接收到的数据是循迹模式字码(0xa0),那么进入循迹子程序,小车开始循迹;如果无线接收到的数据是无线遥控模式字码(0xa1),那么进入无线遥控模式,开始小车的无线遥控行驶功能。如果没有接收到任何模式字码或者接收到的不是这三种模式字码的任意一个,那么小车停止。循迹循迹开始电机、循迹、无线初始化扫描无线接收数据遥控停止YNNN循迹子程序无线子程序YY停止程序结束图4-1车载控制器主程序流程图4.1.2控制端控制器主程序设计控制端控制器的主程序流程图如图4-2所示。任意按键任意按键按下开始按键、液晶、语音无线初始化清屏显示进入模式设定界面结束YN初始界面显示等待扫描是否有按键按下YN执行相应的按键处理程序图4-2控制端控制器主程序流程图从图4-2中可以看出,控制端空控制器首先进行对按键模块、液晶模块、语音模块和无线模块的初始化。初始化主要包括各个模块和控制器相连接的IO端口的输入/输出初始化,以及一些功能存放器的初始化。初始化完成后,显示一初始界面信息,然后判断是否有任意按键按下,如有任意按键按下,那么清屏显示信息,显示模式设定信息,然后主程序开始开始处理按键程序。4.2电机驱动子程序设计根据电机驱动芯片L298的文档资料,IN1〔5〕、IN2〔7〕、IN3〔10〕、IN4〔12〕分别对应OUT1〔2〕、OUT2〔3〕、OUT3〔13〕、OUT4〔14〕,即输入上下电平对应,〔例如IN1为高那么OUT1为高〕,当然这要是建立在使能端满足的情况下才可以;ENA〔6〕、ENB〔11〕为使能端,ENA控制OUT1、OUT2,ENB控制OUT3、OUT4,高电平有效,即在低电平情况下,无论输入为何信号,输出都为低电平。现以IN1、IN2、OUT1、OUT2为例控制电机的转向。详见表4-1。表4-1电机转动状态真值表IN1IN2OUT1OUT2状态1111停止1010转动0101转动0000停止电机驱动子程序的流程图如图4-3所示。前进?前进?结束开始电机模块初始化后退?左转?右转?PWM设定in1=1int2=0in3=1int4=00停止?NNNNNYYYYYPWM设定in1=0int2=1in3=0int4=10PWM设定in1=0int2=1in3=1int4=00PWM设定in1=1int2=0in3=0int4=10PWM清零in1=0int2=0in3=0int4=00图4-3电机驱动子程序流程图从图4-3中可以看出,电机驱子动程序首先要对电机模块初始化,初始化主要包括电机驱动芯片的输入端口PORTD.4~PORTD.7的端口输出方向初始化,PWM输出通道PORTB.5和PORTB.6的输出方向初始化,定时器1的PWM输出频率及PWM计数器顶端值的初始化。然后进入主程序,开始判断各个标志位。如果是前进标志,那么调用前进函数,先设定PWM占空比,然后令电机驱动芯片的输入端in1=1,in2=0(左轮正转),in3=1,in4=0(右轮正转),小车即向前行驶;如果是左转标志,那么调用左转函数,先设定PWM占空比,然后令电机驱动芯片的输入端in1=0,in2=1(左轮反转),in3=1,in4=0(右轮正转),小车即开始左转。其他的后退、右转和停止函数和前面所讲类似,在此不再赘述。4.3循迹子程序设计本系统边界检测模块采用的是红外对射模块。在小车的正前方位置安装了7支红外对射管,这些红外对射管是用来检测和探知黑色循迹道路的。小车循迹是通过7对红外对射管来检测的,表4-2列出了小车的各个状态:表4-2红外对射管状态真值表传感器编号小车状态Sig1Sig2Sig3Sig4Sig5Sig6Sig7轻微左偏0111111严重左偏0011111轻微左偏1011111轻微左偏1001111轻微左偏1101111轻微左偏1100111中间位置1110111具体程序可根据循迹流程图4-4所示进行程序编写。从图4-4中可以看出,循迹子程序首先要对循迹模块初始化。初始化主要包括对循迹模块和车载控制器的接口PORTA.0~PORTA.6的端口输入方向初始化。初始化完毕后,主程序开始判断循迹模块的中间一个传感器Sig4的输出状态是否为0(低电平),如果Sig4为0,那么说明小车此时处于黑色循迹线路的中间位置,车载控制器调用小车直走函数,控制小车直走即可;如果Sig4不为0,那么程序进对循迹模块的左边的传感器Sig1的状态进行判断。如果Sig1的输出状态为0(低电平),那么说明小车车身现在处于黑线的右边位置,车载控制器需调用小车左转函数。如果Sig1的输出状态不为0,那么进入下一个传感器的输出状态判断。如果7个传感器的输出状态都不为0,车载控制器那么控制小车直走。开始开始循迹初始化小车直走Sig4=0NSig1=0Sig7=0Sig2=0Sig5=0Sig3=0Sig6=0小车左拐小车右拐小车左拐小车右拐小车左拐小车右拐NNNNNNYYYYYYY小车直拐结束图4-4循迹子程序流程图4.4语音子程序设计控制端的控制器通过SPI总线的方式来控制语音模块的录放音操作。SPI的英文名称为SerialPeripheralInterface。串行外设接口SPI是由Freescale公司〔原Motoroal公司半导体部〕提出的一种采用串行同步方式的3线或4线通讯接口,使用信号有使能信号〔SS〕、同步时钟〔SCK〕、同步数据输入和输出〔MOSI、MISO〕。在SPI模式下,对芯片进行更多功能操作。如对任意存储地址进行录放,对模拟通道配置存放器进行读写等。通信协议MOSI的数据在SCLK的上升沿进入录音芯片,MISO的数据在SCLK的下降沿进入主控芯片。8位为一字节,先发低位。4.4.1录音子程序设计ISD录音子程序流程图如图4-5所示。开始开始读取状态存放器芯片准备就绪设定录音模式,开始录音录音语音初始化结束地址录音完成下电YNNY图4-5语音录音子程序流程图从图4-5中可以看出,ISD录音子程序首先要对语音模块进行初始化,包括语音模块和单片机相连接的IO口PORTA.0~PORTA.3的输入输出方向初始化、语音模块的复位、去除语音模块内部的中断。初始化完成后,开始读取状态存放器,如果语音芯片准备就绪,那么发送录音模式指令,从起始地址开始录音,遇到结束地址后,结束录音,单片机发送下电指令给语音模块。如果语音芯片没有准备继续,那么控制器一直读取语音芯片内部的状态。4.4.2放音子程序设计开始开始读取状态存放器芯片准备就绪进入放音模式,开始放音语音初始化结束地址放音完成下电YNNY图4-6语音放音子程序流程图从图4-6中可以看出,ISD放音子程序首先要对语音模块进行初始化,包括语音模块和单片机相连接的IO口PORTA.0~PORTA.3的输入输出方向初始化、语音模块的复位、去除语音模块内部的中断。初始化完成后,开始读取状态存放器,如果语音芯片准备就绪,那么发送放音模式指令,从起始地址开始放音,遇到结束地址后,结束放音,单片机发送下电指令给语音模块。如果语音芯片没有准备继续,那么控制器一直读取语音芯片内部的状态。4.5无线程序设计4.5.1无线发送子程序设计无线发送子程序流程图如图4-7所示。从图4-7中可以看出,无线发送子程序首先对无线模块CC1101进行初始化,包括无线模块和控制端控制器接口的PORTB.0~PORTB.3的端口输入输出方式初始化、SPI状态初始化、无线模块上电复位初始化、配置CC1101内部各存放器、无线模块发射功率设置初始化。初始化完成后,设定发送字节长度,然后写入要发送的数据,进入发送模式发送数据,然后检查发送标志位,看是否发送完成,如果发送完成,那么清发送缓冲区。如果没有发送完成,那么再开始发送数据。开始开始CC1101初始化发送字节长度设置写入要发送的数据进入发送模式发送完成清发送缓冲区NY结束图4-7无线发送子程序流程图4.5.2无线接收子程序设计无线接收子程序流程图如图4-8所示。开始开始CC1101初始化接收字节长度设置进入接收模式接的字节数不为0接收数据N结束Y图4-8无线接收子程序流程图从图4-8中可以看出,无线发送子程序首先对无线模块CC1101进行初始化,包括无线模块和控制端控制器接口的PORTB.0~PORTB.3的端口输入输出方式初始化、SPI状态初始化、无线模块上电复位初始化、配置CC1101内部各存放器、无线模块发射功率设置初始化。初始化完成后,设定接收字节长度,然后进入接收模式,如果接收的字节为0,那么一直在接收模式下。如果接收的字节数不为0,那么开始接收数据,接收完成活,清接收缓冲区。4.6显示子程序设计显示子程序流程图如图4-9所示。开始开始液晶初始化显示初始界面是否有按键按下显示模式设定界面N结束Y等待按键按下图4-9显示子程序流程图从图4-10可以看出,液晶显示子程序首先要对液晶模块进行初始化,包括液晶控制端口、液晶数据端口和控制器相连接的IO口PE2~PE6、PC口的端口输入输出方向初始化。初始化完毕后,液晶先显示初始界面信息,这时如果有任意的一个按键按下,那么液晶清楚界面信息,然后显示模式设定信息,按键输入相应模式。如果没有按键按下,那么液晶一直显示初始界面信息。4.7按键子程序设计按键子程序如图4-10所示。从图4-10可以看出,按键显示子程序首先要按键模块进行初始化,对按键和控制端的控制器的接口PD0~PD5端口输入/输出方向初始化。初始化完毕后,开始处理按键程序,判断有无按键按下,并执行相应的按键处理程序。开始开始按键初始化任意按键按下去除当前显示内容,显示模式选择界面NK1按下显示无线模式被选中图案K2按下?显示循迹模式被选中图案K6按下?无线发送设定的模式字码K5按下?结束显示设定模式界面YYNYN图4-10按键子程序流程图第5章系统调试本系统经过总体设计,完成了硬件开发和软件开发。通过硬件和软件的相互配合,使得整个系统正常运行。但是一个工程工程或者一个系统的最终开发成功,期间必然会碰到好多错误,例如硬件焊接上的错误,软件编程上的错误等,这就需要通过调试来发现错误并及时的改正错误。系统调试分为硬件调试和软件调试两个局部。5.1硬件调试硬件调试用到的工具是示波器和万用表。车载局部的硬件实物图和控制端的硬件实物图分别如图5-1和5-2所示。图5-1车载硬件实物图图5-2控制端硬件实物图硬件调试应从以下4个步骤开始:1.查看线路根据硬件设计原理图,仔细检查各线路焊接是否正确,有误虚焊或者短路问题。2.检查板上各元器件检查各个芯片、电阻有无焊接正确,有无芯片焊反等情况出现。3.检查电源和地电源和地是一个系统中必不可少的组成局部,通电之前,首先要将万用表开关调到测试二极管挡位,然后检查电源和地之间有误短路。检查各个模块的电源和地是否连接正常。4.上电检查在保证电源和地的电路没有问题的情况下,接通电源,检查各个模块是否正常,有误发热、发烫现象发生。必要时,可以用万用表测量系统电路中的电流。如果测量电流很大,那么说明系统电路中有短路或者故障,此时应立即断开电源,然后仔细检查电路。5.系统整体检查上电后,检查系统中各个模块的电压是否正常,单片机相应的引脚输入输出电平是否正常等。5.2软件调试对于本系统而言,软件程序时序图要求太多,所以软件程序的调试显得相当的烦琐。整个程序是使用C语言。软件调试分为以下2个步骤:〔1〕各个模块程序的调试 在本系统设计中采用CodeVisionAVR软件对程序进行编译和修改。利用AVRStudio4仿真软件和JTAG工具对程序进行仿真调试,检查各存放器内值是否正常,堆栈地址是否溢出等。 2.整体程序调试:各个模块程序调试完毕后,需要把各个模块和主程序连接起来,进行系统的整体调试,看看是否能实现系统的预期功能。在此阶段出现的问题可以采取在出现问题的前后点亮LED灯的方式,来确定是哪局部出现的问题。结论本设计实现了多功能智能小车系统的功能。当按键输入设定好的模式时,进行语音提示文字显示同步发出,然后经过无线传输把模式字码发送给车载控制器端,然后车载控制器根据接收到的模式字码,控制小车,实现循迹、无线遥控功能。如果没有收到无线信号或者收到的无线信号是停止模式字码,那么车载控制器控制小车处于停止等待状态,智能小车系统主要应用与环境监控和检测、车体环境的检查、军用上的排爆排雷等。是一个涉及多领域、多学科的工程。本系统的特点是,采用无线传输的模式,通过控制端控制车载控制器,继而通过车载控制器控制小车,防止了人和车体的直接接触,增加了控制的灵活性,突破了空间的限制。但本系统也有局限性,由于采用的是无线传输的方式,任何无线设备,其稳定性和传输距离上都有一定的限制,本无线设备有效传输距离在空旷地带为100米左右,此外,随着距离的增加,在系统的实时性控制方面,也会有一定程度的缓慢现象出现。在毕业设计过程中,稳固了在大学4年内学过的知识,尤其是单片机和模拟电子方面的知识,同时通过这次毕设提高了单片机编程的能力,尤其是获得的软件调试经验,同时加强了我的实际编程能力,同时也让自己更加的知道了自己知识领域里的缺乏和缺陷。由于时间太仓促,经验缺乏,理论方面也相应的存在缺乏,加上条件有限,仍存在着一些设计方面的问题,个人技能也有待提高。理论知识还要稳固加强。致谢本课题在选题及研究过程中得到冯老师的悉心指导。冯老师屡次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。冯老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,虽历时半年,却给以终生受益无穷之道。对冯老师的感谢之情是无法用言语表达的。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!参考文献[1]张毅刚,彭喜元,姜守达,乔立岩编著《新编MCS-51单片机应用设计〔第3版〕》,哈尔滨大业大学出版社,2009.8[2]康华光,陈大钦,张林编著《电子技术根底》——模拟局部(第五版),2005[3]黄开胜,卓晴,邵贝贝编著《学做智能车挑战飞思卡尔杯》,北京:北京航空航天大学出版社,2007[4]董涛,刘进英,蒋苏编著《基于单片机的智能小车的设计与制作》,2009,17(2)[5]陈迎,韩丽娜编著《智能小车系统的设计》,2011,30(9)[6]李磊,曹生炜编著《智能小车避障技术的实现》,2011,44(6)[7]朱向庆,陈志雄编著《一种语音控制的自主寻迹和避障智能小车设计》,2011,19(7)[8]董宗祥,石红瑞,杨杰编著《嵌入式智能小车测控系统的设计与实现》,2010,18(2)[9]谢自美.《电子线路设计、实验、测试〔第三版〕》,武汉:华中科技大学,2006[10]谢维成,杨加国.《单片机原理与应用及C51程序设计》,清华大学出版社,2006[11]谭浩强.《C程序设计〔第三版〕》.北京:清华大学出版社,2005[12]S.L.Loyka.ASimpleFormulafortheGroundResistanceCalculation.IEEETrans.OnElectromagneticCompatibility,1999,41(2):152-154.[13]Jullian,E,Electromagneticradiation.RBM-RevueEuropeennedetechnologieBiomedicale,Vol.20NO.4.June,1998.12-23[14]MocrochipTechnologyInc..Microchip2006ProductSelectorGuide.2006.(40)[15]W.HaroldParady,J.HowardTurnered.ElectricMotors.Georgia:theamericanassociationForvocationalinstructionalmaterials,1978.附录一附录二电机驱动头文件和C文件代码#ifndef_motor_h_#define_motor_h_#defineM_Forward0//前#defineM_Back1//后#defineM_Left2//左#defineM_Right3//右#defineM_Stop4//停#definePWM_TOP4000//1KHZ#definePWMA_LEFTPORTB.5#definePWMB_RIGHTPORTB.6#defineMotor_Left_1PORTD.4#defineMotor_Left_2PORTD.5#defineMotor_Right_1PORTD.6#defineMotor_Right_2PORTD.7externvoidMotor_Init();//电机初始化externvoidMotor(unsignedcharfx,unsignedintpwm_left,unsignedintpwm_right,unsignedinttime);//电机控制函数#endif#include<mega128.h>#include<delay.h>#include"motor.h"//包含电机头文件voidMotor_Init()//电机初始化{DDRD|=0XF0;//电机接口PD4567PORTD|=0XF0;//设置为输出方向DDRB|=0X60;//通道1B,1A翻开,端口PB5,PB6设置:输出PORTB|=0X60;//PWM的频率为400HzTCCR1A|=0XA0;//通道1A,1B翻开,升序计数清零,降序计数置位,TCCR1B|=0X11;//8M晶振,无分频,ICR1H=PWM_TOP>>8;//ICR1L=PWM_TOP;//4000}voidMotor(unsignedcharfx,unsignedintpwm_left,unsignedintpwm_right,unsignedinttime){OCR1BH=(PWM_TOP/100*pwm_left)>>8;;OCR1BL=(PWM_TOP/100*pwm_left);OCR1AH=(PWM_TOP/100*pwm_right)>>8;OCR1AL=(PWM_TOP/100*pwm_right);switch(fx){caseM_Forward:Motor_Left_1=1;//左轮正转Motor_Left_2=0;Motor_Right_1=1;Motor_Right_2=0;//
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代理公司年会策划方案
- 代表联组活动方案
- 代购采购活动方案
- 以案施训活动方案
- 仪器知识活动方案
- 价值澄清法活动方案
- 企业公益评选活动方案
- 企业中秋诵读活动方案
- 企业健身推广活动方案
- 企业公司生日策划方案
- 2024年乌鲁木齐县国有资产投资有限责任公司招聘笔试冲刺题(带答案解析)
- 2024-2030年中国机器人关节模组行业市场竞争态势及前景战略研判报告
- NB∕T 47020~47027-2012 压力容器法兰
- 2024年江西南昌市留置看护队员招聘笔试参考题库附带答案详解
- 屋顶光伏发电项目EPC工程总承包施工管理组织机构
- 《新概念英语第二册》电子书、单词、笔记、练习册(附答案)汇编
- 酒店升级改造方案
- 离婚协议书完整版本
- 钢筋焊接及验收标准课件
- 环境绿化施工
- 陪诊服务的营销策略分析报告
评论
0/150
提交评论