作者:内蒙古科技大学 李孙华 任玉龙 田志强
指导老师:王永平
作品简介:
开发背景
近年来,随着移动平衡机器人研究不断深入、应用领域更加广泛,所面临的环境和任务也越来越复杂。机器人经常会遇到一些比较狭窄,而且有很多大转角的工作场合,如何在这样比较复杂的环境中灵活快捷的执行任务,成为人们颇为关心的一个问题。而且语言控制成为了一种自然、和谐、方便,更符合未来人们的控制思想,使人们更能自如的人机交互。同时由于它具有体积小、运动灵活、零转弯半径等特点,将会在军用和民用领域有着广泛的应用前景。因为它既有理论研究意义又有实用价值。
功能与使用说明
作品通过IAP15F2K61S2单片机做控制,加速度计、陀螺仪检测小车姿态,编码器检测小车速度,加速度与陀螺仪的值经过数据融合得到小车平滑的角度和角速度,应用PID控制小车平衡,编码器的值采用卡尔曼滤波使数据平滑,应用PI控制其能够运动, 上位机是在微软公司的语音识别包的基础上,以电脑为载体,通过语音来控制下位机。充分的展现了人机交互的功能特点。
平台选型说明:
IAP15F2K61S2 Microsoft Visual Studio 2010
设计说明:
本作品分为上位机和下位机两部分,二者之间通过无线模块传输数据。
1.上位机部分
上位机是基于Microsoft VS 2010开发平台,微软公司的语音识别包的基础上,用C#语言编写的控制台应用程序,用户可以对其发布指令来控制下位机相应运动。
1.1登录界面
需要提供帐号密码验证的界面,有控制用户权限、记录用户行为,保护操作安全的作用。
1.2主控界面
主要有我们实验室信息,可以对串口进行显示和配置,同时对串口的工作状态显示监控。
2.下位机部分
下位机是两轮自平衡小车,以IAP15F2K61S2为主控制器,主要是把高度不稳定系统控制平稳,同时接收上位机传来的命令,控制其前进、后退、左转、右转。其中主要有
(一) 硬件部分:IAP15F2K61S2主控板、无线串口传输模块、加速度
陀螺仪一体姿态检测模块、高精度编码器模块、PWM扩展模块、L298大功率驱动、大扭矩减速电机,
(二) 软件部分: 直立控制部分、速度控制部分 与上位机接口函数
2.1硬件部分
2.1.1主控板
主控板是与IAP15F2K61S2为核心,扩展了出I/O口,增加了运行状态的显示灯、源开关、下载口等外设,方便控制和调试平衡车。
2.1.2无线通信技术
APC220模块是高度集成半双工微功率无线数据传输模块。创新的采用高效的循环交织纠检错编码,抗干扰和灵敏度都大大提高,最大可以纠24bits连续突发错误,达到业内的领先水平。APC220模块提供了多个频道的选择,可在线修改串口速率,发射功率,射频速率等各种参数。APC220模块能够透明传输任何大小的数据,同时小体积宽电压运行,较远传输距离,丰富便捷的软件编程设置功能,使之能够应用与非常广泛的领域。
2.1.3姿态检测模块
小车姿态的检测是应用了一轴陀螺仪(ENC-03MB)和三轴加速度(MMA7361)集合模块,加速度用于测量线性的的运动,直接输出加速度,当速度变化较大时输出值越大,通过三角函数变换就可以的到小车也重力方向的夹角,陀螺仪是测量旋转的运动,输出角速度,旋转越快输出越大,有了角速度后可以通过积分的到角度。
2.1.4电机驱动模块
小车驱动采用大功率L298,它可以驱动两个电机,因为它驱动能力大,最大功耗可以达到25W,驱动电流峰值可以到达4A,逻辑部分端子供电(vss)可以取+5V~+7V,逻辑电流时0~36mA,符合我们小车的驱动范围,而且便宜,所以选择了它。
2.1.5小车底盘
地盘是购买了两个JGA25-371-12V的大功率减速电机,减速比是1:34的,负载扭矩可以1.2KG/CM, 后带高精度编码盘,一圈有334个脉冲
2.2软件设计部分
2.2.1直立控制
直立控制是小车的核心主要如图所示
为了小车通过这平衡原理保持平衡,小车需要知道自己的倾角和角速度,所以我们使用了加速度和陀螺仪检测 。对于加速度计有无积累误差,长时间稳定,但是加速度计对震动敏感,而且数据和重力数据相混,对真实数据有影响,陀螺仪数据噪声小,短时间内误差小,但是陀螺仪的放大电路有温漂,而且积分会产生积累误差,随着时间的增加,数据会会失效,所以需要把二者数据先融合,取长补短,
数据融合控制方案如图所示
我们可以通过单片机ADC口把陀螺仪和加速度的值读取,通过一个平均滤波存取上,应用偏差控制理论,计算出陀螺仪和加速度的偏差,陀螺仪输出值就可以得到角速度(ω)。陀螺仪的偏差和加速度的偏差分别经过积分、比例后相互补偿后输出平滑、误差小的角度(θ)。
当有了角度(θ),和角速度(ω),就可以应用PID控制直立。
可是当控制直立后小车不可能控制的太好,会随意动,对于控制其运动或不动时不可能完成,所以我们需要速度反馈调节形成闭环控制。
2.2.2速度控制
我们通过单片机的计速器和定时器读取编码器脉冲,计算出小车速度,我们计算出小车与给定小车的速度偏差值,在应用偏差值积分后都到积分值,再通过PID 控制小车速度。它与配合直立控制一起完成小车的运转。
其速度控制如图所示:
为了得到平稳、真实的速度我们在速度检测的值加上了卡尔曼滤波。
2.2.3 方向控制
方向控制我们控制的比较简单,我们本是通过PWM给定车的速度,而且时时检测上位机的传输命令,当我们检测到上位机发的数据时改变左右电机的PWM值,从而完成相应的动作
2.2.4与上位机的接口函数
作品上位机检测语言识别后通过串口发向相应的控制代号给下位机,下位机也用串口接收代号,接收后放进储存区,把代号判断识别出代号意义,从而控制平衡车完成指令。
4.作品机构框架图
4 主要流程图
此文档的相关视频来自:http://v.eepw.com.cn/video/play/id/13425