平衡车是每个人觉得很新奇的东西,但里面的内容包括了传感器数据处理、电机控制、pid算法的使用等许多东西,同时也有专业性和趣味性,非常适合作为入门练习项目。本项目还有所欠缺PID方面还未最好,外观小巧,美观。
此类平衡车原理都差不多,也可以为自己制作属于自己的平衡车,希望大家一起交流学习
使用GP32F470的立创梁山派作为主控,MPU6050六轴加速度传感器模块获取姿态信息,DRV8833芯片驱动电机运动,提供动力,电机选用N20减速电机,带有AB相霍尔编码器用于测量转速。供电方面选用7.4V锂电池,经线性稳压器LM1084稳压5V,再使用AMS1117稳压至3.3V给电机和开发板供电。
使用中间层放置电池,电机排线需要向上突出,所以下面放不了电池,额外增加了一层,使用三层板堆叠结构,下面两层使用亚克力,最上层为电路板,电池放置在上层,下层挖洞引出电机排线,亚克力板还需增加电机固定架孔位,将电机安排得尽可能靠近来减小横向间距。
需要打样两张亚克力一张有电机安装孔与霍尔穿线孔,另外一张则直接不镂空作为电池固定板。
使用立创面板进行打板绘图:
实物图:
电源:使用18650电池组7.4V电压供电,设置开关控制控制开关。主控供电为5V,驱动使用3.3V供电7.4v驱动,供电电池需要经过两次降压处理,为了电路简单都使用了低压差线性稳压器,第一降压使用LM1084降压至5V,第二降压使用AMS1117降压至3.3V。
电机驱动:驱动芯片使用DRV8833,比较实惠,虽然驱动电流不大,但带动N20电机足够。一个芯片可驱动两路电机刚好够平衡车的两个轮子,每个电机需要两路PWM输入进行调速。两个电机共四路PWM输入。此方案有别于TB6612方案节省2个IO。但需要的PWM通道变多。TB6612只需两个IO控制PWM,其余4个端口控制两路电机正反转。而DRV8833可以理解为两路电机端口哪一个端口拥有PWM就可以执行任意一个轮子的正反转中的任意功能。原理图:
MPU6050电路:由于网上有繁多的模块所以本电路直接使用了模块,接入四根线(电源、接地、SCL、SDA),INT为中断功能当时备用。后因程序无使用上即废弃。只需四线通过I2C协议即可正常读取数据。原理图:
超声波模块:T宝有许许多多模块。而且成熟方案,可以使超声波直立于平面。故选择模块。超声波都很熟悉了。判断一些距离原理图:
ESP8266通信:ESP8266充当通讯其实亏了。本身8266就可以烧录程序,性能也不错,只是本身IO口较少连接外设不多。也是手上有多余模块,如果不想使用也可以更换其他2.4G模块。因为这个模块也是需要烧录额外程序配置AP模式的。ESP8266有运行模式、下载模式、测试模式的区别,进入下载模式可参考以下配置:
ESP8266最低运行要求,EN、VCC、GPIO0口需要3.3V供电,GPIO15、GND要接地,(RES)复位需要置高。原理图:
元器件布局:按照主要的信号流向进行布局,主要是电源部分需要集中,加大布线,方便布线,因空间充裕未放置于开发板下。
手动布线:布线仅仅是能用的程度,还有很大的改进空间,再就是稍微注意了一下线宽,电源部分做到尽量宽一点,信号线可以窄点,大面积铺铜增大过流能力,驱动部分跨层了多加过孔增大过流。布线图:正面
反面
logo部分镂空露铜增加美观板图:
焊接完成图:(蜂鸣器功能可以使用前期未安装,后期已经补齐)
登录后复制
下面两层亚克力板,上面一层PCB,用M3六角铜柱连接固定,长度能短则短,但电池和排线需要一定的空间。上面用的长度22mm,下面是10mm,最下面的电机是用的附赠的电机座,螺丝固定。排线为两头母头,可能需要另外联系商家,故可以直接焊接于板
实物图:
软件部分:主要以小车的平衡控制为核心,通过MPU6050采集角度数据、霍尔编码器采集速度数据作为输入信息,传递给PID控制器进行运算,输出结果转换为PWM信号驱动电机转动,程序运行框图如下图所示。PID运算作为经典的控制算法,不同的参数对于小车的稳定性和动态响应均有显著影响,为便于PID调参还用到了ESP8266的WiFi功能,通过手机连接wifi设备,使用2.4G模块接收指令通过RX TX端口即可实现远程调节参数。
PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法,该控制算法出现于20世纪30至40年代,适用于对被控对象模型了解不清楚的场合。实际运行的经验和理论的分析都表明,运用这种控制规律对许多工业过程进行控制时,都能得到比较满意的效果。PID控制的实质就是根据输入的偏差值,按照比例、积分、微分的函数关系进行运算,运算结果用以控制输出。在工业过程中,连续控制系统的理想PID控制规律为:
式中,Kp——比例增益,Kp与比例度成倒数关系; [2]
Tt——积分时间常数;
TD——微分时间常数;
u(t)——PID控制器的输出信号;
e(t)——给定值r(t)与测量值之差。
登录后复制
角度环PID能够使小车静止在平衡角度(即设定的机械中值),通过实时读取MPU6050的角度数据,计算与设定的平衡角度之间的误差,再控制小车运动速度,从而维持在平衡点。比如向前倒时,根据设定参数,小车将加速向前行驶,以维持平衡。
在整定PID控制器参数时,可以根据控制器的参数与系统动态性能和稳态性能之间的定性关系,用实验的方法来调节控制器的参数。有经验的调试人员一般可以较快地得到较为满意的调试结果。在调试中最重要的问题是在系统性能不能令人满意时,知道应该调节哪一个参数,该参数应该增大还是减小。
为了减少需要整定的参数,首先可以采用PI控制器。为了保证系统的安全,在调试开始时应设置比较保守的参数,例如比例系数不要太大,积分时间不要太小,以避免出现系统不稳定或超调量过大的异常情况。给出一个阶跃给定信号,根据被控量的输出波形可以获得系统性能的信息,例如超调量和调节时间。应根据PID参数与系统性能的关系,反复调节PID的参数。
如果阶跃响应的超调量太大,经过多次振荡才能稳定或者根本不稳定,应减小比例系数、增大积分时间。如果阶跃响应没有超调量,但是被控量上升过于缓慢,过渡过程时间太长,应按相反的方向调整参数。如果消除误差的速度较慢,可以适当减小积分时间,增强积分作用。
反复调节比例系数和积分时间,如果超调量仍然较大,可以加入微分控制,微分时间从0逐渐增大,反复调节控制器的比例、积分和微分部分的参数。
总之,PID参数的调试是一个综合的、各参数互相影响的过程,实际调试过程中的多次尝试是非常重要的,也是必须的。常用的控制方式:P,PI,PD,PID控制算法。
贴片元器件部分不做过多说明:
T宝部分:
名称 | 单价 | 说明 |
7.4V 18650电池带充电器 | 24.80元 | 电池需要7.4v的至于多大看个人了能塞下去就好了 |
n20电机带霍尔 | 2个47.45元 | 霍尔是必须的用于监控转速,但是这类电机也是真的贵,型号选的是6V-310转 |
DRV8833模块 | 3.7元 | 此模块本来是可以直接买芯片的,可是由于懂的原因,某宝此模块泛滥便宜,所以另外买了 |
MPU6050 | 5.50元 | 此模块基本可以称为核心了吧,所以买的时候要注意分辨,有个别朋友买到假的不能使用 |
超声波模块 | 4.40元 | 此模快T宝很多 |
亚克力 | 0元 | 当时立创商城有活动有卷,所以没花钱(小吹一波嘉立创牛逼) |
主要元件商品截图: | ||
链接自行寻找哦。。。。。 |
结构层面: 目前大小适中可以做的更小。从外观来看现在最大的问题在电池接线,大部分暴露在外面降低美观性,同时电机排线也 比较突出,倒地的时候撞到排线,可能造成损坏,考虑连接座换成直针,代替目前的弯针即可解决。软件层面: PID运行的前需要等待校准时间,电机运动会出现明显的滞后和超调现象。大概是PID参数调节还未最佳。小车运行稳 定程度也还有提升空间,静止时还不能很稳,一方面PID算法和参数还可以优化,另一方面可能受编码器分辨率影响, 精度不够,得到编码器数据范围为整数值,值也小精度十分有限。
优化PID,让小车尽可平稳运行。本车烧录时候还有烧录端口复用问题,烧录时还需把电机线外设拔掉,即可正常烧录。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删