ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:3.30MB ,
资源ID:1811890      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1811890.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于stm32的智能小车设计-毕业论文.docx)为本站会员(滴答)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于stm32的智能小车设计-毕业论文.docx

1、基于 stm32 的智能小车设计- 1 -摘要本次试验主要分析了基于 STM32F103 微处理器的智能小车控制系统的系统设计过程。此智能系统的组成主要包括 STM32F103 控制器、电机驱动电路、红外探测电路、超声波避障电路。本次试验采用 STM32F103 微处理器为核心芯片,利用 PWM 技术对速度以及舵机转向进行控制,循迹模块进行黑白检测,避障模块进行障碍物检测并避障功能,其他外围扩展电路实现系统整体功能。小车在运动时,避障程序优先于循迹程序,用超声波避障电路进行测距并避障,在超声波模块下我们使用舵机来控制超声波的发射方向,用红外探测电路实现小车循迹功能。在硬件设计的基础上提出了实现

2、电机控制功能、智能小车简单循迹和避障功能的软件设计方案,并在 STM32 集成开发环境 Keil 下编写了相应的控制程序,并使用 mcuisp 软件进行程序下载。关键词:stm32;红外探测;超声波避障;PWM;电机控制基于 stm32 的智能小车设计- 2 -AbstractThis experiment mainly analyzes the control system of smart car based on microprocessor STM32F103 system design process. The composition of the intelligent syste

3、m mainly including STM32F103 controller, motor drive circuit, infrared detection circuit, circuit of ultrasonic obstacle avoidance. This experiment adopts STM32F103 microprocessor as the core chip, using PWM technique to control speed and steering gear steering, tracking module is used to detect the

4、 black and white, obstacle avoidance module for obstacle detection and obstacle avoidance function, other peripheral extended circuit to realize the whole system function. When the car is moving, obstacle avoidance program prior to tracking, using ultrasonic ranging and obstacle avoidance obstacle a

5、voidance circuit, we use steering gear under ultrasonic module to control the emission direction of ultrasonic, infrared detection circuit is used to implement the car tracking function. On the basis of the hardware design is proposed for motor control function, simple intelligent car tracking and o

6、bstacle avoidance function of software design, and in the STM32 integrated development environment under the Keil. Write the corresponding control program, and use McUisp program download software.Keywords:STM32;Infrared detection;Ultrasonic obstacle avoidance;PWM;Motor control基于 stm32 的智能小车设计- 3 -目

7、录1.绪论 .- 4 -1.1 研究概况 .- 4 -1.2 研究思路 .- 4 -2.软硬件设计 .- 5 -2.1 中央处理模块 .- 5 -2.1.1 stm32f103 内部结构 .- 6 -2.1.2 stm32 最小系统电路设计 .- 7 -2.1.3 stm32 软件设计的基本思路 .- 9 -2.1.4 stm32 中断介绍 .- 9 -2.1.5 stm32 定时/计数器介绍 .- 11 -2.1.6 主程序设计流程图 .- 12 -2.2 电机驱动模块 .- 13 -2.2.1 驱动模块结构及其原理 .- 13 -2.2.2 驱动模块电路设计 .- 13 -2.2.3 驱动

8、软件程序设计 .- 14 -2.3 避障模块设计 .- 18 -2.3.1 避障模块器件结构及其原理 .- 19 -2.3.2 HC-SR04 模块硬件电路设计 .- 21 -2.3.3 HC-SR04 模块程序设计 .- 21 -2.4 循迹模块设计 .- 28 -2.4.1 循迹模块结构及其原理 .- 28 -2.4.2 循迹模块电路设计 .- 30 -2.4.3 红外循迹模块程序设计 .- 30 -3.软件调试 .- 33 -3.1 程序仿真 .- 33 -3.2 程序下载 .- 34 -4.系统测试 .- 35 -基于 stm32 的智能小车设计- 4 -5.总结 .- 37 -致谢

