基于单片机的无线遥控及避障小车.doc_第1页
基于单片机的无线遥控及避障小车.doc_第2页
基于单片机的无线遥控及避障小车.doc_第3页
基于单片机的无线遥控及避障小车.doc_第4页
基于单片机的无线遥控及避障小车.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书课程设计名称: 电子信息工程专业课程设计 课程设计题目: 基于单片机的无线遥控及避障小车 学 院 名 称: 信息工程学院 专业:电子信息工程 班级: 100401 学号: 10041324 姓名: 童海深 评分: 教师: 陈琼 20 13 年 7 月 3 日 电子信息工程专业 课程设计任务书20 12 20 13学年 第 2 学期第 16 周 19 周 题目基于单片机的无线遥控及避障小车内容及要求(1) 具有避障、遥控模式可切换的功能(2) 遇到障碍物的时候在避障模式小车可以自行避障(3) 切换成遥控模式时,可以通过手持把柄进行用户自定义控制,具备前进、后退、左转、右转、停止等基本功能。进度安排:第一周 查阅资料,确定方案;注意:学生的设计方案需经指导老师检查通过后方可进实验室进行制作。第二周 集中培训;第三周 设计制作,软件编程;第四周 电路调试,撰写报告。学生姓名: 童海深指导时间 :第1619周指导地点:E 楼 311室任务下达20 13 年 6 月 10 日任务完成20 13 年 7 月 5 日考核方式1.评阅 2.答辩 3.实际操作 4.其它指导教师陈琼系(部)主任贾杰摘 要小车在当今的学生中非常盛行,多出现在可与制作及比赛中。因此本设计采用了无线遥控及避障小车这个课题。小车涉及硬件和软件两部分的设计。硬件上,首先根据课题要求选择合适的车模,为后续工作搭设计基础平台;其次,对车体的机械结构进行了设计与制作,以满足电路板、传感器的安装,美观等要求;最后,对系统的控制电路、驱动电路、传感器电路等各部分电路进行了设计和调试,采用了STC89C52作为系统的控制芯片,其中最主要的技术是利用红外避障传感器对障碍物进行扫描,实现避障和无线遥控的操作,并使用APC220无线模块对小车经行无线控制,诺基亚5110液晶显示行驶状态。软件方面,主要使用了串口通信,IIC总线通信,键盘扫描,定时中断等函数,以保证系统的准确控制。同时,应用差速对方向进行控制,保证车体及时转弯与运行。关键词 避障传感器 无线模块 APC220无线模块 履带车模目 录摘要3第一章 设计任务及要求41.1设计任务61.2 设计要求6第二章 方案论证与选择72.1 总体方案72.2 各模块方案选择与论证7 2.2.1 主芯片选择7 2.2.2电源的选择8 2.2.3 电机驱动的选择8 2.2.4 避障方式选择9 2.2.5 液晶显示选择10第三章 系统硬件设计113.1 电源11 3.1.1主控电路电源113.1.2电机7.2V电源113.1.2红外避障模块电源113.2 电机驱动电路113.3 红外避障传感器电路123.4 液晶显示电路123.5 最小系统原理图13 3.5.1主控电路13 3.5.2复位电路143.6 无线模块电路143.7 按键电路15第四章 软件设计164.1 车体部分主流程图164.2 车体部分中断流程图174.3 手持板流程图17第5章 系统调试18第6章 设计总结19参考文献20附录21第一章 设计任务与要求1.1、任务 制作出一辆小车,小车具有避障及遥控两种方式,用户可以通过手持设备进行选择,然后通过无线模块发送给小车,从而小车执行给定的操作。1.2 要求 (1)具有避障、遥控模式可切换的功能 (2)遇到障碍物的时候在避障模式小车可以自行避障 (3)切换成遥控模式时,可以通过手持把柄进行用户自定义控制,具备前进、后退、左转、右转、停止等基本功能。第二章 方案的论证与选择2.1总体方案本设计的小车分为两大块:车体部分及手持遥控部分,车体模块系统框图见图2.1,手持部分见图2.2 红外测距 电机 MCU无线模块 图2.1 车体总体框图 按键 液晶显示 MCU无线模块 图2.2 手持部分总体框图2.2各模块方案选择与论证按照系统的设计功能要求,本智跑机器人系统的设计采用单片机软件系统实现,用单片机的自动控制能力配合红外避障模块、液晶显示模块、按键模块、电机驱动模块、构成了本智跑机器人的硬件系统。2.2.1主控芯片的选择方案一:ATMEGA16A芯片,该芯片是ATMEL公司生产的8位处理器,虽然其在速度比较快、功能比较齐全,但是在价格上比较昂贵,况且对于本次课题来说,很多功能用不上,这势必造成资源上的浪费。方案二:用STC89C52单片机,该芯片是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在线可编程flash存储器。对于本次课题,可以采用A/D转换模块和单片机结合,这样既经济划算,又足以满足本次课题的精度综上所述:我们采用方案二。2.2.2电源的选择方案一:采用LM2940,低压差线性稳压器,纹波系数很小,其典型应用电路如下:图2.3 低压差稳压电源方案二:采用7805,78xx/79xx 系列三端稳压器件是最常用的线性降压型 DC/DC 转换器,简单易用、价格低廉,在大多电路中采用。但其压降比较大,另外输出电流不能太大,1.5A 是其极限值。 图2.4 7805稳压电源方案三:采用开关型电源,开关性稳压电源的效率很高,但输出纹波电压较高,由于制作成本较高、难度较大,故不采用。经综合比较,电源模块还是选择了性价比高的7805。在之前使用红外避障传感器过程中发现,四个传感器的功耗很大,会使普通的7805严重发热。因此在电路中,我们使用双稳压输出模式。我们使用一片小功率型号的7805给电路中的单片机和隔离器供电,而使用一片大功率的L78H05给传感器供电,L78H05是金属封装的大功率稳压芯片,持续电流可以达到3A。完全可以胜任传感器的供电任务。2.2.3电机驱动的选择方案一:33886 并联驱动电路,电路特点是电路稳定,但加减速慢。在电机需要反转制动时,33886会很快发烫,且 33886 并联时最好选同批次、同型号的芯片,否则可能会出现不匹配的现象,导致只有一个正常工作。当用 4 片并联时更要注意!除此之外,在 PCB 布线时 33886的走线尽量要对称。单片的电路如下:图2.5 33886驱动方案二:采用两片半桥驱动 BTS7960 构成的全桥驱动电路 BTS7960 是集成的大电流半桥驱动,其内部包含了一片 NMOS、一片 PMOS和一片半桥门集驱动,在IOUT = 9 A,VS= 13.5V,Tj = 25 C 时,其内阻抗为17m。方案三:采用L298N,L298N是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。图2.6 L298驱动经过试验,再结合做飞思卡尔车的经验,发现BTS7960驱动效果最好,但在本次的设计制作中,车轮只需要正转反转即可,且成本较高。小车的行驶的时间也不长,L298就远远能满足要求了,考虑到L298不仅满足要求,且外围电路简单,成本也比采用7960和33886降低了好几倍,故还是选择了方案三。2.2.4避障方式的选择方案一:采用URF02-TTL超声波传感器。当超声波发射碰到障碍物时,超声波被反射回来,从超声波发射到接受的过程计时,超声波在空气中的传播速度是340m/s,对此加以判断,可以检测障碍物离救援车的距离,当到一定的范围时,救援车开始转弯避障。可以达到要求。方案二:选用基于A/D转换的反射式红外对管。这种传感器具有较高的性价比,操作简单,采集的数据量相对较小,普通单片机完全可以胜任,可以达到很好的识别效果。结合硬件本身,还有我们自己对它的熟练应用程度,我们选择了方案二。2.2.5 显示液晶的选择方案一:选用LCD1602作为显示部件,它具有编程简单,功耗低的优点。但由于1602是属于并行数据传输,需要占用十个IO口;并且它只能显示特定的ASCII字符,不能显示汉字。方案一:选用LCD12864作为显示部件,它也具有编程简单,功耗低的优点。但也是是属于并行数据传输,需要占用十三个IO口;由于该液晶内部自带了汉字字库,所以它能很方便的显示4*8个汉字字符,或者通过取模显示图片。但它的缺点是速度慢,体积太大,我们设计手持控制板时对液晶的体积有着严格的要求。方案三:选用诺基亚5110液晶模块,该5110液晶是使用串行数据接口的高速液晶。具有体积小、速度快、节省IO口的优点。结合控制板对液晶的要求考虑,我们选用诺基亚5110作为显示部件。第三章 系统硬件设计3.1电源由于条件和规则所限,智能车的动力系统与控制系统共用同一电源。而由于电路中不同模块的工作电压各不相同,因此需要将电池电压转换成各个模块所需电压。电源按电压大小可分为如下两部分:3.1.1 主控电路电源在电机加减速过程中瞬间伴随的超大电流将拉低电池端电压,严重影响控制系统,尤其是单片机的稳定工作。因此,必须设计可靠的稳压模块,使电池端电压下降到一定水平时,供电依然稳定。在足够满足要求的前提下,我们采用的是简单易用、价格低廉的7805。电路图如图3.1所示: 图3.1 5V电源原理图3.1.2 电机 7.2V电源 为了使电机获得更高的速度和更大的调速范围,直接使用电池11.2V电压驱动电机。3.1.3 红外避障模块电源红外避障模块使用了四个避障传感器,该传感器为红外调制管,功率非常大。很容易烧坏普通的7805,经过改进,我们使用一个金属封装的78H05为红外避障模块单独供电,并且使用散热片散热。3.2电机驱动电路该电路是利用L298N驱动芯片进行控制,通过单片机的IO口输出高低电平,控制电机两边的电平高低,从而实现电机的正反转,很方便单片机的操作,亦能满足直PWM波调速的要求。电机切换正反转时电流不能突变,瞬间会产生很大的电流,为防止烧毁电机,故加续流二极管保护驱动芯片。电机工作时候会产生比较大的电磁干扰,尤其是启动、停止瞬间会有比较大的电磁干扰,为了消减这些干扰,我们在电机接口那里并联了一个0.01uf的电容来吸收电磁干扰。电动车驱动电路实现如图3.2所示:图3.2 电机驱动电路3.3红外避障传感器电路障碍物的检测是利用红外避障传感器,由于红外避障传感器的功率过大,为了防止其烧坏主芯片,所以加了一个74HC244用作隔离作用,红外传感器的电路图如下3.3所示: 图3.3红外避障传感器电路3.4 液晶显示电路利用诺基亚5110液晶作为显示工具,使用一个电位器来调节液晶的背光灯亮度,其原理图如下3.4所示: 图3.4 液晶显示电路图3.5 最小系统电路原理图该模块的设计是分别基于两片STC12C60S2的最小系统,以此作为主控器,完成小车部分前端的信息处理及数据接收;以及手持控制板的数据传输和显示,为了方便串口通信方便,我们使用11.0592MHZ的晶振。其部分核心电路原理图如图3.5所示:图3.5 最小系统电路原理图3.5.1 主控电路MCS-51 单片机的各功能部件都是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作,单片机本身如同一个复杂的同步时序电路,为了保证其各个部分同步工作,电路要在唯一的时钟信号控制下,严格地按照时序进行工作。其实只需在时钟引脚连接上外围的定时控制元件,就可以构成一个稳定的自激振荡器。为更好地保证振荡器稳定可靠地工作,谐振器 和电容应尽可能安装得与单片机芯片靠近。本设计中使用的振荡电路,由12MHZ 晶体振荡器和两个30Pf的电容组成,在XTAL1和XTAL2 两端跨接晶体,电容的大小不会影响振荡频率的高低。在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号。其电路图如下图所示: 图3.6 晶振电路原理图3.5.2 复位电路单片机的复位是由外部的复位电路实现的, 复位电路通常采用上电自动复位和按钮复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。除了上电复位外还需要按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过 RST 端经电阻与电源 VCC 接通而实现的 单片机的复位速度比外围 I/O 接口电路快为能够保证系统可靠的复位, 在初始化程序中应安排一定的复位延迟时间。本设计中我们采用手动电平复位方式,其电路图如下图3.7所示:图3.7:复位电路原理图3.6 无线模块电路图无线模块用于手控板给小车传送操作指令,我们选用APC220无线模块,APC220无线模块为高集成度半双工微功率无线收发模块。不需要自己编写通信协议,编程方便,供电电压范围宽的优点。 图3.8 最小系统电路原理图3.7 按键电路原理图手持控制板通过按键来设置小车的行驶模式和运动控制。按键一端使用10K的电阻上拉至高电平,当按键按下时,IO口会被拉低,然后在程序里检测IO口的低电平即可识别按键是否被按下。由于按键数量不多,且IO口富余,为了不增加程序负担,我们不采用矩阵键盘,而直接使用独立按键。键盘电路如图:图3.6 最小系统电路原理图第4章 软件设计4.1总体方案本系统分为两个大模块,车体部分及手持部分,具体流程图如下4.1.1车体主程序流程图: 初始化 模式选择 遥控模式 避障模式接收的值? 碰障?Y 其他 N 直走a b cd e后退右转暂停左转前进清接收成功标志位4.1.2 车体中断流程图保存接收值 进入中断 置位接收成功标志 返回4.1.3 手持板主程序 初始化按键是否被按下?NY模式? ?上?下?左?右?停? YYYYYY发送模式标志位发送后退标志位发送右转标志位发送停止标志位发送左转标志位发送前进标志位 状态显示第5章 系统调试5.1 单片机最小系统测试 焊接好硬件电路时,单片机是系统正常运作的核心,首先测试单片机最小系统是否工作正常。具体分如下几个步骤:1) 首先测试电源是否工作正常,若不正常则是电源的问题。2) 测EA脚是否接高电平,然后再测试ALE脚对地的电压,正常的情况下为1.8V左右,若不是则说明单片机没有正常工作。3) 若单片机没正常工作则去检查帮助晶振起振的电容是否合适。5.2 NOKIA5110的测试由于NOKIA 5110 是SPI总线的器件,所以需要注意写数据的时候是高位在前还是低位在前,本设计一开始的时候就是把高位低位搞错了,白白地花了大量时间查错。可以预先写一个数据到Nokia 5110中,若正常则说明此部分大体没问题。5.3 APC220无线模块测试 再测试模块时候发现单片机可以通过APC220 发送,上位机可以收,但是上位机发的时候,APC220却不能接收。经过老师的指点发现是电平不匹配的问题,经过在单片机RXD和TXD脚接上上拉电阻后再测试,发现系统正常。5.4 整体测试再检测各个模块没问题时,将系统组装,通过手持设备选择避障模式,小车正常运行,遇到障碍物的时候能够躲开障碍物。选择无线遥控模式时,小车退出避障模式,小车在用户的操作下准确无误的运行,遥控距离远达1000多米,总体来说小车比较成功。第6章 设计总结经过这三个星期的制作、装配、调试,小车达到预计的功能,可以将所学的知识用到实际当中,而从实际制作中巩固对理论知识的理解。最重要的是,我们培养了团队精神,在实际当中遇到问题,我们并没有去争吵,而是平心进气地去讨论问题,耐心的解决问题,取长补短,为以后工作当中的团队精神的培养奠定了基础。我想这是非常重要的,而那些画面将成为电子发烧友们最美好的记忆!我还要感谢我的指导老师,他耐心地为我们解决问题,在他的帮助下,我们得以完成设计的任务,最重要的是从他那学到了好多课本上学不到的知识,对问题的灵活地处理,再次感谢我的导师!参 考 文 献1 邵贝贝.单片机嵌入式应用的在线开发方法M.清华大学出版社.2004.2 杨宁,胡学军.单片机与控制技术M.北京航空航天大学出版社.2005.3 赵亮,侯国锐.单片机C语言编程与实例M.人民邮电出版社.20034 黄开胜,金华民,蒋狄南. 韩国智能模型车技术方案分析J. 20065单片机实验与实践 周立功,北京:北京航空航天大学出版社,2004.86单片机应用实训教程 袁启昌,王宏宇,北京:科学出版社,2006.27单片机实训教程 张迎辉,贡雪梅,北京:北京大学出版社,2005.988051单片机课程设计实训教材 陈明荧编著,北京:清华大学大学出版社,2005.7 9李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,200310胡汉才.单片机原理及系统设计.北京:清华大学出版社,2003附录1. 车体实物图片2. 手持部分实物图3源程序3.1 串口子程序/*-函数名称:Init_SCOM()函数功能:初始化串口入口参数:无出口参数:无*-*/void Init_SCOM(void) TMOD = 0x21;/设置定时器1为工作方式2TH1 = 0xfd;TL1 = 0xfd;/9600 BaudTR1 = 1;REN = 1;SM0 = 0;SM1 = 1;ES = 1; EA = 1;/*-函数名称:Send_Dat()函数功能:发送数据入口参数:要发送的数据dat出口参数:无*-*/void Send_Dat(uchar dat)SBUF = dat;while(TI = 0);TI = 0;3.2 避障子程序uchar Bizhang(void)uchar Value = 0;if(!(Eye1 & Eye2)Value = 1; /左边有障碍if(Eye1 = 0 & Eye2 != 0)Value = 10; /if(!(Eye3 & Eye4)Value = 2; /右边有障碍if(Eye3 != 0 & Eye4 = 0)Value = 11; /if(!(Eye2 | Eye3)Value = 3; /前面有障碍 if(Eye1&Eye2&Eye3&Eye4)Value = 4; /前方无障碍 前进if(!(Eye1|Eye4)Value = 7; /卡住了 if(!(Eye1|Eye2|Eye3)Value = 5; /左边有三个遇到障碍if(!(Eye4|Eye2|Eye3)Value = 6; /右边有三个遇到障碍if(!(Eye1 | Eye3 | Eye4)Value = 12;if(!(Eye1 | Eye2 | Eye4)Value = 13;return Value;switch(Bizhang()case 1:Yuo_xie();break;case 2:Zuo_xie();break;case 4: Head();break;case 5: Right();break;case 6:Left();break;case 3: Back();Delay_Sec(1);Right();Delay_Sec(2);break;case 7:case 12:case 13:Back();Delay_Sec(1);Right();Delay_Sec(2);break;case 10:Right();Delay_Sec(1);break;case 11:Left();Delay_Sec(1);break;default:break; 3.3 Nokia 5110 相关子程序#include #define uchar unsigned char#define uint unsigned intsbit LCD_RST = P33;sbit LCD_CS = P34;sbit LCD_DC = P35;sbit LCD_SDA = P36;sbit LCD_SCLK = P37;/*-函数名称:Write_LCD_Byte()函数功能:向液晶写入命令或数据入口参数:模式选择 command ,要写的数据dat出口参数:无-*/void Write_LCD_Byte(uchar command,uchar dat)uchar i = 0;LCD_CS = 1;_nop_();LCD_CS = 0; /使能LCDif(command = 1)LCD_DC = 1; /数据elseLCD_DC = 0; /命令LCD_SCLK = 1;for(i=0; i8; i+)if(dat & 0x80)LCD_SDA = 1;elseLCD_SDA = 0;LCD_SCLK = 0;dat = 1;LCD_SCLK = 1;LCD_CS = 1;/*-函数名称:LCD_REST()函数功能:液晶复位程序入口参数:无出口参数:无-*/void LCD_REST(void)Delay(10);LCD_RST = 0;Delay(10);LCD_RST = 1;/*-函数名称:LCD_SET_XY()函数功能:设置液晶的坐标入口参数:X坐标 X_add Y坐标Y_add出口参数:无-*/void LCD_SET_XY(uchar X_add,uchar Y_add)Write_LCD_Byte(0,0x80 | X_add);Write_LCD_Byte(0,0x40 | Y_add);/*-函数名称:LCD_Clear()函数功能:清除LCD入口参数:无出口参数:无-*/void LCD_Clear(vo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论