基于STM32控制的双轮自平衡小车的设计

2018-10-23 12:12李帅男
现代工业经济和信息化 2018年13期
关键词:陀螺仪加速度计中断

李帅男

(吉林化工学院, 吉林 吉林 132000)

引言

随着嵌入式技术,微电子技术和控制算法的进步,智能化越来越成为当今社会发展的风向标,而两轮自平衡车正是其中的一个热点。在世界各个国家中,不论是高校、实验室、商业公司,两轮自平衡小车的研究越来越多,因为不管是在民用,科研还是军用方面其有着巨大的应用前景,在民用方面,电动两轮代步平衡车已经投放市场,走入用户家庭中,它绿色环保,转弯控制方便,无刹车系统,占用地方小,正是这些优势改变着人们的出行方式;在科研方面,有些在很特殊复杂的空间下,比如狭小、危险、黑暗的环境,两轮小车可以更加利用自己的优势来代替人们执行特殊的任务[1]。

2 系统硬件系统

2.1 STM32f103c8单片机简介

STM32f103是意法半导体公司新推出的新一代增强型32位芯片,它高度集成且容易开发,它采用的是高性能的RISC内核,运行频率是72 MHz,内部放置了高性能的存储圣杯,有128 kB闪存,2万字节的静态随机存储器,很多的输入输出引脚和2个外围总线的外部设备。这个系列的所有型号都有2个12位的模数转换器,还有三个16位的定时器,1个脉冲宽度调节定时器,还有很多快速和通用制度的接口用于传输信息,两个串行工作总线和串行外设接口,3个全双工通用同步/异步串行收发模块,1个通用串行总线接口和1个控制器局域网络接口。供电电压在2.0~3.6 V之间,工作温度在-40~85 ℃之间[2]。

2.2 MPU6050姿态传感器简介

MPU6050内含有三轴的Micro-Electro-Mechanical System微机电系统陀螺仪,三轴的微机电系统加速度计,还有可以不断扩充的数字运动处理器件Digital Motion Processor,使用同步串行总线可以通信其它的数字型模块,陀螺仪和加速度计都有3个数模转换器,因为测量的是模拟量,通过数模转换器,可以变为数字量,因为要捕捉速度不定的移动状态,操控者需要选择不同的范围,陀螺仪和加速度计的选择范围非常丰富,每个有四个梯度[3]。MPU6050如图1所示。

图1 MPU6050示意图

2.3 电机驱动模块TB6612FNG

在本次设计中用TB6612FNG模块作为直流电机的驱动模块,它对电机有很好的控制和保护作用,可以随意调节电流大小,避免了冲击电流对电机绕组的影响,控制非常方便,调速很快捷,这款芯片的集成程度都非常的高,驱动能力也是非常强悍,运行速度快,能耗方面也非常优秀[4]。在众多型号中,它有着出色的性价比优势,也很适合本次平衡小车的设计,所以选用此款芯片。

3 系统软件设计

如图2所示,给主控板供电后,程序开始运行,运行内容分为两个方面,一部分是应用到模块的初始化还有一部分是应用程序的初始化。第一部分是系统所有部分的初始化运行,所有的程序由MCU烧录工具MCU-ISP提供产生。另一部分是各个应用模块的初始化,是对所有程序中要使用到的变量值进行初始赋值。

图2 系统程序流程图

初始化工作完成后,中断程序运行,可以把定时中断定为5 ms,中断开始后,中断子程序开始运行,这时可以调整优先级调用各个其它程序块的函数,中断的运用是系统程序运行的重点所在。在中断子程序中,MCU通过IIC与MPU6050进行通讯,可以快速得到双轮车的加速度值和角速度值,对从姿态模块传送来的角度信息使用PID算法进行分析与计算后,将程序运算结果通过PWM与I/O口的高低电平输出电机驱动模块再输送到电机,可以实现对小车的闭环直立控制。

4 结语

系统的硬件系统以意法半导体公司的STM32f103c8T6为控制核心,使用MPU6050检测小车的车身姿态,通过TB6612FNG驱动两个直流减速电机,使双轮小车平衡直立。软件系统设计中,根据单片机使用手册设置各个寄存器;根据IIC总线协议编写通信程序,并且根据芯片说明配置MPU6050芯片。使用互补滤波融合加速度计与陀螺仪数据并实现角度控制。使用PID算法计算角度控制与速度控制的最终输出量。最终实现了对双轮自平衡小车的平衡控制,使得小车在没有外力干扰下能自主实现直立。

猜你喜欢
陀螺仪加速度计中断
基于EMD的MEMS陀螺仪随机漂移分析方法
加速度计在精密离心机上的标定方法与误差分析
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试
我国著名陀螺仪专家——林士谔
跟踪导练(二)(5)
千里移防,卫勤保障不中断
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
基于遗传算法的加速度计免转台标定方法
微机械陀螺仪概述和发展