两轮自平衡车制作与调试stm32 (balancs)

上传人:n**** 文档编号:96115297 上传时间:2019-08-24 格式:PDF 页数:51 大小:1.73MB
返回 下载 相关 举报
两轮自平衡车制作与调试stm32 (balancs)_第1页
第1页 / 共51页
两轮自平衡车制作与调试stm32 (balancs)_第2页
第2页 / 共51页
两轮自平衡车制作与调试stm32 (balancs)_第3页
第3页 / 共51页
两轮自平衡车制作与调试stm32 (balancs)_第4页
第4页 / 共51页
两轮自平衡车制作与调试stm32 (balancs)_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《两轮自平衡车制作与调试stm32 (balancs)》由会员分享,可在线阅读,更多相关《两轮自平衡车制作与调试stm32 (balancs)(51页珍藏版)》请在金锄头文库上搜索。

1、Balancs 手册V1.0 1 目录 前言.1 1Balancs 简介.2 2特色电路.4 2.1轻触按键开关电路4 2.2一键下载电路4 3实验详解.6 3.1KEYLED7 3.1.1硬件设计.7 3.1.2程序设计.7 3.1.3下载与测试.11 3.2BEEP12 3.2.1硬件设计.12 3.2.2程序设计.12 3.2.3下载与测试.14 3.3红外遥控实验15 3.3.1硬件设计.16 3.3.2软件设计.16 3.3.3下载与测试.22 3.4电机驱动与编码器23 3.4.1硬件设计.25 3.4.2程序设计.25 3.4.3下载与测试.33 3.5MPU6050-DMP.3

2、4 3.5.1硬件设计.34 3.5.2软件设计.34 3.5.3下载与测试.38 3.6蓝牙串口实验39 3.6.1硬件设计.39 3.6.2软件设计.39 3.6.3下载与测试.40 3.7小车站立42 3.7.1硬件设计.42 3.7.2软件设计.42 3.7.3下载与调试.44 2 3.8蓝牙控制小车行走46 3.8.1程序设计.46 3.8.2下载与调试.48 第 1页 共 48 页 前言前言 第一次,通过模块连接,做了一个平衡车,控制板、MPU6050、电机驱动、蓝牙,通 过杜邦线连接在一起, 这么多杜邦线, 显的很杂乱, 一根线连接错误, 全军覆没。 所以 Balancs 孕育而

3、生。 为什么起一个 Balancs 这个错误单词的名字?而不是 Balance?板子上集成做平衡车所 需的所有模块,引出电机驱动接口,插上电机线,就可实现平衡车驱动功能。除此之外,引 出蓝牙接口,方便扩展蓝牙通讯功能;引出 GPIO 端口,轻松实现实验扩展;还引出 2 组传 感器端口,方便连接传感器。Balancs 也可直接安装在 3 轮或 4 轮车底盘上,可以轻松实现 对小车的驱动与控制。 本手册只对 Balancs 的硬件进行说明并进行相关实验,并未对 STM32 的工程创建进行 说明,如您对 STM32 陌生,请先阅读“STM32 核心板资料”。 第 2页 共 48 页 1Balancs

4、 简介简介 Balancs 是一个综合性平台,外观小巧,尺寸只为 6cm*9cm,却集成 MPU6050 和电机 驱动模块,是做小车的不二之选。下面我们就来详细介绍一下: 图 1.1Balancs 配置 1.USB 转串口转串口 Balancs 板载 MicroUSB 座,设计为 MicroUSB,目的在于提高资源利用率、减少资源浪 费。市面上的多数安卓手机使用 MicroUSB,所以安卓的手机用户很容易就得到 MicroUSB 线。MicroUSB 连接 PL2303,从而实现 USB 转串口,实现对单片机的下载。 2.电源指示灯电源指示灯 插入 USB 时,电源指示灯亮起;接入电源,按下

