版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. - - . 可修编. z目录TOC o 1-3 h u HYPERLINK l _Toc15644 1 设计理念与背景 PAGEREF _Toc15644 1 HYPERLINK l _Toc12028 1.1 当代智能汽车的开展 PAGEREF _Toc12028 1 HYPERLINK l _Toc28625 1.2设计的理念与目的 PAGEREF _Toc28625 1 HYPERLINK l _Toc20841 2 设计方案的论证及选择PAGEREF _Toc20841 2 HYPERLINK l _Toc18957 2.1 总体设计系统图 PAGEREF _Toc18957 2
2、HYPERLINK l _Toc10957 2.2 主控系统 PAGEREF _Toc10957 3 HYPERLINK l _Toc32695 2.3 电源模块 PAGEREF _Toc32695 3 HYPERLINK l _Toc21991 2.4 电机驱动模块 PAGEREF _Toc21991 4 HYPERLINK l _Toc25922 2.4.1 电机模块选择与论证 PAGEREF _Toc25922 4 HYPERLINK l _Toc3935 2.4.2 电机驱动模块选择与论证 PAGEREF _Toc3935 4 HYPERLINK l _Toc7850 2.5 显示模块
3、 PAGEREF _Toc7850 5 HYPERLINK l _Toc17750 2.6 避障模块 PAGEREF _Toc17750 6 HYPERLINK l _Toc7001 2.7 路由器模块 PAGEREF _Toc7001 6 HYPERLINK l _Toc9263 2.7.1 wifi芯片原理图 PAGEREF _Toc9263 8 HYPERLINK l _Toc4811 2.7.2 摄像头 PAGEREF _Toc4811 8 HYPERLINK l _Toc24986 3 硬件电路的设计 PAGEREF _Toc249868 HYPERLINK l _Toc624 3.
4、1 总体设计 PAGEREF _Toc624 8 HYPERLINK l _Toc19235 3.2 驱动电路 PAGEREF _Toc19235 9 HYPERLINK l _Toc13592 3.2.1 电机驱动模块的使用 PAGEREF _Toc13592 9 HYPERLINK l _Toc6652 3.2.2 电机驱动的原理 PAGEREF _Toc6652 10 HYPERLINK l _Toc30262 3.3 显示电路 PAGEREF _Toc30262 12 HYPERLINK l _Toc10053 3.4 单片机最小系统的设计 PAGEREF _Toc10053 12 H
5、YPERLINK l _Toc20374 3.4.1 主控芯片的介绍 PAGEREF _Toc20374 12 HYPERLINK l _Toc15898 3.4.2 单片机最小系统 PAGEREF _Toc15898 13 HYPERLINK l _Toc11866 4 程序调试 PAGEREF _Toc11866 14 HYPERLINK l _Toc5031 4.1 调试软件 PAGEREF _Toc5031 14 HYPERLINK l _Toc16573 5 设计小结 PAGEREF _Toc16573 15 HYPERLINK l _Toc16007 附录1 电路原理图 PAGER
6、EF _Toc16007 17 HYPERLINK l _Toc20756 附录2源程序 PAGEREF _Toc20756 18 HYPERLINK l _Toc8287 附录3 实物照片 PAGEREF _Toc8287 30- . 可修编. z1 设计理念与背景1.1 当代智能汽车的开展现在是一个智能化的时代,各种智能化设备正在逐步替代人为的操作。随着汽车工业的迅速开展,关于智能汽车的研究也就越来越受人关注。全国电子大赛和省电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。对于智能汽车的研究,国外都有很大的成就,谷歌的无人驾驶汽车,已经能够在高速公路上平安行驶数
7、千公里,在高速行驶下都能有这么好的操控能力,无非是智能汽车领域的一座里程碑。对于智能泊车系统,现在也已经进入了民用领域,很多车型也装配了该系统,有了他,汽车用超声波传感器扫描路面两侧,通过比拟停车的空间和车辆的长度,自动寻找适宜的停车位。找到适宜位置后,驾驶者只需控制刹车,车辆自动控制转向操作,即可将车停进停车位,并且液晶屏会有相应的显示。对于这样现代如此强大的科技手段,无线智能已经不再是梦想,是人们想要到达的一种高度了。从20世纪70年代开场,美国、英国、德国等兴旺国家开场进展无人驾驶汽车的研究,目前在可行性和实用化方面都取得了突破性的进展。在无人驾驶技术研究方面位于世界前列的德国汉堡Ibe
8、o公司研制的无人驾驶汽车,2007年4月11日在英国伦敦科学博物馆与公众见面。这辆无人驾驶智能汽车经德国群众汽车公司生产的帕萨特2.0改装而成,外表看来与普通家庭汽车并无差异,但却可以在错综复杂的城市公路系统中无人驾驶。目前日本、欧美已有企业取得实用化成果。与国外相比,国在智能车辆方面的研究起步较晚,规模较小,开展这方面研究工作的单位主要是一些大学和研究所,如国防科技大学、清华大学、大学、理工大学、长安大学、自动化所等。我国从20世纪80年代开场进展无人驾驶汽车的研究,国防科技大学在1992年成功研制出我国第一辆真正意义上的无人驾驶汽车。先后研制出四代无人驾驶汽车。第四代全自主无人驾驶汽车于2
9、000年6月在市绕城高速公路上进展了全自主无人驾驶试验,试验最高时速到达75.6Km/h。在2004年10月12日的第六届高交会上,红旗无人驾驶汽车就引起了极大的轰动。它在高速公路上最高稳定无人驾驶速度为130公里/小时;峰值无人驾驶速度为170公里/小时。并同时具备平安超车和系统小型化两个主要指标。为如此,他们把它称为中国汽车界的神舟五号。2005年,首辆城市无人驾驶汽车在交通大学研制成功,该车有望于两年之率先在世纪公园进展示运营,并在2010年世博会上一展身手。到时游客只需在公园的入口处按下一个按钮,一辆没有司机的四座敞篷汽车就会从远处开过来缓缓停下,然后搭载着乘客前往他们想去的景点。1.
10、2设计的理念与目的我们将利用自己现有的知识与力量在现代科技的庇护下搭建一个属于自己的智能小车,可以表达现代年轻一辈的科技头脑与科技力量。我们初步想法是以89C52 为控制核心,利用超声波传感器检测道路上的障碍并测量小车与障碍之间的距离,小车通过红外传感器能够的自动避障,通过改变PWM信号的占空比可以控制快慢速行驶,以及自动停车,自动寻迹等功能。通过对本小车研究,我们可以初步构建智能汽车的模型与理论根底。本设计主要研究容就是基于89C52设计一部智能小车,小车能够实现自动循迹,自动避障,超声波测量距离。智能小车控制系统,包括了对驱动电路,红外通讯等的探索和研究。本工程文主要从小车设计方案的选取、
11、硬件设计、软件设计、测试结果方面进展主要论述。我们在第3局部主讲单片机的硬件设计,包括了单片机最小系统的电路设计;整个小车的一个供电电源的设计,需要通过电源给整个系统供给电压;电机的驱动模块,详细的说明了电机驱动的原理,视频信号的采集;我们将在第4局部程序的设计给出了程序整体的流程图各个模块子程序流程图及编写思想;最后我们将简述整机的每个模块调试及方法。为了到达最初的设计目的,使现代智能化的力量无限的放大,让现代科技的光辉通过我们的双手照在人们眼睛里。同时也想通过设计来提高我们自身的能力与知识。2 设计方案的论证及选择2.1 总体设计系统图本设计将以单片机为根底,以它为核心再配合电源模块与驱动
12、模块并在此根底上添加液晶显示,测距避障以实现各个功能。路由器用于接收电脑等终端设备发送的指令和将摄像头采集到的视频信号传送到电脑等终端设备;单片机最小系统是整个小车的控制核心,控制着各个模块统一协调工作;电机驱动电路用于驱动电机转动,可以使电机产生正转、反转,从而使车体产生前进、后退、转弯等动作;电机的作用就是使整个车体运动;电平转换电路是将路由器输出的3.3V串口电平转换为单片机能判断的上下电平;电源电路作用是为整个小车系统共电;舵机制作成云台,然后装上摄像头,使摄像头可实现上下、水平方向180度旋转调节;摄像头用于采集视频信号;蜂鸣器电路用于报警提示;照明电路为小车在夜间行驶提供照明。详细
13、系统构造图如下:LCD1602模块超声波壁障模块 STC89C52RC 总系统图2.2 主控系统由于单片机具有价格低廉,资源丰富、有较为强大的控制功能,故本次设计采用STC89C52单片机作为整个系统的核心,用其控制行进中的小车以实现其既定的性能指标。STC89C52是一个超低功耗的增强型51单片机,和标准51系列单片机相比拟它的运算速度更快,有超强的抗干扰能力,同时还支持ISP在线编程,片上集成了512字节的随机存取数据存储器RAM,并且片含8k字节空间的可以反复擦写1000次的Flash只读存储器, 32个I/O口,以及3个16位可编程定时计数器。其指令系统和传统的8051系列单片机指令系
14、统完全兼容,降低了系统软件设计的难度,电路设计简单、价格低廉,在后来的实验中我们发现,STC 89C52准确度和运算速度也都完全符合我们系统的要求。2.3 电源模块首先作为智能车的核心生命源,我们决定采用传统的18650型锂电池,单节标称电压一般为3.7V ,把三节串联起来差不多就足够了。我们也讨论过使用双电源供电,将9v可充电方块电池电压降压、稳压到5V后给单片机系统和LCD1602及其它芯片供电。另外采用4节1.2V可充电电池组为直流电机供电,经测试在用此种供电方式下,单片机和传感器工作稳定,直流电机工作良好,LCD显示也很稳定,小车也能长时间工作。但是经过深思熟虑之后,我们还谁放弃了这个
15、想法。毕竟我们做的不是高精度小车,何必花费过多的精力在这个方面啦?2.4 电机驱动模块 电机模块选择与论证方案一:使用步进电机作为智能小车系统的驱动电机,因为步进电机的转动角度可以准确的定位,这样就可以比拟准确的定位小车的前进距离和位置。但是由于步进电机的输出力矩偏低,并且会随着电机转速的升高而下降,在到达较高的转速时其输出的力矩会急剧下降,因此不适于小车等对速度有着一定要求的系统。经过综合分析比拟决定放弃此方案。 方案二:使用直流减速电机作为智能小车系统的驱动电机。直流减速电机的转动力矩比拟大,而且体积较小,重量也很轻,使用方便。另外小车电机部还装有减速齿轮组,所以并不需要去考虑调速的功能,
16、可以很方便的通过单片机来控制直流减速电机的正传、反转、停顿操作。 综合以上考虑选择方案二的直流减速电机作为整个智能小车的驱动电机。 电机驱动模块选择与论证方案一:采用继电器对电动机进展控制,通过切换电动机的开关来调整小车的速度。这个方案的优点是电路相比照拟简单,但是它的缺点也比拟多,如:继电器的响应时间偏慢, 寿命较短,容易损坏,可靠性也不是很高。故决定放弃此方案。 方案二:采用专用的电机驱动芯片L298N来控制直流减速电机, L298N芯片如图2-4是一个具有高电压大电流的全桥驱动芯片,一片L298N芯片可以分别的控制两个直流减速电机,在646V的电压下,可以提供2A的额定电流,并且具有过热
17、自动关断和电流反响检测功能,平安可靠。该芯片是利用TTL电平进展控制的。通过单片机的IO口输出上下电平来改变芯片控制端的输入电平,即可以实现对电机进展正转、反转和停顿操作。另外为了保证L298N的正常工作,上面还有8个续流二极管1N4007。用该芯片作为电机驱动,驱动能力大、操作方便、稳定性好、性能优良。 综合以上分析与论证我们选择方案二的驱动芯片L298N作为整个智能小车系统的电机驱动电路图2-4 L298N驱动芯片2.5 显示模块方案一:采用LED数码管显示。数码管使用简单,价格低廉,但一个数码管只能显示一个数字,要显示多位数据时要使用多个数码管,这就增加了硬件电路的复杂度和额外功耗,而且
18、LED数码管也无法显示字符。由于我们方案要显示小车运行的速度和路程,LED数码管没方法显示这么多的容,因此考虑其它的方案。 方案二:采用LCD1602液晶如图2-5显示。LCD1602液晶具有功耗低,显示容丰富清晰,显示信息量大,显示速度较快,界面友好,使用简单等特点而得到了广泛的应用。并且外围电路也比拟简单,因此我们选择此方案。 通过以上方案论述我们选择方案二,显示小车运行速度和路程的任务。图2-7 LCD1602液晶显示2.6 避障模块方案一:用漫反射式光电开关进展避障。光电开关的工作原理是根据光线发射头发出的光束,被物体反射,其接收电路据此做出判断反响,物体对红外光由同步回路选通而检测物
19、体的有无。当有光线反射回来时,输出低电平。当没有光线反射回来时,输出高电平。操作简单但是测量的距离不远。 方案二:用超声波传感器进展测距避障。超声波传感器的原理是:超声波由压电瓷超声波传感器发出后,遇到障碍物便反射回来,然后再被超声波传感器接收8。超声波传感器在避障的设计中被广泛应用。为了使用方便,便于操作和调试,采用集成超声波测距模块HC-SR04(如图2-6)。 综合考虑本系统只需要检测障碍物,没有十分复杂的环境。为了使用的方便,便于操作和调试,最终选择了方案二图2-6 HC-SR04超声测距模块2.7 路由器模块网上有很多WiFi智能小车都用到了路由器,路由器的种类很多,质量参差不齐,适
20、用环境也根据条件的不同发生着变化。但是目前最受DIY爱好者青睐的这是可以一种可以刷进openwrt系统的智能路,该路由器的强大资源配置情况如下:OpenWrt 可以被描述为一个嵌入式的 Linu* 发行版,主流路由器固件有 dd-wrt,tomato,openwrt三类而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供给商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。
21、OpenWrt 选择了另一条路,它从零开场,一点一点的把各软件参加进去,使其接近 Linksys 版Firmware的功能,而OpenWrt 的成功之处是它的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的 Linu*电脑系统。OpenWRT是一个高度模块化、高度自动化的嵌入式Linu*系统,拥有强大的网络组件和扩展性,常常被用于工控设备、小型机器人、智能家居、路由器以及VOIP设备中。同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序。OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开场编写的、
22、功能齐全的、容易修改的路由器操作系统。实际上,这意味着您能够使用您想要的功能而不加进其他的累赘,而支持这些功能工作的linu* kernel又远比绝大多数发行版来得新。如果对 Linu* 系统有一定的认识, 并想学习或接触嵌入式 Linu* 的话, OpenWRT很适合。但OpenWRT支持各种处理器架构,无论是对ARM,*86,PowerPC或者MIPS都有很好的支持。其多达3000多种软件包,囊括从工具链(toolchain),到核(linu* kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,使得用户只需简单的一个make命令即可方便快速地定制一个具有
23、特定功能的嵌入式系统来制作固件。除此之外,我们还有制作好的与其兼容的RT5350系列WiFi芯片及其配套路由器底板。所以,在此我们选择RT5350WiFi芯片和与其兼容的路由器底板。2.7.1 wifi芯片原理图 摄像头3 硬件电路的设计3.1 总体设计智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,通过电机驱动芯片L298N来控制前面两个轮子的转动与停顿从而到达控制转向的目的,后轮是万向轮,起支撑转向作用。将4个红外光电传感器装在车体底盘的前端,小车根据传感器检测的情况来循迹前进。 小车速度的检测通过槽型光电传感器,将码盘装在电机的轴上,码盘跟随电机一起转动,将检测到的数据传回单片机进展
24、处理。 小车的避障用超声波避障模块HC-SR04,将其置于车头,检测到障碍物时,小车做出相应的反响。3.2 驱动电路电动小车的驱动不但要求电机驱动系统具有高转矩重量比、宽调速围、高可靠性,而且电机的转矩-转速特性受电源功率的影响,这就要求驱动具有尽可能宽的高效率区。我们所使用的电机一般为直流电机,主要用到永磁直流电机、伺服电机及步进电机三种。直流电机的控制很简单,性能出众,直流电源也容易实现。我们使用的这种直流电机的驱动及控制需要电机驱动芯片进展驱动。常用的电机驱动芯片有L297/298,MC33886,ML4428等,本次使用L298驱动芯片。 电机驱动模块的使用我们使用的L298N是ST公
25、司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或制止器件工作有一个逻辑电源输入端,使部逻辑电路局部在低电压下工作;可以外接检测电阻,将变化量反响给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。工程使用的是4个直流电机,工程中使用了一
26、块L298N电机驱动来驱动这四个直流电机的转动。其实引脚图如下列图3-2-1所示。其中6和11引脚是它的使能端,一个使能端控制一个电机,只有当它们都是高电平的时候两个电机才有可能工作,5、7、10、12是298的信号输入端和单片机的IO口相连,2、3、13、14脚是输出端,输入5和7脚控制输出2和3脚,输入的10、12脚控制输出的13、14脚。图3-2-1 L298N驱动芯片引脚 电机驱动的原理驱动局部我们使用的是L298N驱动芯片构成的一个驱动电路模块如图3-2-2所示。图3-2-2-1 驱动电路模块电机驱动原理图如图3-2-2-2:图3-2-2-2 电路驱动原理图使用直流/步进两用驱动器可
27、以驱动两台直流电机。分别为M1和M2。引脚A,B可用于输入PWM脉宽调制信号对电机进展调速控制。如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。如果信号端IN1接低电平, IN2接高电平,电机M1反转。控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。反之则反转,PWM信号端A控制M1调速,PWM信号端B控制M2调速。电机驱动状态表电机旋转方式控制端IN1控制端IN2控制端IN3控制端IN4输入PWM信号改变脉宽可调速调速端A调速端BM1正转高低/高
28、/反转低高/高/停顿低低/高/M2正转/高低/高反转/低高/高停顿低低/高3.3 显示电路用LCD1602来显示数据,LCD液晶具有功耗低、显示容丰富、清晰,显示信息量大,显示速度较快等特点。其中用滑动变阻器RV0来调节显示器的背光亮度。电路原理图如下列图3-4。3.4 单片机最小系统的设计单片机是控制单元的核心。起着控制小车所有运行状态的作用。单片机控制模块使用的是宏晶公司生产的STC89C52,使用该芯片很容易实现对其它模块的控制。通过对单片机STC89C52写入程序,可以方便的用软件来控制,整个过程的控制局部。 主控芯片的介绍89C52是宏晶公司MCS-51系列单片机中根本的产品,它采用
29、ETC公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它基于标准的MCS-51单片机体系构造和指令系统,属于80C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。89C52置8位中央处理单元、256字节部数据存储器RAM、8k片程序存储器ROM32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断构造,一个全双工串行通信口,片时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结
30、CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停顿,同时停顿芯片其它功能。89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。主要功能特性如下:1、标准MCS-51核和指令系统;2 、32个双向I/O口;3、3个16位可编程定时/计数器;4、向上或向下定时计数器;5、6个中断源;6、全双工串行通信口。7、帧错误侦测;8、自动地址识别;9、空闲和掉电节省模式;10、片8kROM可扩大64kB外部存储器;11、256*8bit部RAM可扩大64kB外部存储器;12、时钟频率3.5-12/24/33MHz;13、改良型快速编程脉冲算法;14
31、、5.0V工作电压;15、布尔处理器;16、4层优先级中断构造;17、兼容TTL和CMOS逻辑电平;18、PDIP(40)和PLCC(44)封装形式。 单片机最小系统STC89C52RC单片机最小系统:89C52单片机的I/O口的输入功能用于传感器信号的输入处理。通过单片机对外部传感器的信号采集处理,从而对外部条件进展判断以确定小车下一步的运行状态。89C52单片机的I/O口信号输出,主要是给驱动模块送控制信号用于控制电机的转动、给舵机送PWM控制信号控制舵机的偏转以及控制开关蜂鸣器、灯光等。单片机的部定时器的使用是用于产生PWM信号,以及其他需要准确时间的地方。单片机的串口中断,用于与路由器
32、进展的串口通讯,接收电脑终端发送的串口指令。单片机的外部中断用于红外信号的接收,然后通过解码程序得到命令,从而控制小车的运动。4 程序调试4.1 调试软件STC-ISP串口助手调试软件:KEIL uVision4编译器:5 设计小结历经半个月的培训和长时间的编程,小车终于调试成功,虽然看上去功能比拟强大,具备智能小车根本所需要的功能,但并没有让自己感到满足,其中存在很多方面的缺陷,同时也表达出自己能力的缺乏,在自己今后的学习中也有很大的启发作用。我们队几个人从单片机最小系统到电机驱动模块,都得自己画电路版,焊电路版,查资料,写程序,记得有几次我们测试程序失败,然后不停在程序上找原因,可最后发现
33、是电路板画错了,不得不重新画过,然后再焊电路板。在这过程中考验了我们的耐心和智慧,锻炼了我们的实践能力,在设计中提高了我们数电模电的理论水平,也让我们感受到实践的坎坷和乐趣通过本次WIFI智能小车的理论学习、论文编写和实物的制作,进一步的认识到了自身存在的缺乏。特别是自己在路由器方面知识的欠缺,这使得我在小车在起步制作时路由器局部的处理花费了大量的时间。但通过我在网上不断的查询相关的资料,在网上请教这方面的高手,最终我还是完成了路由器局部的处理。但是我还是不知道其中具体的一些细节的原理,如我的摄像头为什么会在后期不能使用,使用不同摄像头时路由器要进展怎样的一个处理。还有在整机装配的时候我没有注
34、意到一些细节的地方,这使得我把小车拆装了屡次。要想把事情做好提高效率,这就需要注意学习生活工作中做事的细节,以及对自己知识的扩大。还要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计完毕了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设
35、计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够结实。同时,通过这次的课程设计,我的各方面能力也得到了大幅度的提高。在知识上:一方面,我系统的总结了自己的专业知识,明确了自己今后事业的开展方向。另一方面,我如饥似渴的自学了单片机及其外围电路知识,并通过自己独立对软件的编写和实物制作,最终完成了整个WIFI智能小车的设计。在能力上:我通过不断查阅资料、与师生交流学习新知识、在网上请教相关的人士,然后又将自己沉淀后的知识和经历运用到实际电路设计理念中,丰富其功能与质量。在综合素质上,我虽然遇到很多的挑战和困难,但从未想过放弃,最终凭借自己百折不饶、勇于钻研的精神解决了这
36、些技术难点。当然,由于我的知识和能力有限,整个设计还有很多缺乏之处有待完善和改良,恳请教师指教,这必将是我在踏上工作岗位之前的最大一笔收获。附录1 电路原理图图表 SEQ 图表 * ARABIC 1-STC89C52最小系统原理图图表 SEQ 图表 * ARABIC 2-路由器底板原理图附录2源程序#include #include #include #include steer.h#include motor.h#include lcd1602.h#include distance.h#include serial.hvoid GoAhead();void GoLeft();void GoR
37、ight();void Stop();void Back();void InitTimer0();void DelayMs(unsigned int ms);void SerialSetMode(unsigned char dat);void main()InitLcd1602();InitTimer0();InitSerial();SetReceFunction(SerialSetMode);LcdShowStr(0,1,Hello);SetMotorSpeed(20,20);while(1);void SerialSetMode(unsigned char dat)static unsig
38、ned chart = 0;unsigned char str20;strt=dat;t+; if(dat=-)/最后一个字符strt=0;t=0;if(!strcmp(up-,str)CarGoAhead();if(!strcmp(down-,str)CarGoBack();if(!strcmp(left-,str)CarGoLeft();if(!strcmp(right-,str)CarGoRight();if(!strcmp(stop-,str)CarStop();LcdShowStr(0,0,str);void DelayMs(unsigned int ms)unsigned int
39、i, j;for(i=0; ims; i+)for(j=0; j110; j+);void InitTimer0()TMOD |= 0*01;TH0 = (65536-1000)/256;TL0 = (65535-1000)%256;/0.1MsTR0 = 1;EA = 1;ET0 = 1;void InterruptTimer0() interrupt 1TH0 = (65536-1000)/256;TL0 = (65535-1000)%256;/0.1MsCarSpeedRun();#ifndef _MOTOR_H_#define _MOTOR_H_#include /*电机控制I/O口*
40、/右sbit EnB = P15;sbit In4 = P14;sbit In3 = P13;/左sbit In2 = P12;sbit In1 = P11;sbit EnA = P10;/*电机速度存放器*围:0-100 */e*tern unsigned int LeftMotorSpeed;e*tern unsigned int RightMotorSpeed;/*小车运行状态*/typedef enumMode_GoAhead,Mode_GoBack,Mode_Stop,Mode_GoLeft,Mode_GoRightRunMode;e*tern RunMode CarRunMode;
41、/*电机运行状态宏转换*/#define RightMotorGo EnB=1; In3=1; In4=0;#define RightMotorBack EnB=1; In3=0; In4=1;#define RightMotorStop EnB=1; In3=0; In4=0;#define LeftMotorGo EnA=1; In1=0; In2=1;#define LeftMotorBack EnA=1; In1=1; In2=0;#define LeftMotorStop EnA=1; In1=0; In2=0;/*根底函数声明*/e*tern void CarGoAhead();/
42、小车前进e*tern void CarGoBack(); /小车倒车e*tern void CarStop(); /小车制动e*tern void CarGoLeft(); /小车左转e*tern void CarGoRight();/小车右转/*高级函数声明*/e*tern void SetMotorSpeed(unsigned char Speed1,unsigned char Speed2);/设置电机速度e*tern void CarSpeedRun();/小车以一定速度运动,定时器中断部调用#endif#include motor.hunsigned int LeftMotorSpe
43、ed = 50;unsigned int RightMotorSpeed = 50;unsigned int Ma*MotorSpeed = 50;RunMode CarRunMode = Mode_Stop;e*tern bit AheadBar;e*tern bit LeftBar;e*tern bit RightBar;void SetMotorSpeed(unsigned char Speed1,unsigned char Speed2)LeftMotorSpeed = Speed1;RightMotorSpeed = Speed2;void CarSpeedRun()static u
44、nsigned chart = 0;t+;if(t = Ma*MotorSpeed)t = 0;if(tLeftMotorSpeed)EnA = 1;elseEnA = 0;if(tRightMotorSpeed)EnB = 1;elseEnB = 0;void CarGoAhead()if(AheadBar = 0)CarRunMode = Mode_GoAhead;RightMotorGo;LeftMotorGo;void CarGoBack()CarRunMode = Mode_GoBack;RightMotorBack;LeftMotorBack;void CarStop()CarRu
45、nMode = Mode_Stop;RightMotorStop;LeftMotorStop;void CarGoLeft()if(LeftBar = 0)CarRunMode = Mode_GoLeft;RightMotorGo;LeftMotorStop;void CarGoRight()if(RightBar = 0)CarRunMode = Mode_GoRight;RightMotorStop;LeftMotorGo;#include serial.hbit McuSendEnd = 0;unsigned char *SerialSendData; /发送数据指针unsigned c
46、har SerialReceData; /接收数据void (*ReceDataFunction)(unsigned char); /接收数据回调函数void InitSerial()TMOD=0*20;TH1=253;TL1=253;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;SetReceFunction(TempReceDataFuntion);void TempReceDataFuntion(unsigned char ReceData)unsigned temp = ReceData;void SetReceFunction(void (*temp)(unsi
47、gned char)ReceDataFunction = temp;void SetSendChar(unsigned char *dat)SerialSendData = dat;void StartSendChar(unsigned char *dat)SetSendChar(dat);SBUF = *SerialSendData;void Serial() interrupt 4if(RI = 1)RI = 0;SerialReceData = SBUF;ReceDataFunction(SerialReceData);if(TI = 1)if(*SerialSendData) != 0
48、)SerialSendData+;SBUF = *SerialSendData;elseMcuSendEnd = 1;TI = 0;#ifndef _SERIAL_H_#define _SERIAL_H_#include e*tern bit McuSendEnd; /单片机数据发送完毕位e*tern unsigned char *SerialSendData; /发送数据指针e*tern unsigned char SerialReceData; /接收数据/*初始化串口*参 数:无*返回值:无*使用串口通信时调用*/void InitSerial();/*开场发送数据*参 数:dat待发送字符串指针*返回值:无*发送字符串时调用*/void StartSendCha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年楚雄市工业锅炉G1证理论考试练习题及答案
- 2025-2026学年河北省定州市初中数学八年级期末上册高分预测黑金考题附答案
- 2026镇村(社区)后备干部选拔考试题及答案
- 民宿用电安全操作规程
- 2026年护理核心制度考试试题+答案
- 2025-2026学年新疆维吾尔自治区喀什市初中政治七年级期末下册评估黑金试题详细参考解析
- OSS 对象存储笔试题目及详细答案
- OpenGL 高频面试题及详细答案(实战版)
- 石材磨边倒角操作工安全规程
- 患者投诉处理流程与医疗纠纷预防方案
- T/CEMTA 3.2-2023工业电子雷管通用型起爆器第2部分:应用软件信息安全要求
- 房屋租赁销售培训
- 露天煤矿安全用电培训
- 外来入侵生物普查培训
- 《茉莉花》(课件)人音版音乐六年级上册
- 2025高考语文步步高大一轮复习讲义必背二 120个常见文言实词
- T-YNZYC 0120-2024 绿色药材 天门冬产地加工规程
- 精益化管理北京《医药企业改善之路-精益化管理》研讨会课件
- 安徽六校教育研究会2024届物理高一第一学期期中调研试题含解析
- 宝洁日化培训课件3-8-001 Final Approved Global Clean Design Standards 2011-08-04
- SB/T 11016-2013足部保健按摩服务规范
评论
0/150
提交评论