9、.- 39 -参考文献 .- 40 -附录 .- 41 -1.绪论智能小车通过各种感应器获得外部环境信息和内部运动状态,实现在复杂环境背景下的自主运动,从而完成具有特定功能的机器人系统。而随着智能化电器时代的到来,它们在为人们提供的舒适的生活环境的同时,也提高了制造智能化电器对于人才要求的门槛。智能小车是集成了多种高新技术,它不仅融合了电子、传感器、计算机硬件、软件等许多学科的知识,而且还涉及到当今许多前沿领域的技术,它是一个国家高科技技术水平的重要体现。通过建立起简易智能小车的设计,引导学生从理论走向实践,培养同学们的动手能力,使同学们在了解智能化电器的工作原理的基础上,还使同学们获得完成整

10、体项目的能力,并掌握了 Stm32 开发板的编程原理,为同学们进入 ARM 领域提供了基础。另外,本次课程设计,使同学们了解自己的不足之处,从而使同学们有目标的提升自己的能力。1.1 研究概况国外研究概况:上世纪 50 年代初,国外就有智能车辆的研究,从 90 年代开始,智能车辆的研究就进入了系统化、大规模的研究阶段。尤其突出的是美国卡内基-梅陇大学机器人研究所已经完成了 Navlab 系列的自主车辆的研究,这一研究成果代表了国外智能车辆的主要研究方向。国内研究概况:我国对于智能车辆的研究较晚,始于上世纪 80 年代,而且现在大部分还是使用入门级别的51 单片机进行设计与研究的,为了弥补与国外

11、研究的差距,开设了全国大学生电子设计竞赛。1.2 研究思路基于 stm32 的智能小车设计- 5 -系统将采集的传感器信号送入 stm32 微控制器中,stm32 微控制器根据采集的信号做出不同的判断,从而控制电机运动方向和运动速度。系统以 stm32 微控制器为核心,通过传感器采集不同的信号做出判断,继而改变电机的运动方向和运动速度。实验系统结构如图 1.1 所示:传 感 器 传 感 器 采样 传 感 器 电路 STM32主控 制 器 电 机 驱 动电 路图 1.1 实验系统结构图2.软硬件设计智能小车控制系统具备了障碍物检测、自主避障、自主循迹等功能。相应的控制系统主要由以下四个模块组成:

12、避障模块、循迹模块、电机驱动模块、中央处理模块四个模块组成,系统总体框架如图 2.1 所示:图 2.1 系统框架图我们本节主要任务是了解各个模块的功能,掌握各个模块所使用的器件的使用方法,并能够编写相应的程序代码。掌握各个模块的功能。2.1 中央处理模块在人类身体结构中,大脑可以根据各个器官所传输的信息做出相应的行为动作用以保证人体所必须的生理原料,而 stm32 处理器之于智能小车就相当于大脑之于人类,它可以从各个模块之间获得数据,并对所传输的数据进行实时处理,来驱使电机模块做出相应的行为动作。由 ARM 公司设计的基于 ARMv7 架构的 Cortex 系列的标准体系结构在 2006 年推

13、出,此结构是用来满足日渐复杂的不同性能要求的软件设计,根据所面向的领域,Cortex 系列可以分为 A、R、M 三个分工明确的系列 1。Stm32 处理器的基于 stm32 的智能小车设计- 6 -出现为微控制系统、工业控制系统、汽车车身系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能系统提供了基础,使编程的复杂性,集高性能、低功耗、低成本大大简化,并使它们融为于一体 2。意法半导体 ST 公司作为一个半导体制造厂商,是 ARM 公司 Cortex-M3 内核开发项目一个主要合作方。2007 年 6 月 11 日由 ST 公司率先推出的基于 Cortex-M3 内核的 STM32

