两轮平衡小车说明书 下载本文

理想状态下,当M(车体重力)的方向与H(车轮支持力)的方向相差180°时,系统此时受力平衡,可以达到稳定不倒的状态,θ角度为0°。但自然界存在各式各样的干扰,θ角度总不为0,只要产生θ角,即使角度很小,M的方向与H的方向亦产生了角度,合力不为0,根据牛顿运动定律可知,θ角度将越来越大,直至车体倾倒在地上。 2.2 平衡的方法

从以上分析可得,导致车体倾倒的最大因素是θ角度的产生,因此,欲使小车平衡,需要消除θ或者将θ角度控制在一个足够小的范围内。其整体控制环路图3所示。

θ不为零车体倾斜转动车轮θ变小θ=0车体平衡 图3 小车平衡原理流程图

消除θ角度的有效方法,是通过电机的转动,带动车体下部的移动,以保持与车体上部在一水平垂直线上。

三.系统方案分析与选择论证 3.1 系统方案设计 3.1.1 主控芯片方案

方案一:采用意法半导体(ST)公司的STM32单片机作为主控芯片。此芯片是以ARM的Cortex-M系列为内核的单片机,相对其他单片机,外设丰富,主频高,价格便宜,有专门的软件库,操作简单,调试方便,低功耗。强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。

方案三:采用宏晶科技有限公司的STC12C5A60S2增强型51单片机作为主控芯片。此芯片内置ADC(模数转换)和IIC总线接口,且内部时钟不分频,可达到1MPS。性价比低。

考虑到此系统的复杂度,需要与传感器进行IIC通讯,输出灵活可控制的PWM信号,以及进行大量的数学运算。从性能和价格上综合考虑选择方案一,即用STM32作为本系统的主控芯片,由于外设比较简单,只需要IIC和PWM通道,因此具体型号定位为STM32RBT6。 3.1.2 姿态检测传感器方案

方案一:使用加速度传感器进行倾角。重力加速度传感器(g-sensor)能过输出以其芯片为中心的三轴加速度,通过这三个轴的重力加速度便可以计算出芯片的倾角,即车体的倾角。该方案的优点是重力加速度的静态性能很好,在车体静态下能测出准确稳定的倾角,而在动态下,三轴加速度各轴会受到其它加速度的影响,导致其数据并不稳定可靠。

方案二:使用陀螺仪传感器进行测量。陀螺仪传感器能输出围绕以芯片为中心的三个轴的角速度,通过读角速度的积分,即可得出倾角。该方案的优点是陀螺仪的动态性能很好,在动态下测出的角速度没有太多的混杂成分,缺点是陀螺仪具有静态漂移,即静态下,陀螺仪仍然会输出数值,而积分却一直在进行,因此静态时,测出来的角度并不是0°。

方案三:加速度传感器与陀螺仪传感器结合,通过融合算法,提取出加速度传感器的静态效果和陀螺仪的动态效果。优点是能测出准确稳定的倾角,但融合算法比较复杂。

综上考虑,由于准确稳定的倾角正是本文要讨论的话题,因此最终选择方案三,即加速度传感器与陀螺仪传感器数据融合测量倾角。并为了简化电路,最终选择了均为IIC接口的陀螺仪传感器L3G4200和加速度传感器ADXL345。 3.1.3 电机选择方案

方案一:步进电机。步进电机的选择角度正比于脉冲数,有较宽的调速范围,可以采用开环方式控制;步进电机有较大的输出转矩;有优秀的起制动性能;控制精度较高,误差不会累积。但是步进电机步距角固定,分辨率缺乏灵活性,而且步进驱动时容易造成车体震荡,不利于小车的稳定。步进电机虽然可以使用细分驱动方式克服上述缺点,但是细分驱动电路结构复杂,而且功耗增大不适合用于电池供电的应用上。

方案二:直流有刷电机。直流有刷电机具有机械特性硬,响应速度快,调速

范围宽的特点,满足两轮自平衡小车对灵敏性、快速性等要求,虽然电机的电刷会是电机的寿命缩短,还会引发电磁干扰。但是由于本设计负载较轻,换向器和电刷的损耗较低。小车采用多层机械结构,电机驱动电路与其他电路分离,有效降低电磁干扰。

综上所述,本设计使用两个6V带有减速齿轮的直流有刷电机驱动两轮自平衡小车。

3.2 系统最终方案

使用STM32RBT6为主控芯片,通过IIC接口读取陀螺仪传感器L3G4200和加速度传感器ADXL345的数据,再将两者数据融合测出小车的姿态,最终通过PID输出PWM电机控制信号,由电机驱动完成对电机的控制。此外,为了调试方便,除了设计了上述给模块外,还扩展了JLINK接口,使用的是SWD模式,用于仿真调试,同时扩展了串口电路,在系统运行时将需要观察的数据通过串口传输到电脑上,以记录数据和绘出数据波形,查看滤波和PID效果。系统方框图如图4所示。

图4系统方框图

四.主要芯片介绍和系统模块硬件设计

4.1.STM32单片机简介(stm32rbt6)

主控模块的STM32单片机是控制器的核心部分。该单片机是ST意法半导体

公司生产的32位高性能、低成本和低功耗的增强型单片机,它的内核采用ARM公司最新生产的Cortex—M3架构,最高工作频率可达72MHz,256K的程序存储空间、48K的RAM,8个定时器/计数器、两个看门狗和一个实时时钟RTC,片上集成通信接口有两个I2C、3个SPI、5个USART、一个USB、一个CAN、两个和一个SDIO,并集成有3个ADC和一个DAC,具有80个I/0端口。STM32单片机要求2.0~3.6V的操作电压(VDD),本设计采用5.0V电源通过移动电源给单片机供电。

4.2.陀螺仪传感器

陀螺仪可以用来测量物体的旋转角速度。本设计选用MPU-6050。MPU-60X0 是全球首例9 轴运动处理传感器。它集成了3 轴MEMS 陀螺仪,3 轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP(Digital Motion Processor),可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其I2C 或SPI 接口输出一个9 轴的信号(SPI 接口仅在MPU-6000 可用)。MPU-60X0 也可以通过其I2C 接口连接非惯性的数字传感器,比如压力传感器MPU-60X0 对陀螺仪和加速度计分别用了三个16 位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±500,±1000,±2000°/秒(dps),加速度计可测范围为±2,±4,±8,±16g。一个片上1024 字节的FIFO,有助于降低系统功耗。和所有设备寄存器之间的通信采用400kHz 的I2C 接口或1MHz 的SPI 接口(SPI 仅MPU-6000 可用)。对于需要高速传输的应用,对寄存器的读取和中断可用20MHz 的SPI。另外,片上还内嵌了一个温度传感器和在工作环境下仅有±1%变动的振荡器。芯片尺寸43430.9mm,采用QFN 封装(无引线方形封装),可承受最大10000g 的冲击,并有可编程的低通滤波器。关于电源,MPU-60X0 可支持VDD 范围2.5V±5%,3.0V±5%,或3.3V±5%。另外MPU-6050 还有一个VLOGIC 引脚,用来为I2C 输出提供逻辑电平。VLOGIC 电压可取1.8±5%或者VDD。 4.3.TB6612

由于TB6612相对于传统的L298N效率上提高很多体积上也大幅度减少,在额定范围内,芯片基本不发热,所以我们设计的时候选择了这款芯片。