郭海丽
(衡水学院电子信息工程学院,河北衡水 053000)
如今的自平衡车已成为人们出行的交通工具,平衡车涵盖了嵌入式技术和现代工业设计技术,是电子技术的结晶。平衡车可以在很小空间中运作,也可以成为出行的代步工具,其具有低功耗、环保、方便、高效等特点,受到人们越来越广泛的关注。自平衡车没有其他交通工具的固有机械构造,通过软件程序与硬件结合的方式实现其稳定性,所用算法多种多样,实现的效果越来越显著。双轮自平衡车将单片机技术、自动控制及控制算法有机的结合到一起,是研究控制程序以及传感器应用的理想平台。本设计通过利用STM32 主控芯片和MPU6050 芯片,实现两轮小车的自平衡,并通过2.4G 无线传输模块实现对小车方向的控制。
通过改变所用电机的转动速度及方向实现小车的自平衡,而且可以用无线遥控进行控制,达到以下要求。
(1)可通过串口屏对小车状态进行无线调节,控制小车运动。
(2)用可调电阻控制小车上机械臂的运动,用来拿取并放置物体。
以稳定、安全、可靠为设计原则。平衡车已逐渐进入人们的生活,所以其车体的稳定性至关重要,其他一切操作都要在保证车体稳定的前提下进行,在设计时要保证车体重心在车轮中轴线上。同时提高对角度测量的准确性,以此保证车体的稳定。随后完成小车的前后运动及对机械臂抓取物体的控制等。
小车整体从机械结构上看,自下而上依次为电机驱动层、应用控制层、整体受力层。电机驱动层直接控制电机轮子的运动,驱动电机使其实现正反转及加减速,以此来达到小车的平衡状态。当然电机驱动层只是被动接受命令,真正的指令由控制层发出。它通过安装在小车车体及车轮电机上的传感器来获取到小车当前的状态。经处理运算后发出正确的命令来驱动电机运动,所以该层为小车控制的核心。受力层顾名思义为整个车体的承重部分。受力层如果稳定坚固,小车本身能承载的重量也越重。
该系统以STM32F103RCT6 单片机为整个系统的核心,通过集成加速度与角度的六轴传感器MPU6050 来获取小车当前状态。MPU6050 该芯片采用IIC 通信,减少STM32 芯片IO 口的占用。小车整体主要由主控部分、电源模块、无线传输模块、六轴传感器姿态采集模块、平衡相关驱动等组成。系统结构框图如图1 所示。
主控芯片和周围器件组成的电路是控制的核心。其作用相当于人类的头脑,一切命令都由它传递。本设计所用的主控芯片是STM32F103RCT6。单片机最小系统由复位、下载、系统时钟及整流滤波等4 部分组成。
图1 系统整体结构
本系统采用12 V 可充电锂电池组进行供电,通过降压模块逐级降压,得到系统各模块的工作所需电压。各模块之间电压不同,电机运转所需要的电压为12 V,显示电路、舵机驱动芯片需要5 V 电压驱动,STM32 需要3.3 V 的电压。因此为避免各电源间互相干扰,设计中采取了电容滤波措施。
NRF24L01 无线通信模块的通信方式为SPI 通信,该模块功耗非常低,且对环境要求相对较小。处于发射模式时,工作电流仅为9 mA;处于接收模式时,工作电流为12.3 mA。由于此模块对电源及信号要求较高,所以在供电部分及天线端添加滤波电容。保证信号传输的可靠性。另外,该芯片天线周围不能有金属(敷铜、走线等),NRF24L01 模块电路如图2 所示。
图2 NRF24L01 模块电路
本设计中的MPU6050 传感器是整个设计尤为重要的一部分,相当于人的双眼,用于获取当前车体的状态,它的准确程度直接决定小车整体的稳定性。其中INT 引脚每5 ms 产生一次中断,将其直接接入单片机IO 口,为程序提供5 ms 间隔的中断。通过IIC 接口直接输出经过处理的四元数,无需额外转换,使用起来更加方便,MPU6050 传感器电路如图3 所示。
图3 MPU6050 传感器电路
软件设计部分主要由MPU6050 芯片、人机交互界面、数据采集、电机驱动等构成。软件部分通过MPU6050 每5 ms 提供的外部中断执行控制函数。本设计软件总体流程如图4 所示,系统上电后先执行初始化。然后进入主循环。一旦有外部中断产生,则开始检测处理,控制电机保持小车平衡,驱动舵机控制机械臂运动。
图4 系统软件流程
本设计以STM32F103RCT6 单片机为主控芯片,实现了对小车的平衡控制;且可以用遥控控制小车运动,及机械臂抓取物体的功能。上电后小车保持平衡状态,用手轻轻推动小车,车体经过晃动后仍能保持平衡状态。通过无线遥控发送前进后退指令控制小车,小车在接收到命令后可以做出正确的响应。同时也可用遥控分别控制车上4 个舵机的运动,来抓取物体。经过多次反复的测试,小车平衡性良好,对遥控指令可以及时准确地做出响应,整体系统稳定性强,具有一定的实际应用价值。