资源描述
摘 要本实验重要分析把握对象的智能车基于STM32F103的设计。智能系统的构成重要涉及STM32F103控制器、伺服驱动电路、红外检测电路、超声波避障电路。本实验采用STM32F103微解决器作为核心芯片,速度和转向的控制采用PWM技术,跟踪模块、检测、障碍物检测和避免功能避障模块等外围电路,实现系统的整体功能。小车行驶时,避障程序跟踪程序,具有红外线跟踪功能的汽车检测电路。然后用颜色传感器辨认物体的颜色和抓取。在硬件设计的基本上提出了实现伺服控制功能,简朴的智能车跟踪和避障功能的软件设计和控制程序,在STM32集成开发环境IAR编译,并使用JLINK下载程序。核心词:stm32;红外探测;超声波避障;颜色传感;舵机控制ABSTRACTThis experiment mainly analyzed the grasping object intelligent car based on STM32F103 design. The composition of the intelligent system mainly includes STM32F103 controller, servo drive circuit, infrared detection circuit, ultrasonic obstacle avoidance circuit. This test uses the STM32F103 microprocessor as the core chip, the speed and steering control using PWM technology, tracking module and detection, obstacle avoidance module for obstacle detection and avoidance function, other peripheral circuit to achieve the overall function of the system. The car is moving, obstacle avoidance procedures prior to tracking program, car tracking function with infrared detection circuit. Then use color sensor to recognize object color and grab. On the basis of the hardware design is proposed to realize the servo control function, simple intelligent car tracking and obstacle avoidance function of the software design, and the control program is compiled in the STM32 integrated development environment IAR, and download the program using Jlink.Keywords:STM32; infrared detection; ultrasonic obstacle avoidance; color sensing; steering control 目 录第一章 绪论11.1研究意义概况11.2研究思路1第二章 硬件设计部分22.1中央解决模块22.1.1 stm32f103内部构造32.1.2 stm32最小系统电路设计32.1.3 stm32软件设计的基本思路62.2 避障模块设计62.2.1 避障模块器件构造及其原理72.2.2 HC-SR04模块硬件电路设计82.3循迹模块设计92.3.1 循迹模块构造及其原理92.3.2 循迹模块电路设计11第三章 软件调试及实物展示123.1 程序仿真123.2 程序下载123.3 实物展示13第四章 总结14致 谢15参照文献16第一章 绪论1.1研究意义概况智能小车通过多种感应器获得外部环境信息和内部运动状态,实目前复杂环境背景下的自主运动,从而完毕具有特定功能的机器人系统。而随着智能化电器时代的到来,它们在为人们提供的舒服的生活环境的同步,也提高了制造智能化电器对于人才规定的门槛。智能小车是集成了多种高新技术,它不仅融合了电子、传感器、计算机硬件、软件等许多学科的知识,并且还波及到当今许多前沿领域的技术,它是一种国家高科技技术水平的重要体现。通过建立起简易智能小车的设计,引导学生从理论走向实践,培养同窗们的动手能力,使同窗们在理解智能化电器的工作原理的基本上,还使同窗们获得完毕整体项目的能力,并掌握了Stm32开发板的编程原理,为同窗们进入ARM领域提供了基本。此外,本次课程设计,使同窗们理解自己的局限性之处,从而使同窗们有目的的提高自己的能力。国外研究概况:上世纪50年代初,国外就有智能车辆的研究,从90年代开始,智能车辆的研究就进入了系统化、大规模的研究阶段。特别突出的是美国卡内基-梅陇大学机器人研究所已经完毕了Navlab系列的自主车辆的研究,这一研究成果代表了国外智能车辆的重要研究方向。国内研究概况:国内对于智能车辆的研究较晚,始于上世纪80年代,并且目前大部分还是使用入门级别的51单片机进行设计与研究的,为了弥补与国外研究的差距,开设了全国大学生电子设计竞赛。1.2研究思路系统将采集的传感器信号送入stm32微控制器中,stm32微控制器根据采集的信号做出不同的判断,从而控制舵机运动方向和运动速度。系统以stm32微控制器为核心,通过传感器采集不同的信号做出判断,继而变化电机的运动方向和运动速度。实验系统构造如图1.1所示:舵机驱动电路图1.1 实验系统构造图第二章 硬件设计部分智能小车控制系统具有了障碍物检测、自主避障、自主循迹等功能。相应的控制系统重要由如下四个模块构成:避障模块、循迹模块、电机驱动模块、中央解决模块四个模块构成,系统总体框架如图2.1所示:图2.1 系统框架图我们本节重要任务是理解各个模块的功能,掌握各个模块所使用的器件的使用措施,并可以编写相应的程序代码。掌握各个模块的功能。2.1中央解决模块在人类身体构造中,大脑可以根据各个器官所传播的信息做出相应的行为动作用以保证人体所必须的生理原料,而stm32解决器之于智能小车就相称于大脑之于人类,它可以从各个模块之间获得数据,并对所传播的数据进行实时解决,来驱使电机模块做出相应的行为动作。由ARM公司设计的基于ARMv7架构的Cortex系列的原则体系构造在推出,此构造是用来满足日渐复杂的不同性能规定的软件设计,根据所面向的领域,Cortex系列可以分为A、R、M三个分工明确的系列1。Stm32解决器的浮现为微控制系统、工业控制系统、汽车车身系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能系统提供了基本,使编程的复杂性,集高性能、低功耗、低成本大大简化,并使它们融为于一体2。意法半导体ST公司作为一种半导体制造厂商,是ARM公司Cortex-M3内核开发项目一种重要合伙方。6月11日由ST公司率先推出的基于Cortex-M3内核的STM32系列微控解决器研发而出。此中,A系列是面向复杂的尖端应用程序,用于运营开放式的复杂操作系统;R是Real的首字母缩写,是面向实时系统开发的;M是Mirco的首字母缩写,专门面向低成本的微控制领域开发研究。因此,Cortex-M3解决器是由ARM公司设计的首款基于ARMv7-M体系构造的32位原则解决器,它不仅具有低功耗、少门数等长处,并且还具有短中断延迟、低调试成本等众多长处,使它在众多的解决器中脱颖而出。目前为止,STM32系列解决器暂分为2个系列。其中,STM32F101系列是原则型系列,工作频率设定在36MHZ;STM32F103系列是增强型系列,工作频率设定在72MHZ,其带有更多片内RAM和更丰富的外设资源。这两个系列的产品在软件和引脚封装方面具有兼容性,并且拥有相似的片内Flash资源,使软件的开发和升级更加以便。本次实验,我们使用的是stm32f103解决器。2.1.1 stm32f103内部构造STM32F103系列微解决器是首款基于ARMv7-M体系构造的32位原则RISC (精简指令集)解决器,具有执行代码效率高,外设资源丰富等众多长处。该系列微解决器工作频率设定在72MHz,高达128K 字节的内置Flash存储器存储器 存储器是用来存储程序和数据的部件,有了存储器,计算机才有记忆功能,才干保证正常工作。它根据控制器指定的位置存进和取出信息。 全文和20K 字节的SRAM,以便程序编写,并且具有丰富的通用I/O 端口。其内部构造图如图2.2所示:图2.2 内部构造图Stm32解决器主系统重要由4个被动单元和4个驱动单元构成。4个驱动单元是:通用DMA1,通用DMA2,内核DCode总线和系统总线。4个被动单元由APB桥,APB设备,内部Flash闪存,内部SRAM、FSMC。我们实验所采用的芯片具有64KBSRAM、512KBFLASH、2个基本定期器,4个通用定期器,2个高档定期器,3个SPI,2个IIC,5个串口,1个USB,1个CAN,3个12位的ADC,1个12位DAC、1个SDIO接口,1个FSMC接口以及112个通用I/O口。2.1.2 stm32最小系统电路设计Stm32的最小系统电路重要由系统时钟电路、实时时钟电路、JTAG调试接口电路,复位电路和启动模式选择电路构成。最小系统电路原理图如图2-1-3所示:图2.3 最小系统电路原理图重要电路原理图的设计及功能如下所示: 1.系统时钟电路系统时钟电路重要作用是提供节拍,就相称于人类的心脏跳动,随着心脏的跳动,血液就会达到全身部位,因此系统时钟的重要性就不言而喻啦。系统时钟的电路设计如图2.4所示:图2.4 系统时钟电路图在时钟电路中,我们选用8M的晶振。2.复位电路 复位电路的设计如图2.5所示:图2.5 复位电路图本次实验所采用的开发板为低电平复位。如图所示,当按键悬空时RST输入为高电平,当按键按下时,RST脚输入为低电平,从而电路复位。3.JTAG电路 JTAG电路原理图如图2.6所示:图2.6 JAG电路原理图JTAG的重要功能是使目的文献烧到核解决器中。4.启动模式电路 启动模式电路原理图如图2.7所示:图2.7 启动模式电路原理图通过设立BOOT1:0引脚可以选择三种不同启动模式,启动模式如表2-1所示:表2-1 启动模式表启动模式选择引脚启动模式阐明BOOT1BOOT0X0主闪存存储器主闪存存储器被选为启动区域01系统存储器系统存储器被选为启动区域11内置SRAM内置SRAM被选为启动区域2.1.3 stm32软件设计的基本思路在对其她模块设计之前,我们必须理解stm32的编程规则。任何解决器,涉及stm32解决器,想要解决器完毕某项相应的动作,就必须对解决器的寄存器进行操作。例如,我们在单片机C51中,同样,我们在stmM32的开发中过程中,我们同样可以对寄存器直接操作:GPIOx-BRR=0x0011。 (x可以是A,B,C,D,E例如GPIOA就是端口A)但是,对于stm32这种级别的解决器,几百个寄存器记起来谈何容易。因此,ST(意法半导体)提出了固件库的概念,运用固件库进行编程。固件库的本质就是函数的集合,固件库将那些寄存器的底层操作都封装起来,提供一整套API供开发者使用。例如,上面通过控制BRR寄存器来控制电平的变化,官方库封装了一种函数:Void GPIO_ResetBits(GPIO_TypeDef * GPIOx,uint16_t GPIO_Pin)GPIOx-BRR = GPIO_Pin; (x可以是A,B,C,D,E例如GPIO_A就是端口A)通过使用GPIO_ResetBits()函数就可以直接对寄存器进行操作了。2.2 避障模块设计在人类身体构造系统中,眼睛可以使我们非常以便的采集到外界环境的信息,然后把信息及时的传播到大脑,并对外界环境信息的变化做出相应的解决。而对智能小车来说,避障模块之于小车就相称于眼睛之于人类。避障模块可以采集外部地形数据,然后把所采集的地形数据传播到中央解决模块,从而实现规避障碍的功能。避障模块所采用的器件在市场中有许多类型,例如红外检测,光位移检测,超声波检测等。本次实验我们使用的是HC-SR04超声波检测,超声波由于具有检测能力强,传播途径宽,因此我们决定使用HC-SR04器件。在使用HC-SR04模块进行超声波测距的同步,我们可以使用舵机进行辅助。舵机的重要作用是变化HC-SR04模块的照射方向,从而控制超声波的发射方向。在程序编写过程中,如果小车前方碰见障碍时,我们可以直接控制舵机的转向,而小车的车身可以保持不变,在测量结束后,小车再做相应的动作。2.2.1 避障模块器件构造及其原理HC-SR04超声波测距模块测量范畴在2cm-400cm之间,可以实现无接触式测距功能。HC-SR04超声波测距模块由一种超声波发射器、一种超声波接受器和控制电路构成,避障模块的实物构造图如图2.17所示:图2.17 实物正背面构造图如构造图所示VCC提供5v电源,GND为接地线,TRIG为触发信号线,ECHO为回向信号输出线。基本原理如下:采用IO口TRIG触发测距,给至少10us的高电平信号,在TRIG触发沿到来后,超声波发射器会自动发出8个40KHz的方波,并且检测与否有信号返回,当超声波接受器接受到超声波时,表白有信号返回,通过IO口ECHO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。因此测量距离=(高电平持续时间*340m/s)/2。测量时序图如图2.18所示:图2.18 超声波时序图我们根据时序图,可以编写相应的程序代码。为了避免发射信号对回向信号的影响,我们的测量周期不易过小。并且由于HC-SR04的感应角度不不小于15,因此测距时,为了避免发射信号丢失,我们规定被测物体的面积不应不不小于0.5平方米,否则也许导致测量成果不精确。舵机在避障模块的重要作用前面已经提到,本节重要解说舵机的工作特性。舵机的实物图如图2.19所示:图2.19 舵机实物图舵机的工作工作原理是stm32微解决器发出数据给舵机,舵机内部有一种基准电路,它会产生周期为20ms,宽度为1.5ms的基准信号,它将微解决器传播的直流偏置电压与电位器的电压数据进行比较,获得电压差输出。经由电路板上的IC判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同步由位置检测器送回反馈信号。舵机的转动角度与stm32所提供的PWM信号有关。原则信号PWM周期为20ms,理论上来讲脉宽为12ms,实际我们的脉宽为0.52.5ms,脉宽与所转的角度一一相应。角度与脉宽的相应图如图2.20所示:图2.20 舵机角度与脉宽相应图2.2.2 HC-SR04模块硬件电路设计超声波模块硬件原理图如下图所示:图2.21 超声波硬件原理图HC-SR04模块重要由发射器、接受器和部分电路构成。在此实验中,我们只需简朴理解电路的设计,对于其基本原理可以不用过多涉猎,我们只需明白它们的工作原理,并且可以简朴运用即可。2.3循迹模块设计这节要完毕的任务是使小车沿着黑带运动。要想使小车沿着黑带运动,必须使小车感应到黑迹在什么地方,然后让小车的中央解决单元驱动硬件电路完毕相应的行为动作。循迹模块的设计就是使小车能精确的辨认黑带的轨迹。小车的中央解决模块从循迹模块获得数据,然后中央解决模块根据采集的数据驱动电机模块完毕相应的动作。考虑到成本和操作,本实验使用的红外探测器。2.3.1 循迹模块构造及其原理红外探测器(IR)是由红外发射管、红外接受管和部分电路构成。要做到4路循迹,需要使用4个独立的红外探测器器件。我们使用的IR5是一种集成模块,这个集成模块由5个红外探测器构成。其中中间的1个IR探测器在本实验中并未使用。红外循迹模块实物图如图2.27所示:图2.27 红外模块正背面本实验使用的IR5集成模块是由5个相似的IR探测器电路构成的,因此我们只需要理解一种IR探测器的工作原理即可。我们懂得IR探测器是由红外发射管、红外接受管和部分电路构成。基本原理是红外发射管发射红外光经地面反射,在黑色区域红外光被吸取,在非黑色区域红外光被反射,红外接受管根据反射光的强度为比较器提供模拟量,从而输出相应的电平量。其单个IR探测器电路原理图如图2.28所示:图2.28 IR探测器电路原理图根据原理图详解下IR探测器的工作原理:VCC为模块提供电源,是IR探测器工作的前提条件,红外发射管DF2发射红外光达到“地面”,经反射后红外光会达到DS2红外接受管,由于不同颜色的地面会对光的吸取有着不同的效果,因此发射后的光的强度也会不同,反射强度不同,LM339的5脚会输入一种变化的电压量,LM339是一种电压较器,当LM339的“+”端输入信号不小于“-”端的比较信号后,LM339的输出端截止,在外部的上拉电源的作用下,使IR探测器的输出端输出+5v的电压。同理,在“+”端电压不不小于“”端电压时,LM339输出端电压饱和使IR探测器输出为低电压。因此可以通过调节R2的电阻值,变化比较电压的大小即“”端电压的大小,从而控制探测的距离。R4是整个正反馈电路的重要构成部分,由于“+”输入端电压会常常发生在比较电压附近扰动的现象,这些微小的扰动都会导致输出端的巨大变化,因此,我们采用正反馈的方式避免这种现象的发生。加入R4电阻,就成为人们所说的“施密特触发器”,其特性图如图2.29所示:图2.29 施密特触发器特性图当输入端的电压发生转化时,只要在比较电压值附近的干扰不超过du之值,输出的电压就不会变化。R4正反馈的引入,不仅提高了电路的解决速度,并且可以免除由于寄生电路耦合而产生的自己震荡。但是,在提高电路的解决速度的同步,带来的缺陷就是辨别率减少,由于只要在du附近输出的电压值就不会变化。2.3.2 循迹模块电路设计IR5探测器的集成模块的电路原理图如图2.30所示:图2.30 红外循迹模块电路图第三章 软件调试及实物展示上文提到了各个模块的电路设计及其程序设计,本章就根据各个模块的电路设计进行相应的编程。我们使用IAR软件进行程序仿真,然后使用Jlink软件把我们得到的目的文献烧到解决器中,即程序下载。3.1 程序仿真IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,提供的产品和服务波及到嵌入式系统的设计、开发和测试的每一种阶段,涉及:带有C/C+编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。软件IAR的操作主界面如图3.1所示:图3.1 IAR主界面 3.2 程序下载串口下载软件使用Jlink,该软件属于第三方软件,由单片机在线编程网提供,该硬件如图3.2所示:图3.23.3 实物展示智能抓物小车硬件如图3.3所示;图3.3第四章 总结本文制定了具体的设计方案,并按照此方案逐渐完毕了电路原理图的设计以及软件程序的设计。本文的重点是基于stm32微解决器为核心,添加其她外围电路为辅助,并且加载必要的程序设计,使小车实现抓物功能。整个智能小车系统以stm32微解决器为核心,外围电路涉及避障电路、循迹电路、颜色辨认、舵机驱动电路等,这些外围电路通过stm32微解决器结合起来,使得各个模块在保证工作精确性的同步,提高了小车的智能化。报告一方面分析了研究智能小车的研究意义,对于本次研究的必要性进行了可行性分析。然后分析了国内外的研究概况,最后再此基本上提出了设计思路与程序流程,对于设计思路进行了可行性的分析。接着分别简介了各个模块的硬件设计方案以及软件设计方案。在硬件设计方案中涉及对各个硬件电路所采用的器件进行分析和对硬件电路的设计分析,从而决定器件的使用方案,以及硬件电路图的设计。而在软件设计方案中,我们只分析软流程件设计,以拟定相应的程序编码。最后我们对软件、硬件进行测试,对于软件测试,我们使用IAR软件进行程序仿真,验证了系统的稳定性和实用性。在本方案中,由于受到所采购的硬件模块尺寸的影响,循迹模块在进行工作的时候,受到外部影响的因素很大。在本次实验设计中,由于循迹探头的安装距离小车车轮很近,当循迹探头采集数据传播到CPU时,小车已经向前行驶了一段时间。假设小车的转弯时间为T,小车的转弯时的速度为V,我们要保证小车转弯的路程不超过额定值S,那么就有公式VT=S。要解决此问题,在程序设计的时候会给出参数。在本次实验中,器件的物理尺寸限制了小车转弯敏捷度的最大值,因此本实验的循迹模块不是很抱负,总的来说,设计方案是完善的,基本上达到了设计所规定的目的。致 谢从课程开始到目前,半学期的学习和锻炼,使我的课程设计基本完毕。在这期间,我在所学的基本知识之上,去接触stm32,在接触之初,我不断的遇到问题,而我也懂得不经一番寒彻骨,哪的梅香扑鼻来的道理,最后我克服了种种困难,不仅使自己的知识更加牢固,并且也锻炼了自己的心性。固然以上所有成绩的获得都离不开教师和同窗的协助。我一方面要感谢的是我的学院,为我提供了一种良好的学习环境,固然,尚有我的指引教师,我非常感谢她在我课程设计的整个过程中始终予以的热情指引和督促,对我提出的疑惑耐心地指点,她的指点是我克服困难、完毕设计的重要因素。同步我还要感谢王昭宁同窗和我一起努力完毕本次设计,最后也要感谢其她各位教师和同窗的不吝指教。这次课程设计中,我不仅收获了知识、能力,也深刻的体会到了师情和友谊的贵重。参照文献1 杜春雷.ARM体系构造与编程M.北京:清华大学出版社,-02-012 姚文详,宋岩.ARM Cortex-M3权威指南M.北京:北京航空航天大学出版社,-073 范书瑞.Cortex-M3嵌入式解决器原理与应用M.北京:电子工业出版社,-01-01 4 李宁.基于MDK的STM32解决器开发应用M.北京:北京航空航天大学出版社,:1-260.5 刘军,张洋.原子教你玩STM32M.北京:北京航空航天大学出版社,-05-016 彭刚,秦志强.基于ARM Cortex-M3的STM32系列M.北京:电子工业出版社,-017 张自强,晏英俊.基于stm32的步进电机转速控制实验设计J.实验室科学,-12,13(6):59-618 周柱,孟文,田环宇.基于stm32智能小车设计J.技术与市场,-06,18(6):1-2
展开阅读全文