纪伟1,曾宪阳2,左翠翠2,李士垚3

(1.南京工程学院 自动化学院,江苏 南京,211167;2.南京工程学院 工业中心,江苏 南京,211167;3.南京工程学院 电力工程学院,江苏 南京,211167)

:当前市场上已有的平衡车需要站在车上操作遥杆来进行控制,应用范围小,因此设计了以STM32单片机作为主控芯片,配合Android上位机进行远程控制的系统。车载摄像头传感器和温湿度传感器可以实时记录周边环境情况,促使相应处理机制对环境做出应答,保证使用者拥有一个更加安全、可靠、使用寿命更长的可远程控制自主平衡车。实验结果表明,设计的两轮自平衡车平衡稳定性好,抗干扰能力强,能实现Android系统的远程平衡控制。

:STM32单片机;Android系统;远程控制;自平衡车;摄像头

:U283.1文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.02.027

引用格式:纪伟,曾宪阳,左翠翠,等.基于STM32与Android系统远程控制的两轮自平衡车设计[J].微型机与应用,2017,36(2):90-92,99.

0引言

*基金项目:江苏省高等学校大学生实践创新训练计划项目(201411276041Y)当前,随着传感器技术的发展,平衡车越来越被广泛地应用于交通、安保、巡查等方面[12]。作为一种新的交通、安保等行业方面的工具,平衡车不仅在稳定性上有着较高的要求,还在远程遥控、实时监控方面有着迫切的需要。本文设计一种基于远程Android上位机客户端进行操控的平衡车,使其能在远程驾驶、安保、巡查等方面有着更广泛的应用。

1系统设计思路

1.1系统原理分析[3 4]

平衡车的力学原理类似于倒立摆的力学原理,如图1所示,根据分析得平衡车的回复力算式:

mgsinθ-macosθ≈mgθ-mk1θ

其中k1为负反馈控制下车轮加速度a与偏角θ的比例因子。忽略空气阻力及摩擦力,得出下式:

F=mgθ-mk1θ-mk2θ′

其加速度a为:

a=k1θ k2θ′

θ为车模倾角,θ′是角速度,所以只要得到倾角和角速度就可以推算出车模的加速度,从而得到对应的占空比的PWM波,对平衡车进行准确的控制。

1.2系统整体的设计思路

系统选用STM32单片机作为主控芯片,采集并处理摄像头传感器、编码器、温湿度传感器以及上位机发送的指令,将数据处理后通过无线视频传输模块发送到上位机,使用基于Android手机系统的APP进行远程控制和远程处理数据,以提高系统的自主性、安全性、可靠性。系统整体设计框图如图2所示。

2硬件电路设计

2.1STM32单片机最小系统电路设计

本系统选用ST公司生产的STM32F103C8T6单片机作为主控单元[5],主频高达72 MHz,可以输出多路PWM信号,片内集成外设资源丰富。其最小系统电路如图3所示,包含了外部时钟电路、复位电路、OLED显示电路和按键交互电路。

stm32两轮平衡车教程(基于STM32与Android系统远程控制的两轮自平衡车设计)(1)

2.2电机驱动模块的电路设计

本文设计的L298N电机驱动模块电路如图4所示[67],该模块由12 V供电,输出5 V。可以输入4路PWM信号,2路使能信号,完全满足控制平衡车两个轮子正反转的实际需求。

stm32两轮平衡车教程(基于STM32与Android系统远程控制的两轮自平衡车设计)(2)

2.3WiFi视频传输模块的设计

系统设计了RobotLink V5.0 WiFi模块,300 Mb/s带宽的OPENWRT路由器,该模块相当于一个服务端,开放了TCP连接,接入外网后可以通过网络进行视频传输,工作稳定,视频清晰。使用者可以通过手机APP或者PC端的上位机程序通过TCP协议来获取摄像头所拍摄视频。

2.4传感器模块电路的设计

为满足平衡车倾角检测需要,使用六轴传感器MPU6050来检测倾角[8],该芯片内部有16位的AD转换器,16位数据的输出,供电3~5 V,标准的I2C通信协议。MPU6000系列整合了3轴陀螺仪、3轴加速器运动处理(DMP)硬件加速引擎,由主要I2C端口以单一数据流的形式向应用端图5MPU6050传感器模块电路

输出完整的9轴融合演算技术。也可以自行进行数据解算,得到稳定的角度值,设计的电路如图5所示。

stm32两轮平衡车教程(基于STM32与Android系统远程控制的两轮自平衡车设计)(3)

2.5温湿度传感器模块的设计

为满足设计需要,系统还配备了温湿度传感器DHT11[910],可以检测周围环境的湿度和温度,湿度测量范围:20~95 %RH(0~50℃范围),湿度测量误差:±5%,温度测量范围:0~50℃,温度测量误差:±2℃,以数字量形式输出。DHT11不仅可以适应正常的平衡车的工作环境,而且单总线的设计方式节约了IO口,有助于简化电路设计,设计的电路原理图如图6所示。

stm32两轮平衡车教程(基于STM32与Android系统远程控制的两轮自平衡车设计)(4)

2.6电源模块的设计

由于电机的驱动会对电路稳定性产生较大的干扰,以及WiFi视频传输模块需要稳定的1 A电流,综上考虑本系统的电源电路采用多电源设计方式,既有效地隔离了电机对电路的影响,又能提供给WiFi模块稳定的输入电流,增强了系统运行的稳定性。图7为系统电源模块供电分配方式图。

stm32两轮平衡车教程(基于STM32与Android系统远程控制的两轮自平衡车设计)(5)

3软件程序设计

3.1姿态解算与数据滤波[11 13]

