这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 超声自平衡小车

共21条 1/3 1 2 3 跳转至

超声自平衡小车

菜鸟
2015-02-16 16:28:12     打赏

超声自平衡小车

1、项目概述(2楼http://forum.eepw.com.cn/thread/268664/1#2

2、项目方案(2楼)http://forum.eepw.com.cn/thread/268664/1#2

3、硬件设计(3楼)http://forum.eepw.com.cn/thread/268664/1#3

4、器材采购(4楼)http://forum.eepw.com.cn/thread/268664/1#4

5、程序设计(8楼)http://forum.eepw.com.cn/thread/268664/1#8

6、调试流程(17、18楼)http://forum.eepw.com.cn/thread/268664/2#17

7、照片与视频展示(20楼)http://forum.eepw.com.cn/thread/268664/2#20

8、总结(21楼)http://forum.eepw.com.cn/thread/268664/3#21

9、后记(22楼)http://forum.eepw.com.cn/thread/268664/3#22

10、高档底盘的超声自平衡车(37楼)http://forum.eepw.com.cn/thread/268664/4#37

11、手机蓝牙控制蓝牙版超声自平衡小车(41楼)http://forum.eepw.com.cn/thread/268664/5#41

12、 手机蓝牙重力感应控制自平衡小车程序(42楼)http://forum.eepw.com.cn/thread/268664/5#42


超声自平衡小车QQ群:385432944




关键词: 自平衡     超声     平衡     小车    

菜鸟
2015-02-16 17:08:43     打赏
2楼

1、项目概述

2014年底在网上看到各种制作自平衡小车的帖子,也跟着做了起来。因为第一次做,心里没底,也就没有投入过多的资金,一切按照最小配置进行,所以选择“TT马达”,俗称“香蕉电机”的小车底盘。在等快递送货期间,才看到各种说用“香蕉电机”做自平衡小车的问题,最大的问题就是电机启动对传感器和单片机的干扰问题,还有就是平衡的稳定性不好等问题。在我以Arduino + MPU6050 + L298N为核心做完后,闲得没事干,就想做一款成本低,易上手,最小配置和最基本功能的自平衡小车,其目的就是给那些没有什么经验的刚入行的新手们提供一个入门的解决方案。所以这个项目的目标有以下几点:

a、成本低;

b、目标功能明确,就是实现小车的自平衡;

c、系统稳定可靠;

d、调试、操作方便简单。


2、项目方案


基于上述目标,本方案采用超声波测距模块作为小车平衡状态的检测,免去了对加速度、陀螺仪传感器的理解和复杂处理算法。小车的平衡控制仍然采用网络上流行的Arduino开源硬件,再加上电机驱动模块 L298N,电机仍然采用TT马达(香蕉电机)。

该方案为了降低成本,采用电位器调整设定小车的平衡参数,不使用蓝牙无线模块或有线串口在线调整参数。

用超声波测距的方式实现的自平衡小车,网络上有人提出这种方案无法在坡度变化的斜坡上保持平衡,这种说法经过我的实践,是有解决方案的,这个问题我将在后面进行阐述。

平衡控制的算法还是采用平衡车中经典的PD算法。



菜鸟
2015-02-16 17:14:37     打赏
3楼

3、硬件设计

硬件设计比较简单,以Arduino Nano为核心控制模块,采用HC-SR04超声波测距模块,L298N电机驱动模块,供电采用7.4V/2200mAh锂电池。图中三个10K电位器分别用于平衡点设置、PD算法中Kp和Kd系数设置的调整。

电路原理图如下所示:

图中J1为HC-SR04超声波测距模块,J2、J3为L298N模块,Arduino Nano为核心控制模块,MG1、MG2分别为左右电机。


菜鸟
2015-02-16 17:22:22     打赏
4楼

菜鸟
2015-02-21 15:34:15     打赏
5楼

5、程序设计

程序源代码:

WJY_DIY_v2_4.zip


程序中的注释如有不明之处,请留言。

Arduino的程序编译下载,请参考网络上的相关资源。


菜鸟
2015-03-06 09:08:22     打赏
6楼

增加了带遥控的功能,结构略微调整了一下,成本更低了


菜鸟
2015-03-08 21:45:47     打赏
7楼
V2_8B遥控超声自平衡小车

该方案利用PWM的输出值近似计算出车速,再用速度PD计算出平衡距离修订值,从而实现小车的速度给定。该方案的优势与用速度PD计算出PWM修订值不同,换上真实速度传感器,即可在变化的坡度上实现超声自平衡小车的平衡

http://v.youku.com/v_show/id_XOTA3NDAzODQw.html


菜鸟
2015-03-16 21:12:41     打赏
8楼
帖子重新编辑了,代码已加入,其他内容慢慢增加

菜鸟
2015-03-16 21:20:09     打赏
9楼

6、调试流程

超声平衡小车装配完毕后如下图所示。


串口调试助手程序

sscom42.zip


a、准备工作

将Kp与Kd调为0,调整方法是,旋转电位器后,按下Arduino模块上的复位键调整方可有效。调整后用串口调试助手(sscom42.exe)发送“F”命令,读取超声自平衡小车参数的设定值。在使用串口调试助手前,首先选择串口调试助手对应的串口号,设置好波特率,方可发送上述命令读取超声自平衡小车参数的设定值,操作界面如下图所示。

第一个数据为平衡点设定值,第二个数据为Kp,第三个数据为Kd。

b、超声波测距测试

发送相应“L”命令,读取超声波的测距值,注意,这里不是实际的mm或cm值,而是对应距离来回的传播时间值,是单片机内部计时的输出值。

操作界面如下图所示。

第一个数为超声波测距模块的直接输出值,第二个数为一阶滤波后的值。改变超声波测距模块与被测界面的距离,这两个值会发生相应的改变,距离近,测得的值变小,距离远测得的值就增大。


c、寻找物理平衡点

在Kp、Kd为0时,用手寻找自平衡小车的物理平衡点,同时用“L”命令(500ms定时发送)读取超声波测量的返回值,确定平衡点的返回值,并记录下来。


d、平衡点PB的设定

调整PB电位器,并在Arduino复位后,用“F”命令读取超声自平衡小车参数的设定值,使得第一个返回的数据与上述确定的物理平衡点相一致。


(待续)



菜鸟
2015-03-16 21:45:53     打赏
10楼

6、调试流程(续)

e、判断电机运转方向是否正确

在完成上述调整后,逐渐增大Kp(请记住,每次调整后,都必须复位Arduino模块,调整才能生效),看到电机能够动作时,停止调整Kp。这时将超声波模块一端稍稍下压(也就是使超声波探头与地面距离缩短),观察两个电机的转动方向,往前(超声波测距模块一端为前)转测试正确的,往后转则说明相应的电机两根线接反了,将接反的线调换过来即可。


f、Kp参数整定

在电机接线正确后,再逐渐增大Kp,使得小车能够来回有点摆动即可进入调整Kd参数阶段。


g、Kd参数整定

在调整完Kp后,逐渐增大Kd,使得摆动消失,如果继续增大Kd,小车会出现明显的抖动,此时将Kd往回调整,使得抖动消失即可。


h、平衡点PB的进一步调整

在上述参数调整完毕后,小车一般就能保持平衡了,如果出现小车往一边跑的现象,可通过调整PB电位器加以修正。如果小车往前跑(超声波模块一端为前),调整PB使得平衡点设定值增大;如果小车往后跑,调整PB使得平衡点设定值减小,直到小车能够长时间稳定为止。



共21条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]