5、ON/OFF 按键,电源指示灯亮起,再 次按下熄灭。 3.DC 电源座电源座 电压范围 7V12V,最高电压不可超过 15V。 4.ON/OFF 电源开关按键电源开关按键 该开关用于控制 Balancs 的电源,当接线座连接电源时,按下开关,系统得电;再次按 下,系统断电。不可控制 USB 端电源。 5.复位按键复位按键 用于复位 STM32,板上标识为 RESET。 6.KEY 用于人机交互输入,此按键直接连接在 STM32 PA5 端口上,按下,输出低电平,标识 为 KEY。 7.STM32 启动配置选择启动配置选择 板载启动模式选择开关,STM32 有 BOOT0(B0)和 BOOT1(

6、B1)两个启动选择引脚, 用于选择复位后 STM32 的启动模式,我们可以通过指拨开关选择 STM32 启动模式。推上 为高电平。 第 3页 共 48 页 表 1:启动模式设置 BOOT1BOOT2启动模式说明 0X用户闪存存储器用户闪存存储器,也就是 FLASH 启动 10系统存储器系统存储器启动,用于串口下载 11SRAM 启动SRAM 启动,用于在 SRAM 中调试代码 8.MPU6050 MPU6050 是全球首例整合性 6 轴运动组件,相对于多组件方案,免除了组合陀螺仪和 加速度时间轴差问题, 减少了大量的包装空间。 此芯片用于测量 3 轴的加速度与角速度数据, 为平衡车提供数据依据