由于陀螺仪数据随着时间的累积会产生误差,姿态解算主要就围绕着对陀螺仪的长期误差进行补偿,首先将加速度计采集到的值转化成单位向量,也就是向量除以模,传入参数是陀螺仪X、Y、Z三轴的数值以及加速度的X、Y、Z三轴的数值,通过四元数计算出上一次重力的单位向量,由于向量的误差就是向量的叉积,计算出加速度表示的重力的单位向量与四元素得到的重力单位向量进行叉积得到重力的误差,将误差进行积分并且补偿到陀螺仪,使用一阶龙格库塔方法求解四元数,最后根据四元数与欧拉角的关系求解出欧拉角。得到欧拉角之后将数据进行滤波处理,尝试使用互补滤波、卡尔曼滤波和DMP,最后发现卡尔曼数据跟随性满足要求,稳定性很好。

卡尔曼滤波前后波形如图8所示,从图中可以看出滤波前数据干扰较大,存在诸多不稳定信号,经过卡尔曼滤波之后波形较为平滑,稳定性得到很大提高,对后期PID控制提供了保障。

stm32两轮平衡车教程(基于STM32与Android系统远程控制的两轮自平衡车设计)(6)

3.2控制算法设计

系统控制流程如图9所示。

stm32两轮平衡车教程(基于STM32与Android系统远程控制的两轮自平衡车设计)(7)

本系统使用了应用非常广泛的PID调节控制算法[1415],系统分为三环控制,分别是:直立环、速度环和转动环。顾名思义:直立环就是保持车体的状态,采用PD调节控制算法,但是单一的直立环很难维持车体在外界干扰的情况下依旧保持直立,所以引入了速度环,速度环使用PI控制器,是对编码器读出的数据信号进行控制,其积分量可以保持小车停在原地不动。转向环由于对精度要求并不是很高,使用了单独的P控制。在三个环的配合下最终实现了小车的平稳站立行走。

3.3系统软件设计

本系统使用MPU6050的中断引脚10 ms作为系统的采样周期,一周期内采集一次传感器的数据并进行姿态解算输出欧拉角,然后通过滤波算法进行数据处理。紧接着读取左右轮编码器得到当前小车的速度值,读取温湿度传感器的值,判断当前环境温湿度是否适合平衡车的放置,并将数据通过OLED显示在界面上,将得到角度、角速度、期望角度、左右轮编码器的值以及上位机的控制数据等值带入PID控制器里,得到输出PWM的占空比值。WiFi视频传输模块会不断采集摄像头的视频数据通过TCP协议发送出去。使用者可以通过TCP协议来获取小车的视频并且实现远程控制小车。

3.4PID参数整定

对于平衡车来说最重要的是直立环,所以必须先调节直立环,直立环使用了PD控制器,先调试P参数,从小到大,直到刚开始出现了震荡,增大参数D以消除震荡。速度环使用了PI控制器,参数P可以增强平衡车回中的能力,参数I可以对其进行细调。转向环是保证小车能够水行驶,使用P控制器,逐渐修改参数直到小车可以保持水平,停在原地。

4结论

本文实现了两轮平衡车的稳定站立,并且能够通过Android客户端程序进行远程的视频传输和远程控制,视频质量清晰,远程控制稳定性高。平衡车无需使用者随时携带,只要打开APP,可以操控平衡车到达任何你想要去的地方,可用于日常的交通、安保、巡查等多方面无人操作领域。

参考文献

[1] 段其昌, 袁洪跃, 金旭东. 两轮自平衡车无速度传感器平衡控制仿真研究[J]. 控制工程, 2013, 20(4): 618 622.

[2] 张晓华, 张志军. 自平衡式两轮电动车耦合控制研究[J]. 控制工程, 2013, 20(1):26-29.

[3] 李晓峰, 崔云飞, 高学山,等. 小摆角两轮机器人动力学建模及控制器设计[J]. 北京理工大学学报, 2014,34(10):1049-1053.

[4] 马思远, 鲁庭勇, 张丽君. 两轮自平衡车运动姿态的测量和控制[J]. 测控技术, 2015, 34(4):71-73.

[5] 陈致远,朱叶承,周卓泉,等.一种基于STM32的智能家居控制系统[J].电子技术应用,2012,38(9):138-140.

[6] 雷红淼, 程耀瑜. 基于L298N的直流电机驱动电路优化设计[J]. 数字技术与应用, 2012(2):118-118.

[7] 康华光.电子技术基础[M].北京:高等教育出版社,2003.

[8] 赖义汉, 王凯. 基于MPU6050的双轮平衡车控制系统设计[J]. 河南工程学院学报(自然科学版), 2014, 26(1):53-57.

[9] 韩丹翱, 王菲. DHT11数字式温湿度传感器的应用性研究[J]. 电子设计工程, 2013, 21(13):83-85.

[10] 李长有, 王文华. 基于DHT11温湿度测控系统设计[J]. 机床与液压, 2013, 41(13):107108.

[11] 周立青, 章研, 安舒,等. 基于硬件Kalman滤波器的航拍云台姿态获取[J]. 电子技术应用, 2014, 40(10):93-95.

[12] 郑慧伟, 崔坤. 卡尔曼滤波在二轮自平衡车直立控制中的应用[J]. 微型机与应用, 2014, 33(17):95-97.

[13] 樊炳辉, 张凯丽, 王传江,等. 基于四元数的前臂假肢手部自平衡的设计[J]. 电子技术应用, 2016, 42(5):78-81.

[14] 李世光,王文文,申梦茜,等.基于变论域模糊PI四轮机器人的仿真与研究[J].科学技术与工程,2016,16(10):191-194.

,