版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
佟鸣轩:智能小车控制系统的设计辽宁工程技术大学(论文)前言无人驾驶大可以应用再生活的个个方面,比如无人送餐小车,无人驾驶公交车,无人快递车等等。因此研究寻迹小车,对现实有着巨大的帮助,有很高的应用价值。在如今的日常生活中,随着人们生活节奏的变快,人工劳动的成本的提高,更多的工作似乎或者是有必要通过机器而不是人工来完成。这样人们就能在不远的未来一小断时间里将人工劳动力节约,并把他应用在人类更擅长的领域当中去,这就是现代化生活的蓝图。作为最贴近人们日常生活的交通,如果能在交通领域的某些方面做到无人化就会节省很大一部分人力。智能交通管理完成了交通管理的无人化,从大家耳熟能祥的智能可调时间红绿灯到违章监控系统,然而如果能在驾驶领域完成无人化,就会节省更大一部分人力,为人们的日常生活带来极大方便。1智能寻迹小车自动寻迹作为无人驾驶的一种方式能够,在较低的成本较低的研发付出条件下完成各种复杂且人工易感到疲劳或乏味的任务,比如无人寻迹送信送餐小车,工厂无人寻迹叉车,无人寻迹电车。并且对其的研究已经较为成熟,技术也较为推广。人工智能和电气化是我们这个时代不可回避的话题,毕竟是一种大势所趋,智能小车做为人工智能和电气化结合的最新产物,毕竟是这个新时代的宠儿。智能循迹小车作为智能小车的一种,可以按照一定的轨迹在复杂的道路上行驶,这不仅节省了人工驾驶的劳动力,同时也更好的完成了驾驶任务。因此可以应用到极端条件下的参数勘探作业或月球表面结构探索等人类无法亲自到达现场作业的领域。1.1选题的目的、意义要设计一款寻迹小车,不仅需要一定的硬件支持,其中包括硬件控制电路和小车实体,还需要向单片机内下载调试好的程序,让小车按照一定的规则在地面运行。而设计一款智能寻迹小车,可以在普通寻迹小车单片机和车架的硬件基础上添加各种硬件并在单片机上下载相应硬件的控制程序,从而实现更多的功能。设计这样一款小车,通过查阅资料及运用相关专业知识可以配养专业素质,锻炼相关专业能力。智能小车目前已经在国内各大高校本科以及研究生阶段进行了普及,并且国家还举办了电赛以及飞思卡尔智能小车比赛,其中充分涉及了各种功能的智能小车,可见智能小车有着很大的研究价值和实用意义。实际的应用背景决定了所有科研成果的有效性和实际性,科技结合实际才能发挥出它自己最大的作用。智能寻迹车可作为餐厅机器人需要能避开餐厅复杂的障碍物,自动规划路径,将食物送至客人桌上,也可作为AGV搬运机器人需要有避开其他AGV搬运机器人的功能,也可作为自动驾驶的汽车需要有自主规划路径以及快速安全的避障功能。汽车时代背景下,汽车事故也在日益不断地上升,如何有效的减少甚至是消除其的发生,有着非常大的现实意义。将我们所学的科学技术扩大,使其升华,就能更好地为人类服务。1.2国内国外研究现状1.2.1国内研究现状国内智能小车的研究起步相比于国外而言,时间更靠后且发展较慢,但随着追赶的脚步不断逼近,国内也渐渐在智能车的研究上取得了一些成绩。在1980年前后中国成功研制了可以无人驾驶的汽车,这不仅代表了中国无人驾驶车辆研究的最新成果,也打开了无人驾驶车辆技术的大门。二十一世纪10年代我国对智能车研究产生了新的突破,科学家为我们带来了新的成果。其中一辆具有无人驾驶功能的汽车是由军事交通学院研发的“猛狮3号”,它可以实现在全部行进过程中的无人操作,可以通过内部程序逻辑在电脑的监控下完成全部行程。并且可以独立自主进行弯道驾驶,这次实现无人化驾驶是相关技术的逐步成熟为我们带来的一大科技创举。谈到当今国内的大部分大学均自主研制出带有各种功能的智能小车,如上海交通大学研发的”Cyber3”项目车,主要可以用来搭载人员和进行对货物的运送,不仅可以实现自主行进并且还具有很高的速度。在例如清华大学的THMR-V智能车,是一种先进的具有避障功能的寻迹小车,能够处理非常复杂的道路状况,并且能够按特定轨道行进。又例如武汉大学测”smartV”充分利用了三维扫描仪,并能通过计算机对各种路线进行比较与选择。虽然现阶段我国在智能车的研究上获得了喜人的成果,在各方面均取得一定突破但是美中不足的是与国外相比实力仍具有一定差距,想要弥补这一差距还需花研究者花费更加宝贵的经历,以及国家在这一方面提供更多的重视和投入更多的资金。1.2.2国外研究现状国外的研究开始比较早在19世纪50年代,国外已经着手了智能车方面的研究,历史上最新的一台自动引导车辆是著名的美国BarettElectronics公司研制的,这次自主研究的产物能跟随一条钢丝索指引的方向进行自动寻迹,这辆智能车最引人注目的亮点是完成了无人驾驶,这是也是智能车最基础的共有特征。早期的研发结果代表有NavLab-5智能车,德国的VaMP智能驾驶系统,意大利帕尔马大学的TheARGOvehicle等。近年来,世界上智能车研究的热度获得了很高的提升,法国INRIA公司在无人驾驶汽车的研究上花费了大量人力以及财力,最终获得了突破性的研究成果。一辆先进的无人驾驶汽车“塞卡博”(CyCab)向世人展示了科学的魅力。这辆车需要使用者提前设置好行进的轨迹,它能够在无人操作情况下的把你带到目的地。除此之外,它还融合了最新的科技,能够用使用者的手机来进行控制,功能具备更好的操作性。德国的智能车“shelley”能通过内部芯片识别各种交通标志,可以实现在复杂交通条件下进行无人驾驶在。在国内大公司组成的行业界,Google公司的研发走在行业的尖端,发明出了高科技的智能车。并与速度飞快的赛车进行竞赛。2013年9月,微软全球首个“汽车卓越中心”在上海正式面向世人开放。在中国业内不仅谷歌有丰硕的成就,丰田和奥迪也在智能车领域大有作为,研制的成果颇多,比如丰田的雷克萨斯AASRV。总的来说,在未来的10-20年智能车的研究依旧是一个热门,相信在不久的未来国内能够研发出更多出色的智能车新产品。1.3智能小车的应用前景智能小车的研发和应用涉及了多方面的技术,主要应用的学科包括传感器技术及应用,模拟电子技术基础,数字电子技术基础,检测技术与测试信号处理,微机原理与接口技术。智能控制技术是一门包含多学科的综合性学科,在如今发展十分广泛,应用在生活中的高科技中。电气化与智能化作为现代社会的趋势,将会应用到以后日常生活的方方面面。它可以设想在一个特定的场合通过单片机及其它硬件的支撑在内部程序的控制下自主工作,可以应用于特殊场合完成人类无法完成的工作,不需要人的参与,便可以通过程序完成预期目标,在结果上甚至比人类完成的更加完美。智能机器人有自主移动的功能,可以看成智能小车的延伸。在各行各业智能车都在替人类完成这任务,但凡有会危及到人类自身安全的情况,以及遇到人类劳动力消耗比较大的岗位,智能机器人均可出战,可以在人类无法生存的极端条件下工作,比如高温,高压,真空等。可以提人类完成本来不可能完成的任务,使人类的科技进一步发展,智能小车可以看作智能机器人的同一类科技。它虽然没有拟人的形状但是,在功能上可以实现许多智能机器人所具有的功能,甚至在某些方面超越了简单的机器人。智能小车是一个由传感器、智能算法、单片机等科技组成的科技产品。随着科学技术本身以及经济的迅速发展,这些科技产品已经在逐步走入我们日常生活的方方面面。使我们的生活变得更加高效便捷。除了应用在的军用设备的研发上外,还可以应用于宇宙探索、地质勘探、矿物勘测、危险营救、智能家具等方面,其在交通运输中的应用潜力也受到全世界的普遍关注。2智能寻迹小车的实现2.1想要实现的功能本毕业设计所设计的智能循迹小车不仅拥有普通循迹小车的功能,能根据传感器收集地面轨迹的信息然后通过单片机控制小车按照地面上的轨迹行进,还具有其它智能。配备有温湿度传感器,可以完成工业现场温湿度的采集,并且配有OLED显示屏,通过OLED显示屏在检修测试的有人操作情况下显示温湿度,还配有蓝牙模块可以在无人的极端条件下通过蓝牙把温度湿度参数传送给上位机手机来提供数据显示工业现场的温湿度。为了使其便于人的操作在工作现场和其他地点转移还有遥控驾驶功能。这台智能循迹小车拥有遥控驾驶的功能,可以完成对工业现场实时的温度湿度检测,并且与上位机共享信息。可以应用到煤矿,铁矿,等井下现场,还可以应用到深林火灾的监测的现场,或沿着煤气管道行驶完成管道附近的监测。2.2设计方案的选则本次毕业设计设计的智能小车控制系统,实物主要由小车车架以及上面搭载的控制系统组成。所以完成本次毕业设计任务主要分为两部分,一部分是完成小车的设计,另一部分是完成智能控制系统的设计。本人上网查阅多方面资料发现,完成本次毕业设计根据小车以及控制系统硬件的选则以及可以有多种方案。2.2.1智能寻迹小车车架设计方案的选则小车方面可以有两个方案。方案一:自己动手制作电动车,一方面材料缺少,另一方面制作过程要花费大量的时间,而且同学中手艺也不好,制作出来的小车还可能机械性能不好。考虑到时间与性能这两方面,我们放弃了这一方案。
方案二:购买小车,购买的小车具有组装完整的车架车轮、电机及其驱动电路。易改装,好控制。机械性能有保障。2.2.2智能小车电路板设计方案的选则电路板的选择,电路板的选择有两个方案。方案一:选择成品stm32板,优点在于设计成方便且同样能完成设计功能,成品的stm32板有不仅完整的最小系统包括晶振电路提供系统时钟和复位电路给扳子重新上电,还融合了其它外设,比如串口,ADC,DAC,按键,LED灯,板子的功能齐全,对于本次毕业设计设计的智能循迹小车控制系统来说有许多富余,但是考虑到经济原因我放弃了这一方案,而选择了更简单直接的方法,自己用AD制板。方案二:自己用AD制作PCB板,这一方案可以为小车量身制作出本次毕业设计设计所需的电路板,并且节省资源。我们需要自己学习并操作ad软件,并交给厂家制作。美中不足的是如果以后需要对小车进行改装需要从新设计板,并添加其他功能,单独就这一点来说使用方案二没有使用方案一可行。但是多方面来讲还是方案二可靠。2.2.3智能寻迹小车寻迹模块的选则板子上搭载智能控制系统完成控制任务的关键寻迹模块有两个设计方案方案一;循迹小车是指根据单片机内部编程在其内部程序逻辑的控制下通过一系列硬件使小车按照之前预订好的轨迹进行行走。我们第一个方案的轨道使一种黑色的线,运用了光线的反射原理,以及红外线与其它光线的区别,通过选取四路循迹光电传感器,设计了一种抗干扰能力很强的黑白线识别智能循迹小车。光线的反射原理是指物体的表面会对照射到上面的光吸收一部分,然后反射一部分,根据不同的表面材质或物体不同的颜色会使吸收和反射的光不同。黑色是吸收光能力最强的一种颜色,而与其相反白色吸收光的能力最弱。因此采用黑色的轨迹以及白色的地面非常有利于小车进行循迹。对于抗干扰的设计是因为,所采用的是红外线传感器,红外线相对于其它光线信号在自然界比较微弱,因此如果不是人类发射就很难进行干扰。因此方案一具体采用四个红外光电管依次按照从左到右的方向分别放置于小车的前端底部,左侧两个右侧两个。红外光电管分别置于移动智能小车前板底座的两侧,确保沿着黑线行驶。红外光电管由一个发射管和一个接收管组成,安装在同一面上。如图2-1为红外光电管的硬件原理图,红外光电管的工作原理是由发射管发射出的红外线,经检测面反射后被接收管吸收,由于检测面颜色的不同,对红外线的吸收程度也不同,从而反映在接收管的阻值变化上。这种阻值变化通过外接通路就能转换成单片机能够识别的信号。由于红外光电管发出的是红外线,日光对小车的检测不会产生影响,因而其抗干扰性能好,从而实现小车的循迹功能。方案一所使用的方法简单可行,且其对单片机的功能要求比较低,并且光电管接收器的输入作为简单的数字信号可以直接送入单片机通过简单的逻辑编程转化为输出信号并通过驱动带动电机从而完成控制任务。这里考虑到工程的复杂程度以及价格的低廉,我们选择了方案一。图2-1红外光电管原理图Figure2-1PrincipleofInfraredPhototube方案二;在设计时自主运用应用互感原理由电感器件组成的传感器,在本次毕业设计我们考虑使用LDC1000电感数字变换器,通过给它的线圈交流电产生交流磁场,根据互感原理我们可知当线圈接接近到感性原件时,会在金属原件上产生电涡流,金属器件上的涡流使其外侧产生一个与线圈磁场方向反向的磁场。在电流的作用下,根据电生磁的原理,传感器线圈和金属器件如同变压器的两级线圈。由于互感作用,线圈上就会产生相应的互感电阻R(d)和互感电感L(d),如图2-2为LDC1000电感数字变换器的工作原理图,其中Rs为变换器的电阻,Ls为变换器的电感。在线圈的两端并联一个电容构成LC并联谐振电路可以大大减少线圈感抗消耗的能量从LDC1000电感数字变换器串联工作等效电路图如图2-3可以看出,LDC1000电感数字变换器工作过程中能量损耗基本都集中在Rs(d)上,其中Rs(d)为Rs和R(d)的等效电阻。因此只需检测Rs(d)的能量损耗就可以间接测量到金属与线圈的距离d。图2-2电感数字变换器图2-3电感数字变换器串联工作电路图Figure2-2InductanceDigitalConverterFigure2-3SeriesWorkingCircuitDiagramofInductanceDigitalConverter方案二的传感器功能实现,只能识别铁制钢制或类似由感性金属做成的轨迹,并具有一定的抗干扰能力,单显然不适用周围有钢铁物品的现场,因此在本次毕业设计中不予采用。3实现智能寻迹小车的硬件3.1小车稳压电源及小车驱动电源模块的设计本次毕业设计设计的课题是智能小车这就需要小车有独立的电源,小车为了跑起来需要有单独的直流电源供电而不能像程序调试时一样使用电脑USB来给单片机供电,并下载程序。具体的电源分为两类第一类是指小车上面控制系统的供电,主要包括为单片机供电,为BLUE4.2蓝牙模块供电,为MPU6050陀螺仪供电这些都是一些基本的控制单元器件,但是需要供电的还有蓝牙电平转换电路。第二类是指小车电源的供电,在选则小车电源供电的预想方案是上网购买电压电流适合的干电池,并采用电平转换电路将电流转换成小车电机驱动原件需要的一定伏特的电压。本次毕业设计设计时所采用的小车电机驱动l298n所需要的电压是12伏特。对于小车上面控制系统来说需要稳定且一定伏特和安培的电流,因此普通的锂电池供电并不能够直接完成任务因此需要根据不同的元器件输入电压要求自主设计降压稳压电路。Stm32芯片,MPU6050陀螺仪以及复位电路及电源全是3.3v供电,因此根据设计需要通过AMS1117-3.3设计输入为5v输出为3.3v的电源稳压输出电路。而BLUE4.2蓝牙模块以及蓝牙电平转换电路全是1.8v的供电因此根据设计需要通过AMS117-3.3设计输入为3.3v输出为1.8v的电源稳压输出电路。在原本接线电路图如图2-4的设计中遇到了一个问题,在网络标号VDD3.3和VCC3.3之间的电感位置的元器件一开始一直没有确定下来,因为我们查找了很多ASM1117-3.3的电路,有使用电感的,也有使用电阻的,后来经过仔细阅读芯片手册以及询问有相关知识的老师后,知道这个位置的元件可接可不接,对电路不会有太大的影响。
下面是对电路的解析:
1、D1作用是防止电源反接。
2、C01、C02是电源输入滤波。
3、VDD3.3是3.3V电源,供数字电路使用,
4、L1、L2是隔离滤波电感。
5、VCC3.3是3.3V电源,供模拟电路使用。图3-1AMS117-3.3接线电路图Figure3-1AMS117-3.3wiringdiagram关于ASM1117-3.3的设计方法我们采用了简化的电路电路图如图2-5和图2-6,原本的电路比较复杂,但是特性比较好设计。图3-2ASM1117-3.3简化电路图图3-3ASM1117-3.3简化电路图Figure3-2SimplifiedcircuitdiagramofFigure3-2SimplifiedcircuitdiagramofASM1117-3.3ASM1117-3.3在确定小车驱动电源模块时首先在上网络搜索相应的降压模块然后后发现有这几种规格的降压模块。第一种规格是输入电压为5.3v-26v,而制在1.1A以内。也就是说网上店铺里并没有输出电压相同的为12伏的电压降压模块。于是很自然输出电压为3.3v,输出电流为3A并且长时间工作电流应控制在1.8A以内。第二种规格是输入电压为7v-26v,而输出电压为5v,输出电流为3A并且长时间工作电流控制在1.6A以内。第三种规格是输入电压为11v-26v,而输出电压为9v,输出电流为3A并且长时间工作电流控的想到了两种方案,第一种方案是像控制系统供电一样采用自己设计的降压模块并配合一定规格的锂电池充当电源供电,但是本次设计非常巧妙的采用了第二种方案及直接使用12v的锂电池供电,这样做既能满足l298n的供电要求,还比较简单减小了工程的难度。3.2小车驱动与电机模块的设置作为智能小车显然不仅仅只能向前行驶,然而由于功能的设计要求也不能由人来进行驾驶操作。这就要求小车的设计者设计出一套控制小车能按照一定规则进行行进的方法。作为硬件的设计先不考虑单片机控制以及程序的事,因为想要使小车按照一定的规则进行行进单片机的控制电路以及后期的程序编程是必不可少的,但是问题在于如何使电机带动车轮按照一定的方向与速度进行转动,这是因为单片机的控制信号是弱电一般来说是在标准的控制电量(0~5v,4~20mA)而这种微小的电量因为功率不够不能直接带动电机。所以设计智能小车控制系统首先需要设计或者选用一种驱动。3.3小车驱动模块L298N小车的驱动模块我在设计时选择了使用现成的模块L298N,作为一款驱动模块它首先不仅能带电机并且还有逻辑控制功能,所谓的逻辑控制功能就是指在单片机的输出信号控制下改变对电机输出的电流对L298N的控制逻辑会在介绍完小车以及差速转向原理以后进行介绍。要想了解本次毕业设计所设计的智能小车控制系统的小车电机驱动模块是如何工作完成小车行进方向控制的,首先要了解本次毕业设计所使用的电机的具体工作方式和小车的大体结构,以及电机驱动的轮子转向的原理,齐次涉及了L298N的内部结构。L298N可驱动直流电机,本次毕业设计所使用的一款电机,有两个引线端如果按把电机线接好电机正转,那么把接线调换过来接电机反转。这就为L298N控制电机从而改变车轮转向提供了方便,虽然我们在小车转向时不能把先对调过来重新接好,但是我们可以改变电机及两端引线和L298N内部电路所组成电路中电流的转向,这样做与改变接法在效果上是等同的。L298N可以根据单片机的输入控制输出的电流方向,这得益于H桥的设计,关于H桥会在L298N的内部结构中介绍。本次毕业设计智能小车控系统说选用的小车是一款四轮的小车模型图如图3-4,本小车有四个轮子每个轮子各有一个电机驱动,因此共有四个电机驱动以及四个轮子,并且小车由于是模型车并且由于负重小动力小的特点使本小车并无车轴,这也为小车的转向提供了全新的不同于日常生活中汽车转向所用的方式。图3-4小车模型图Figure3-4CarModel本小车的前轮和后轮的每个电机都相同并且各驱动一个轴,在小车安装时,由于小车的车架是完全镜像对称的,所以不用考虑前轮后轮的问题,但是在接L298N驱动控制模块时需要注意到前后电机是头对头摆放的我们为了使小车能够正常行驶需要把前后两个轮子的转向控制的正好相反。讲到小车的模型后我们来介绍一下L298N的具体模块和逻辑功能,L298N的实体图如图3-5。一块L298N上集合了实际上两个电机控制模块,拥有两个输出分别为输出A与输出B,对应的使能端分别为通道A使能和通道B使能,当使能端接高电平时可以使能该通道,我们在本次毕业设计所设计的小车中由于有四个电机,所以需要两个L298N模块并且使用全部通道,也就是说使能通道在小车开始行进时由单片机控制全部接高电平。一块L298N分别有控制两个输出的逻辑输入。在实际接线时可以用杜邦线由模块上引出的排针接入单片机。此外L298N在实际工作时像很多模块一样需要供电为12V供电或5V供电,还有一样有供电GND。L298N在工作时每一组输出分别有两个控制输入,即输出通道A和输出通道B分别有两个逻辑输入,在板子上可以清楚的看到OUT1,OUT2,OUT3,OUT4,四个输出端口的丝印,它的控制逻辑是这样的如果IN1输入高电平,那么OUT1输出高电平,如果IN1输入低电平,那么OUT1也是低电平,其它端口同理,因此根据上面对上面小车电机摆放以及电机输入的分析,我们需要按照前轮和后轮不同的摆放对应使相应的两组通道A和B的逻辑控制段各自一个接高一个接低。图3-5L298N实体图Figure3-5L298NEntityDiagram本次毕业设计所设计的小车转向时采用差速转向的方法。所谓差速转向顾明思意即通过左侧和右侧车轮在行进时相对于地面的纯转速不同而,向左侧或右侧转向,当左侧轮转速快时向右转,当右侧轮转速快时向左转。本小车的转弯设计有两种,当前两个轮子的电机一个正转一个反转时小车可以转一个小弯,这是第一种转向方式这种转向方式用来实现普通的转弯。左侧的所有轮子与右侧的所有轮子全部一个正转一个反转时小车可以转一个大弯,这是第二种转向方式这种转向方式转弯用来实现小车的急转弯。根据上文可知改变L298N的逻辑输入即可改变电机的转向从而改变轮子转向完成转弯。那么为什么L298N可以完成这种控制功能呢?这就需要介绍L298N的内部门电路H桥。3.4小车L298N的H桥电路L298N的H桥电路简化图如图3-6所示,顾名思义在实际的连线中电机与三级功放管组成如图所示的类似字母H形的形状,电机部分理论上处于H桥的中心位置。H桥可以带动如图位于中间部位的直流电机,通过观察H桥电路的简化电路图我们可以了解到,在H桥的两侧有四个三极管,这四个三极管能通过Q1,Q4导通或Q2,Q3导通,改变通过电机的电流方向。当单片机上的逻辑输入控制L298N使H桥上的Q2,Q3导通时大功率电流驱动直流电机向一个方向转,我们假设这是轮子向前转,小车向前行驶。那么当小车需要向后行驶,或者转弯。需要改变轮子转向时,改变单片机的逻辑输入这时H桥的二极管Q1,Q4导通,于是大功率电流驱动直流电机向另一个方向转,于是轮子向后转,小车向后行驶或完成转弯。图3-6H桥电路简化图Figure3-6HBridgeCircuitSimplifiedDiagram3.5电源滤波电路的设计对于单片机来说其输入电源需要严格的直流电源其中不允许有交流电的成分,也不允许有脉动,因此单片机需要设置滤波电路如图3-7。图3-7单片机滤波电路Figure3-7SingleChipMicrocomputerFilteringCircuit图中的单片机的滤波电路实际上是由一个简单的低通电路组成,低通电路运用了电容通交隔直的器件特性,将电流中交流的成分通过接地引走,从而留下直流成分。之所以其中有那么多的电容是利用了电容容抗的计算原理以及电容并联的特性。电容的容抗体现了对电流的阻挡作用为Xc,Xc=1/jwc这个等式表示了电容的容抗与电流频率w成反比与电容容值也成反比,即同样的电路如果通过电流的频率越高那么其通过电容的能力越强即体现了低容抗的特点,因此高通电路组成的电容希望对电流有低容抗有滤波作用。电容的并联相当于电阻的串连,因此并联电容越多,电路中的等效容值c越高,因此容抗Xc=1/jwc越低,高频电流的阻挡作用越高。3.6四线下载器本次毕业设计所设计的智能小车控制系统所用的下载器是JLINK。单片机为了完成控制任务需要一定的软件程序,这些软件程序往往需要由电脑编程然后进行编译并生成.hex文件,最后的.hex文件由单片机下载器下载到单片机上。这就是下载器的作用。J-Link是SEDDER公司为支持仿真AEM内核芯片推出的JTAG仿真器。配合IAREWAR,ADS,KEIL,WINARM,RealVIEW等集成开发环境支持所有ARM7/ARM9/ARM11,CortexA5/A8/A9等内核芯片的仿真与IAR,Keil等编译环境无缝连接,操作方便,连接方便,简单易学,是学习开发ARM最好最实用的开发工具。本次毕业设计购买并使用了JLINKV9调试器的升级版本。JLINKV9的产品功能与特征如下:*支持SerialWireDebug(SWD);*支持SerialWireViewer(SWV);*下载速度可达720kb/S;*DCC模式可达800kb/s;*可与IARWorkbench,KEIL,ADS,RVDS无缝集成;*无需外接电源,通过USB取电;*JTAG速度为12MHZ;*自动内核识别;*速度自动识别;*支持自适应时钟;*能监控所有JTAG信号,自动适应目标板电压;*支持多核调试;*完全即查即用; *包括20-pin标准JTAG连接器;*支持1.2v-目标板电压;*对外供电提供5V300mA(通过命令控制是否输出);*对外提供3.3V300mA(通过J3跳线实现);*包括USB和20-pin扁平电缆;*随机配送支持观察与修改内存的软件J-Mem;*支持嵌入缓存追踪EmbeddedTraceBuffer(ETB);*可以选配在线编程,烧写FLASH软件:J-FLASH;*RDI插件使J-link适合任何RDI兼容的调试器如ADS,Relview,IAR等;*配RDIFLASHDLL可以实现在RDI下的对FLASH进行编程,烧写;*配GDBServe,可以实现在GDB环境下的调试。之所以选则JLINKV9是他相比于JLINKV8有以下优点。它们两者的速度不同:JLINKV8支持到10M(JTAG调试模式)/4M(SDW调试模式),而JLINKV9支持到20M(JATG调试模式)/15M(SDW调试模式)。它们两者的稳定性不同:JLINKV9的驱动IC具有电压自适应能力,再接线正确的情况下,自动适应目标板的cpu电压。1.8-5.5v的cpu都可调试,而JLINKV8版本只能调试3.3v版本的cpu,而调试5vcpu稳定性很差。在支持的cpu型号上,新的一些cpuJLINKV8不再支持,而JLINKV9支持98%以上的ARMcpu。JLINKV9有自己的特点,这些特点如下:1.主控芯片采用STM32F205不掉固件,硬件升级到了V9.4新版本固件全自动升级。2.可以为开发板提供3.3V电压0.8A的电流(第二脚)。3.支持标准JTAG接口和2线SWD调试接口。速度可达每秒20M(JTAG)/15M(SWD)。4..支持ARM绝大部分ARM芯片的调试,支持MDK或者IAR,以及其它标准JLINK支持的编译环境IDE。最新的J-LINK仿真器目前已经升级到V9.40版本,其仿真速度和功能远非简易的并口WIGGLE调试器可比。J-LINK支持ARM7/ARM9/ARM11,Cortex
M0/M1/M3/M4,
Cortex
A4/A8/A9等内核芯片,支持ADS、IAR、KEIL开发环境。V9.3版本较V8.0版本进一步提升了下载速度,最大下载速度提升到1
MByte/s。JLINK主要有两种调试方式皆为四线称为JTAG和SWD。第一种调试方式JTAG,JTAG的全称是JointTestActionGroup(测试行动联合组织),它是由几家主要电子制造商发起制订的PCB和IC测试标准,主要应用于电路的边界扫描测试和可编程芯片的在线系统编程。2标准的JTAG接口是4线:JTAGTMS--模式选择、TCK--时钟、TDI--数据输入、TDO--数据输出,在设计PCB时,还要考虑到是否需要利用JTAG接口给MCU供电。第二种调试方式SWD,全称是SerialWireDebug(串行调试),它的接线方式较JTAG简单,2线式:SWDIO--串行数据线、SWDCLK--串行时钟线,一般在设计PCB时,会预留4个2.54mm的排座,这种接线方式适合引脚少的芯片,充分利用芯片资源。以上两种调试方法比较,各自有优势。SWD模式比JTAG在高速模式下更加可靠,在大数据量的情况下JTAG下载程序会失败,但是SWD发生的几率会小很多,基本使用JTAG的模式下可以直接使用SWD模式的,前提是仿真器支持。2)在GPIO口刚好缺一个的时候,可使用SWD仿真,这种模式支持更少的引脚;3)在PCB设计体积有限的时候推荐使用SWD模式。3.7pcb硬件原理图的绘制过程在画pcb硬件原理图时遇到很多问题,其中在画ASM1117-3.3时遇到了关于管教和封装的问题。在画由ASM1117-3.3所组成的降压稳压电路的时候遇到了点问题,我们在原理图库里找到了两种ASM1117-3.3V芯片的原理图,第一种为四脚的,第二种为三脚的,但是查看了一下封装,两种原理图的封装都是SOT-223,但是SOT-223的封装是四脚的,困扰我的问题就是为什么三脚的原理图可以对应四脚的封装,后来看了芯片手册才解决了这个疑惑。原来芯片的2脚和4脚是相连的,所以即使三脚的原理图对应四脚的封装也是没有关系的。
在画原理图时将稳压芯片单独化成一个模块的好处是,所有的外设在需要电平转换的时候可以直接通过网络标号接进来,而不需要再画一遍电路,这样既可以节省画图的时间,还可以节省元器件的成本。4软件及程序设计首先先从本次毕业设计所实现的所有功能来谈谈对于单片机软件设计编程的要求,本次毕业设计实现了DHT11温湿度传感器对于温湿度的采集,蓝牙模块与上位机手机的通信(主要用来传递传感器的数据),红外线光电管对黑色轨迹的感知,单片机输出逻辑对L298N的控制。这些功能虽然有着各自硬件的支持,但是对于任何电子产品其功能的实现不仅都要有硬件作为支持还必须有软件作为支持。4.1DHT11模块程序实现首先DHT11温湿度传感器,它把温度以及湿度的信号通过传感器进行变送,然后变化为一定的可变大小的电流,并接在单片机引脚上,需要单片机对这个电流进行识别,单兵机会根据电流的大小不同在内部读出温湿度的值。单片机内部对传感器的读取类似与adc的工作,也就是模拟电量转数字电量。从程序的角度来讲,我们需要先通过调用底层寄存器或通过调用库函数对单片机的引脚进行设置,stm32的引脚有八个模式分别为浮空输入,上拉输入,下拉输入,模拟输入,通用开漏输出,复用开漏输出,通用推挽输出,复用推挽输出。对传感器输入来说需要选用模拟输入,这就需要我们使用者对选定的引脚从程序上进行相关的定义,也就是在初始化程序中初始化串口时对相应串口设置成模拟输入。并且为了读取相关的电量需要在程序里设置相关的变量,在本次毕业设计中定义了两个八位的整形变量u8temperature和u8humidity如图4-1,然后需要利用相关库函数读取这个变量的数值,并用赋值语句把读取的数值赋给这个变量。这是单单从变量获方面讲程序,然而根据实际的设计要求,我们需要把环境的温度以及湿度通过传感器捕捉然后显示在LED显示屏上。一般对于STM32来说需要将数据显示在LED显示屏上时调用库函数LCD-ShowingString就可以了如图4-2所示。说道库函数LCD-图4-1两个八位的整形变量Figure4-1Integraldeformationoftwooctets图4-2库函数LCD-ShowingStringFigure4-2LibraryFunctionLCD-ShowingStringShowing的调用。我们可以通过图片看出在括号里有四个数字和一个变量前两个数字是所显示数据在LED显示屏上的坐标,两个数字分别为分别x坐标和y坐标。后两个数字是显示字体的宽度和高度。蓝牙模块程序实现蓝牙模块需要结合stm32的LED显示屏使用如图4-3,蓝牙模块HC05可以切换主从机模式,为了解当下是主机模式还是从机模式需要将相应的文字显示在LED上面。并且为了保证蓝牙模块的正常运行需要在LED上显示当前主机与从机连接的状态是连接的还是断开的。这些都需要调用LCD-ShowingString。如图4-4蓝牙模块函数为了显示HC05的连接状态需要根据库函数的标志位HC05_LED结合ifelse语句进行判断,即在if后面的括号里写入标志位HC05_LED,紧接着在后面加入LED的显示库函数语句LCD-ShowSstring显示Connect,然后在紧接着的else语句后面加入LED的显示库函数语句LCD-ShowSstring显示Disconnect。这个程序的逻辑是这样的,当蓝牙连接成功时标志位HC05_LED为一那么if语句的判断为真,执行下一条语句,相反执行另一条语句。如图4-4蓝牙模块函数为了显示HC05的连接状态需要根据库函数的标志位HC05_LED结合ifelse语句进行判断,即在if后面的括号里写入标志位HC05_LED,紧接着在后面加入LED的显示库函数语句LCD-ShowSstring显示Connect,然后在紧接着的else语句后面加入LED的显示库函数语句LCD-ShowSstring显示Disconnect。这个程序的逻辑是这样的,当蓝牙连接成功时标志位HC05_LED为一那么if语句的判断为真,执行下一条语句,相反执行另一条语句。图4-3LED显示屏Figure4-3LEDdisplay如图4-4蓝牙模块函数Figure4-4Bluetoothmodulefunction4.2小车循迹程序的实现小车的循迹程序先从小车与轨迹的循迹逻辑谈起小车循迹模块程序框图如图4-5,本次毕业设计的智能小车前方放了四个光电管作为对黑线轨迹的探测,首先根据光电管的原理当小车行驶时光电管下面如果没有黑线光电管通过一个电路板上的电路向单片机发送低电平,如果光电管下面有黑线那么光电管通过同一个电路板上的电路向单片机发送高点平。小车循迹部分编程就是要利用串口对这些单片机读取的电平内部程序一定的逻辑来决定单片机对L298N的控制输出,从而使小车沿轨迹行走。这次毕业设计所设计的小车所遵循的轨迹一条具有宽度的平行线,而四个光电管传感器的摆放是,从左到右依次排列,每两个光电管之间的距离与两条平行线的距离相等。这里我们用1号2号3号4号来对四个传感器进行编号。当2号管和3号管检测到线的颜色为黑色,而1号和4号管检测到线的颜色为白色时说明小车 图4-5小车循迹模块程序框图Figure4-5CarTrackingModuleProgramBlockDiagram此时完全对准跑道,所以小车应该直走为了方便对接下来程序的描述,把这种情况称为情况一。当只有小车1号传感器检测到的轨迹为黑色时,说明小车此时偏离轨道并且在轨道的右侧,并且偏离的很远,此时应该进行大幅度右转同样为了方便把这种情况称为情况二。当小车的1号传感器和2号传感器检车到的轨迹为黑色时,说明小车此时偏离轨道并且在轨道的右侧并且偏离的不远,此时应该进行小幅度右转同样为了方便把这种情况称为情况三。当只有小车4号传感器检测到的轨迹为黑色时,说明小车此时偏离轨道并且在轨道的左侧,并且偏离的很远,此时应该进行大幅度左转同样为了方便把这种情况称为情况四。当小车的3号传感器和4号传感器检车到的轨迹为黑色时,说明小车此时偏离轨道并且在轨道的左侧并且偏离的不远,此时应该进行小幅度左转同样为了方便把这种情况称为情况五。毕业设计单片机对循迹部分的编程与温湿度传感器及蓝牙模块同样要用到对串口的读取,所以我们在设置程序初始化时需要首先利用库函数调用底层寄存器设置特定串口相应的输入,输出状模式设定函数。对于图中第一行程序的解释是这样的,根据stm32芯片的结构,内部有两条内部总线APB1和APB2,其中APB1总线的操作速度比较慢仅限于36MHZ,APB2总线的操作速度比较快为全速72MHZ,而总线APB1和APB2分别负责了不同的传输功能,并且STM32的IO口功能正好在总线APB2下,所以使能IO口功能的函数里需要提到APB2。我们知道要使用串口就是说对串口进行输出或输入的检测这首先需要单片机来记录时序,也就是说需要单片机的内部时钟,如图4-6单片机串口时钟使能,即第一行程序中的ENABLE是使能的意思,它使能了GPIOA的时钟。从两图中的第一行程序可以看出使能的GPIO引脚标号,从两图的第二行程序可以看出GPIO引脚输出输入模式的设置,GPIOA被设置为浮空输入,GPIOG被设置为推挽输出,如图4-7GPIOA的使能和图4-8GPIOG的使能,两图中的第三条语句是对设置的GPIO进行初始化。可知本次毕业设计使用了GPIOA和GPIOG两组GPIO其中GPIOA包括四个IO口,GPIOG包括八个IO口,其中四个输入IO口在硬件上对应四个红外光电管的输入,八个IO口在硬件上对应输出八个电机的控制端口。图4-6单片机串口时钟使能Figure4-6ClockEnablationofSerialPortofSingleChipMicrocomputer图4-7GPIOA的使能Figure4-7EnablationofGPIOA图4-8GPIOG的使能Figure4-8EnablationofGPIOG从程序来说本次毕业设计需要把小车四对红外光电管传感器的经过电路的输出所对应的串口在程序内对应相应的整形变量(0或1)。当红外光电管传感器向单片机的引脚输出高电平时对应变量为1,当红外光电管传感器向单片机的引脚输出低电平时对应变量为0。那么如图程序一开始的初始化里先用state1=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_11);state2=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_14);state3=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_12);state4=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7);这四条语句完成了这一设置。程序中ReadInputDataBit是数据读的意思。这样就玩成了读取部分程序的设置,于是可以把四个光电传感器硬件与程序建立起来了联系。下面我们来谈及电机的控制程序部分逻辑。如图4-9电机模块函数设置了八个GPIOG的引脚为推挽输出模式,他们就对应电机模块相应的输出引脚我们根据上文对电机驱动逻辑部分的介绍,可以知道每一个电机有两个逻辑输入,而一共有四个电机,有八个引脚输入,因此程序中有相应八个GPIO口的设置。其中它们的逻辑输入一个为高一个为低时电机朝一个方向转动,当它们的逻辑输入高变成低,低变成高时电机向相反方向转动。因此我们需要做的就是操纵库函数来根据不同的行驶状态,对输出引脚进行不同的定义。如图4-9电机模块函数本次毕业设计的小车循迹程序部分分别用到了两个函数分别为GPIO_SetBits(GPIOG,GPIO_Pin_10);和GPIO_ResetBits(GPIOG,GPIO_Pin_12);其中的第一个语句为把相应的引脚设置成高电平,第二个语句为把程序的引脚设置成低电平。SetBits是设置引脚的意思引申为把相应引脚设置为高电平,ResetBits是重新设置引脚或取消引脚设置的意思引申为把引脚设置为低电平。显然我们需要利用ifelse语句的嵌套根据不同的循迹程序模块,比如左转,右转,前进,停车,把引脚的输入标志位和引脚的输出设置语句按一定逻辑来配合,从而完成小车循迹模块的编程。如图4-9电机模块函数程序为小车循迹模块中的前进模块,在检测到传感器传来的信号后,通过state1,state4为0,是state2,state3为1,可以了解到当前小车正前方的两个传感器压在黑线上,而两侧的传感器检测到了白色的地面。然后调用SetBit和RsetBit函数实现功能,首先令pin3,pin5,pin7,pin10为一,然后令品pin12,pin14,pin15,pin13,为零,因此前轮正放的两个电机正转,后轮反放的两个电机反转,小车向前行驶,但是这并不能很好的控制小车的速度,光靠这些函数也不能完成小车的弯道循迹。因此根据智能小车对速度和行驶稳定性的要求我们还需要加入一个设计延迟函数。在定义好相应端口的整形变量后,根据需要我们定义一个延迟函数,用于控制电机的转速。延迟函数的定义我在本次毕业设计中借鉴了STM32的毫秒级的延迟。接下来进入主函数其中防误触和电机的调速都用到了延迟函数,用ifelse和elseif语句进行嵌套。首先用if(s1==bai&&s4==bai&&s2==hei&&s3==hei)判断是否符合情况一,然后调用延时函数。然后在次用if(s1==bai&&s4==bai&&s2==hei&&s3==hei)判断是否符合情况,这种逻辑的设计的理由是因为,我们把小车行驶状态的开始阶段确定为在直线赛道上,然后为了保险我们需要间隔一定时间来检测两次赛道的状态是否符合情况一,这样做能避免红外光电管传感器因为误触而使其输入情况正好与情况一相同。这与本科阶段学习51单片机时学习的按键防抖功能有异曲同工之妙。按键防抖是为了防止误触的一种软件设计,在一定的时间间隔里单片机对按键的输出做了两次的检测,其中两次检测的间隔时间应该相对于高速的单片机内部时钟而言较长而远短于人手指按下按键的时间。这是因为除了人手指对按键的按下,暂时的抖动也会使按键的电路接通,而相对于人手指按下的时间而言抖动的时间比较短。间隔一定的时间间隔检测两次如果两次的检测结果皆为有按键按下,那么判断结果为人为按下,而非抖动。这样做自然根据适当延迟函数的延迟时间使单片机对按键的第二次检测结果跳过抖动的按下输入,从而确保了是人为的按下。在调用完电平的设置函数后,即使用了SetBit和ResetBit两个函数之后,我们需要调用延时函数,从而完成电机的调速。电机调速的方法是先让电机进行旋转然后,调用延时并使电机停转。这就需要在程序上调用延时然后在次使用ResetBit。把电机所有的逻辑引脚都拉低。然后为了判断相应的情况二,情况三,情况四,情况五,也应用到了ifelse语句的判断与情况一的判断十分类似。如图4-9电机模块函数Figure4-9MotorModuleFunction5经济技术分析本次毕业设计所设计的智能循迹小车在硬件上分别使用了一个STM32成品精英板,一个OLED显示屏,一个蓝牙HC05模块,一个DHT11温湿度传感器,一个四路循迹光电传感器,两个L298N电机驱动模块,12V1A电池三块。之所以在控制的芯片选型上选择STM32是考虑了整体工程的工程量与经济因素结合的原因。STM32芯片作为一款功能强大的芯片,对其的开发与工程实际问题中的利用比较成熟与普遍。并且购买成品的板子省去了焊板与设计及完成最小系统的过程。减小了工程的工程量。虽然其在价格上比较昂贵但是STM32成品板确实是一款功能强大的板子,其中芯片为STM32f10xZET6的一款更是集合了A-G多路IO口,便于工程的设计与改进。STM32板加ST-LINK仿真器的价格是226元,单独买板218元但是为了下载程序方便需买仿真器,如果加一个4.3寸电容屏需要另加184元,另加一个蓝牙模块需要92元,另加一个DHT11温湿度传感器5.3元。其中DHT11温湿度传感器在使用时又被烧坏的可能,因此需要购买两个一共10.6元。四路光电传感器是完成循迹小车循迹功能所必须的硬件,尽管其功能十分重要其价格相比于STM32板子以及OLED显示屏要便宜的很多,一共四路红外光电传感器加一个输入输出模块5.39元。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品小作坊卫生制度
- 卫生院物资出库制度
- 研发室打扫卫生制度
- 医院消毒室卫生管理制度
- 工程卫生用品管理制度
- 零售药店卫生管理制度
- 高三年级卫生管理制度
- 基层卫生院分级转诊制度
- 村社区环境卫生整治制度
- 咖啡厅打扫卫生制度
- 光化学和光催化反应的应用
- 中日友好医院公开招聘工作人员3人笔试参考题库(共500题)答案详解版
- VDA6.3-2016过程审核主要证据清单
- 办公耗材采购 投标方案(技术方案)
- 2020公务船技术规则
- 三片罐空罐检验作业指导书
- 四川峨胜水泥集团股份有限公司环保搬迁3000td熟料新型干法大坝水泥生产线环境影响评价报告书
- 开庭陈述事实举证范文(4篇)
- 管道焊接工艺和热处理课件
- 2023深圳工务署品牌名单
- 二年级下册课文快乐读书吧-神笔马良
评论
0/150
提交评论