14、 系列微控处理器研发而出。此中,A 系列是面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R 是 Real 的首字母缩写,是面向实时系统开发的;M是 Mirco 的首字母缩写,专门面向低成本的微控制领域开发研究。因此,Cortex-M3 处理器是由 ARM 公司设计的首款基于 ARMv7-M 体系结构的 32 位标准处理器,它不仅具有低功耗、少门数等优点,而且还具有短中断延迟、低调试成本等众多优点,使它在众多的处理器中脱颖而出。目前为止,STM32 系列处理器暂分为 2 个系列。其中,STM32F101 系列是标准型系列,工作频率设定在36MHZ;STM32F103 系列是增强型系列,工

15、作频率设定在 72MHZ,其带有更多片内 RAM 和更丰富的外设资源。这两个系列的产品在软件和引脚封装方面具有兼容性,并且拥有相同的片内 Flash 资源,使软件的开发和升级更加方便。本次试验,我们使用的是 stm32f103 处理器。2.1.1 stm32f103 内部结构STM32F103 系列微处理器是首款基于 ARMv7-M 体系结构的 32 位标准 RISC (精简指令集)处理器,具有执行代码效率高,外设资源丰富等众多优点。该系列微处理器工作频率设定在 72MHz,高达 128K 字节的内置 Flash 存储器和20K 字节的 SRAM,方便程序编写,而且具有丰富的通用 I/O 端口

16、。其内部结构图如图 2.2 所示:基于 stm32 的智能小车设计- 7 -图 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 个

17、SDIO 接口,1 个 FSMC 接口以及 112 个通用 I/O 口。2.1.2 stm32 最小系统电路设计Stm32 的最小系统电路主要由系统时钟电路、实时时钟电路、JTAG 调试接口电路,复位电路和启动模式选择电路组成。最小系统电路原理图如图 2-1-3 所示:基于 stm32 的智能小车设计- 8 -图 2.3 最小系统电路原理图主要电路原理图的设计及功能如下所示:1.系统时钟电路系统时钟电路主要作用是提供节拍,就相当于人类的心脏跳动,随着心脏的跳动,血液就会到达全身部位,所以系统时钟的重要性就不言而喻啦。系统时钟的电路设计如图 2.4 所示:图 2.4 系统时钟电路图在时钟电路中,

18、我们选用 8M 的晶振。2.复位电路复位电路的设计如图 2.5 所示:基于 stm32 的智能小车设计- 9 -图 2.5 复位电路图本次试验所采用的开发板为低电平复位。如图所示,当按键悬空时 RST 输入为高电平,当按键按下时,RST 脚输入为低电平,从而电路复位。3.JTAG 电路JTAG 电路原理图如图 2.6 所示:图 2.6 JAG 电路原理图JTAG 的主要功能是使目标文件烧到核处理器中。4.启动模式电路启动模式电路原理图如图 2.7 所示:图 2.7 启动模式电路原理图通过设置 BOOT1:0引脚可以选择三种不同启动模式,启动模式如表 2-1 所示:表 2-1 启动模式表基于 s

19、tm32 的智能小车设计- 10 -启动模式选择引脚BOOT1 BOOT0 启动模式 说明X 0 主闪存存储器 主闪存存储器被选为启动区域0 1 系统存储器 系统存储器被选为启动区域1 1 内置 SRAM 内置 SRAM 被选为启动区域2.1.3 stm32 软件设计的基本思路在对其他模块设计之前,我们必须了解 stm32 的编程规则。任何处理器,包括 stm32 处理器,想要处理器完成某项相应的动作,就必须对处理器的寄存器进行操作。比如,我们在单片机 C51 中,同样,我们在 stmM32 的开发中过程中,我们同样可以对寄存器直接操作:GPIOx-BRR=0x0011。 (x 可以是 A,B

20、,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.1.4 stm32 中断介绍本方案中,我们要使用 stm32 的中断,在程序设计中,我们要开启各个管道的中断,打开各个中断通道,配置中断方式,我们先来讲述下 stm32 单片机的中断机制。结构图如下所示:

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。