智能小车毕业设计分析解析.docx
《智能小车毕业设计分析解析.docx》由会员分享,可在线阅读,更多相关《智能小车毕业设计分析解析.docx(36页珍藏版)》请在冰豆网上搜索。
智能小车毕业设计分析解析
摘要
随着我国科学技术的进步,智能化和自动化技术越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。
智能小车是一个多种高薪技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,可以涉及到当今许多前沿领域的技术。
本系统采用2片AVRAtmega128单片机作为智能小车的检测和控制核心。
一片用在在小车上,负责控制循迹、无线和电机驱动功能;一片在控制端上,负责控制语音播报、无线发送、液晶显示和按键功能。
通过控制端的液晶显示和按键输入设定模式信息,再通过无线发送给车载控制器,车载控制器根据接收到的不同无线信息,控制小车进入不同的模式,实现不同的功能。
本系统中的无线传输距离,空旷地为100米左右,室内可以隔着一层楼,接收端能收到发射端发射的无线信号。
关键词:
单片机,传感器,智能小车
Abstract
Alongwiththedevelopmentofscienceandtechnology,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章绪论
1.1选题背景和意义
自第一台工业机器人诞生以来,机器人的民展已经遍及机械、电子、冶金、交通、宇航、国防等领域。
近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。
人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的梦想。
其中智能小车可以作为机器人的典型代表。
其需要实现自动导引功能和避障功能就必须要感知导引线和障碍物,实现自动识别路线,选择正确的行进路线,使用传感器感知路线并作出判断和相应的执行动作。
智能小车设计与开发涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科。
它可以分为三大部分:
传感器检测部分,执行部分,CPU。
现智能小车发展很快,从智能玩具到各行业都有实质成果,其基本可实现循迹、避障、检测贴片,寻光入库、避崖等基本功能,有向声控系统发展的趋势。
1.2智能小车发展概况
1.2.1国外智能小车发展概况
国外的智能小车发展的也很火,这其中要数韩国的智能小车发展最为迅速。
韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下,以HCS12飞思卡尔单片机为核心构造的智能小车系统。
该智能小车系统主要功能为寻迹。
利用红外、电磁、CCD摄像头等设备进行,这其中有数CCD摄像头最为常见,行驶速度快,过弯灵敏,控制算法上大多采用PID算法进行闭环控制。
1.2.2国内智能小车发展概况
国内智能小车系统做的比较成熟的有北京博创科技有限公司。
随着全世界范围内汽车炸弹袭击事件的不断增多,因此安全检查部门对重大活动的汽车检查也逐步升级,由过去仅检查车内和车箱,升级为对包括车底的全方位检查。
在全国两会安保工作中采用了北京博创科技的UP_UVSR智能小车机器人。
UP_UVSR既是一款针对车底检查任务研发的机器人系统,该产品体积小、重量轻,便于携带,作业效率高;可以驶入车底进行检查,也可以固定安装与车辆通道口对过往车辆进行检查。
1.3研究设计的目标
设计一个多功能智能小车系统。
通过控制端的单片机检测按键的输入,根据输入的不同模式,控制无线模块发送不同的命令,小车上的车载控制器接收到无线信号,然后判断接收到的无线信号,来控制小车进入不同的模式,控制端的单片机通过LCD和语音模块进行参数信息的显示和播报。
1.4方案选择
1.4.1控制器选择分析
控制器主要用于各个传感器信号的接收和辨认、控制小车的电机的动作,是整个智能车系统的心脏,考虑到需要实现多个功能的要求及各个模块引脚的数目,列出以下方案,对其分析、论证、选择。
方案一:
采用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的资源,但是根据本设计的实际情况,成本比较高,编程难度较大。
综合以上三种方案,考虑到系统的可行性,及功耗,性能,硬软件的成本,我选择方案二。
1.4.2电源模块选择分析
方案一:
采用传统的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内,没有经过任何压缩,所以有较好的音质和断电存储。
多种采样频率对应多种录放时间。
工作电压:
2.4V-5.5V。
静态电流:
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.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单片机最小系统
3.1.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,车载控制器从该引脚接收来自无线模块传来的信号。
图3-8无线模块和车载控制器的连接图
3.6语音模块
语音模块是本系统中的重要功能模块。
当按键设定小车进入不同的功能模式时,语音模块能够播报相应的模式信息,防止设定进入错误的模式。
语音模块实物图如图3-9所示。
图中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从该引脚接收来自语音芯片传来的信号。
(空白处补上)
图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.1车载控制器主程序设计
主程序采用模块化的思想设计,车载控制器的主程序流程图如图4-1所示。
从图4-1中可以看出,车载空控制器首先进行对电机模块、循迹模块和无线模块的初始化,初始化主要包括各个模块和控制器相连接的IO端口的输入/输出初始化,以及一些功能寄存器的初始化。
初始化完成后,程序进入while循环,开始判断无线接收到的数据,如果无线接收到的数据是循迹模式字码(0xa0),则进入循迹子程序,小车开始循迹;如果无线接收到的数据是无线遥控模式字码(0xa1),则进入无线遥控模式,开始小车的无线遥控行驶功能。
如果没有接收到任何模式字码或者接收到的不是这三种模式字码的任意一个,则小车停止。