7、。 9.红外传感器红外传感器 实现红外遥控功能。 10.传感器接口传感器接口 接口顺序为 GVS,方便连接不同的传感器。S 端分别对应 PB8、PB9。 11.蜂鸣器蜂鸣器 此蜂鸣器为 3.3V 无源蜂鸣器, 根据 IO 输出不同占空比的 PWM, 可以发出不同的响声。 可以用作小车状态输出,输出不同的声音,便表示不同的状态。 12.GPIO 引出引出 IO 口口 顺序引出 IO 端口,可以用这些端口,便捷扩展其他实验。 13.电源输出(电源输出(3.3V) 一组3.3V电源输出排针, 方便给传感器提供3.3V稳压电源 (最大电流不可超过500ma) 。 14.电机驱动端口电机驱动端口 快速便

8、捷的连接 371 电机,实现对电机的控制与速度检测,标识为 J1、J2。端口功能从 左往右依次为电机两级、编码器 A 相、编码器“+”、编码器 B 相、编码器“-”。编码器 “+”、“-”端电压为 3.3V。 15.电机驱动电机驱动 此芯片为 TB6612,相对于传统 L298N 效率更高,体积也大幅减小。使用它可以轻松实 现电机的调速与换向。 16.PL2303 USB 转串口芯片,从而可以使用 USB 下载代码。 17.串口串口 2 用于扩展蓝牙模块(或其他串口设备),使 Balancs 具有无线通讯功能,实现与手机的 通讯。接口顺序为 GND、3V3、GND、U2TX、U2RX、NC,不

9、同蓝牙模块引出的顺序不同, 连接时需注意接口顺序。 18.STM32F103RBT6 Balancs 的核心芯片, 型号为: STM32F103RBT6。 该芯片具有 20K SRAM、 128K FLASH、 3 个普通的 16 位定时器、 一个 16 位的高级定时器、 2 个 SPI、 2 个 IIC、 3 个串口、 1 个 USB、 1 个 CAN、2 个 12 位的 ADC、51 个通用 IO 口。 第 4页 共 48 页 2特色电路特色电路 在这一节向大家介绍 Balancs 中两个特色电路,一个是轻触按键开关电路,利用轻触按 键完成自锁开关功能;还有一个是一键下载电路,点击“开始编

10、程”,就能完成下载,不再 需要配置 BOOT。 2.1轻触按键开关电路轻触按键开关电路 图 2.1轻触按键开关电路 通过双 MOS 管实现低功耗双稳态电路,用双稳态电路实现按键控制负载开关电路。 AO3401 的作用是,当只使用 USB 供电时,Q3 导通,系统得电;当接线端子 J10 供电 时,Q3 截止,高电压不灌入 USB 电源,从而可以保证两电源同时供电,且不影响 USB 功 能。 2.2一键下载电路一键下载电路 在上一章中我们提及 STM32 启动配置选择,B0、B1 同时接 GND,正常启动模式,从 flash 加载代码。B0 接 3.3V,B1 接 GND,则为 ISP 模式(串

11、口更新代码)。 我们使用 mcuisp 给单片机下载程序,在使用时,我们要进行如下配置,“DTR 的低电 平复位,RTS 高电平进 Bootloader”,如下图 2.2 所示。结合图 2.3 一键下载电路,来分析: 如何实现一键下载。 Mcuisp 控制 DTR 的输出为低电平, 则 DTR_N 的输出为高电平, 然后 RTS 置高, RTS_N 输出低电平,这状况下 Q4、Q5 导通,BOOT0(B0)被拉高,RESET 被拉低,系统复位; “延时 100 毫秒,DTR 电平变高(+3+12V)释放复位”,此时 DRT_N 输出低电平,Q5 截止,完成复位;“RTS 维持高”,RTS_N

12、继续保持低,Q4 保持导通状态,BOOT0 一直 被拉高,接着“开始连接”,mcusip 开始给 STM32 下载,从而实现一键下载,再也不需手 动配置 B0、B1,给电路下载与调试带来极大的便捷。 第 5页 共 48 页 图 2.2ISP 配置 图 2.3一键下载电路 第 6页 共 48 页 3实验详解实验详解 通过上一章的学习,对 Balancs 有了详细的了解,下面我们将通过一个个实验,来循序 渐进深入了解每个功能模块的使用。并通过这些实验,逐步了解平衡车的制作流程,直到小 车站立,并能够通过蓝牙,对小车实现前后左右停的控制。 第 7页 共 48 页 3.1KEYLED 通过本节的学习,

13、将了解 STM32 的 IO 口作为输出和输入的配置方法,通过按键 KEY 来改变 LED 状态。按下一次,改变一次状态。 3.1.1硬件设计硬件设计 硬件电路已在 Balancs 上设计完成, KEY 连接 PA5, 输入低电平有效, 灯 L 连接在 PD2, 输出低电平有效。 LED 电路中还有一个“POWER”,用作指示电源,只要系统得电,POWER 就被点亮, 图 3.1.1KEY 与 STM32 原理图 图 3.1.2L 与 STM32 原理图 3.1.2程序设计程序设计 创建 led.c 文件,并输入如下代码: #include #include “led.h“ /* Copyri

14、ght (C), 2015-2025, YFRobot. File:LED 驱动代码 Author:pinggaiVersion:1.0Data:2015/05/06 Description: Balance-STM32 LED 驱动代码 */ /初始化 PD2 为输出口.并使端口时钟 /LED IO 初始化 void LED_Init(void) RCC-APB2ENR|=1CRL GPIOD-CRL|=0X00000300;/PD.2 推挽输出 第 8页 共 48 页 GPIOD-ODR|=1 #include “key.h“ #include “delay.h“ /* Copyrigh

15、t (C), 2015-2025, YFRobot. File:KEY 驱动代码 Author:pinggaiVersion:1.0Data:2015/05/06 Description: Balance-STM32 KEY 驱动代码 */ /按键初始化函数 /PA5 设置成输入 void KEY_Init(void) RCC-APB2ENR|=1CRL/PA5 设置成输入 GPIOA-CRL|=0X00800000; GPIOA-ODR|=1 #include “sys.h“ #include “usart.h“ #include “delay.h“ #include “led.h“ #include “key.h“ /* Copyright (C), 2015-2025, YFRobot. File:按键应用 Author:pinggaiVersion:1.0Data:2015/05/06 Description: 按键扫描,按键按下,LED 状态改变 *

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号