最简单自平衡小车

1 概述

我最早是在2015年1月制作了一个简单的自平衡小车(超声波自平衡小车),当时以为是首创,因为在百度上查不到类似的平衡车。后来通过其他办法在外网上查到两个类似的方案:其中一个是Balancing Roboduino(2008年12月21日制作,2010年8月22日发表,我们称为国外方案1);另一个是Balancing bot with ultrasonic sensor - no gyros(2014年10月24日发表,我们称为国外方案2)。我自己的方案称为 国内方案

1.1 国外方案

1.1.1 国外方案1

在这里插入图片描述
该方案采用 Parallax Ping))) 超声波传感器,该超声波传感器在国内比较难买,价格也在300元人民币左右一个。

作者本人是这样说的:
“First of all, let me explain why the use of Parallax Ping))) ultrasonic sensor. I also have a Maxbotics EZ01 ultrasonic sensor and a Sharp GP2D12 infrared sensor. From all of them, the Ping))) sensor was the most accurate, with stable readings and short response time. I have tryed EZ1 sensor in analog mode and in PWM mode (similar with Ping) but didn’t liked the results. The robot could not balance at all. The Sharp sensor was a little better, but it does not offer stable readings in a fixed position, it has spikes from time to time. Probably averaging 5 measurements would get better results. ”

作者的结论是:

  • This works as proof of concept (balancing), but it lacks fine
    control.
  • The robot balance is heavily influenced by the surface
    incline level. If you adjust the setpoint for a certain inclination,
    it will not work properly for a different one.
  • The servos do not have
    a fast enough response (RPM = 60). Use of DC motors with an RPM over
    200 is needed.
  • To make the robot drive or turn, an Offset variable
    has to be added or subtracted from the servo pulse variables, this
    proved to be difficult for this setup.

视频效果(最后还是倒了!!!)

videoplayback

1.1.2 国外方案2

在这里插入图片描述
该方案采用HC-SR04超声波传感器,从视频上看,稳定性不是很好,视频中还连接了USB线,这根线本身还有一定的支撑能力,这是视频效果

Bot Balancing with ultrasonic sensor

1.2 国内方案

国内方案最新照片如下:
在这里插入图片描述
该方案采用HC-SR04超声波传感器和TT马达(俗称黄香蕉),这是视频效果

C3

1.3 几种方案对比

1.3.1 国外方案

国外方案1与2两者的区别是所用超声波传感器模块略有差别,国外方案2所用的是廉价的HC-SR04超声波传感器;两者的共同点都是使用360度连续旋转舵机。
最一致的是两者都在RobotShop上发表,方案1是2010年8月22日发表,方案2是2014年10月24日发表。但最最一致的是最后修改日期都是2018年9月13日,这是最不可思议的地方了。

1.3.2 国内方案

1.3.2.1 国内方案早期原贴

https://www.geek-workshop.com/thread-12538-1-1.html
http://forum.eepw.com.cn/forum/thread/threadid/268664/flag/1/page/1
https://www.cirmall.com/circuit/1599

1.3.2.2 国内方案的山寨帖

http://www.51hei.com/bbs/dpj-48053-1.html
http://www.51hei.com/bbs/dpj-47877-1.html
http://www.51hei.com/bbs/dpj-48037-1.html
http://www.eepw.com.cn/article/201710/366683.htm
http://www.elecfans.com/emb/app/20151116391000.html

1.3.2.3 参照国内方案的论文

https://wenku.baidu.com/view/f20c16323d1ec5da50e2524de518964bcf84d23b.html

1.3.2.4 参照国内方案的CSDN博文

arduino nano基于超声波的平衡小车

还有段时间淘宝上也出现了参照国内方案的套件。

2 最简单自平衡小车

这篇博文介绍的“最简单自平衡小车”有3方面含义:一是,功能简单,仅实现自平衡;二是,硬件简单,用最简单的最便宜的电机(TT马达,黄香蕉),HC-SR04超声波模块和ATtiny13A单片机;三是,软件设计简单,采用Mixly图形化编程。

网上有用TT马达+MPU6050做自平衡小车的,我找到三个这种方案的视频,参见后面的视频欣赏部分。

2.1 硬件原理图

在这里插入图片描述

2.2 Mixly程序

在这里插入图片描述

2.3 调试方法

装配好小车硬件后,第一步,寻找小车的 自然平衡点(不加电的情况下,看在什么状态下最容易稳定),自然平衡点所处的位置最好是超声波传感器探头与小车所处地面平行,如果差别较大的话,最好调整结构或增加配重使其一致。

214为自然平衡点超声波测量的返回值。
第二步,测量平衡车不同角度时,超声波测量值,并确定超声测量的 有效范围。我这个小车的测试数据如下图。
在这里插入图片描述
程序中我们选择的范围如下:
在这里插入图片描述
第三步,调整PD参数,调整方法与其他PID控制的调整是相同的,可参考网上的其他相关帖子。此处的 P = 3,D = 6。
在这里插入图片描述
编译上传
在这里插入图片描述

3 问题、分析与解决

3.1 问题现象

之前也有些人按照我的方案做过,感觉不是很稳定,达不到我视频中的稳定效果(可以纹丝不动,仅能听到电机的嗡嗡声)。不稳的问题,我也遇到了,无论怎样调参数都没有多大的改善,还有的很快就前趴后仰的倒下了。

3.2 原因分析

针对不稳定问题,我买了十几个不同厂家或同一厂家不同型号的HC-SR04传感器。大致有4种类型,如下图所示。

正面
在这里插入图片描述
反面
在这里插入图片描述
其中1、2为无锡日晨物联科技公司2018年款产品,3、4不知道是哪家的产品。1、3不带晶体,2、4采用晶体。
通过测试发现,不采用晶体的稳定性要好于采用晶体的模块,静态测试的数据差别不是很大,主要是在与电机一起工作时,带晶体的模块受干扰较严重,数据稳定性很差,所以效果不好。

下面是有电机运行情况下,几种类型的超声波传感器测试对比数据。
在这里插入图片描述
其中5#传感器为“1”型,15#传感器为“2”型,26#传感器为“4型”。从测试数据来看“1”型的稳定性明显优于其他几种类型,无锡日晨物联科技公司2018年款(采用专业解调测距芯片)的也明显优于其他类型的模块。

3.3 解决方法

解决方法最简单的方法就是选择好的超声波传感器模块了,在此,我推荐使用无锡日晨物联科技公司2018年款 不带晶体的模块(也就是图片中的 “1” ),淘宝上的具体型号是:HC-SR04P(注意,后面有个P),仔细对比一下图片中1和3的正面,超声波发送和接收器之间,我们推荐的“1”走线是直的;再看反面,3个芯片以及布局明显不同。

3.4 其他

国外方案1主程序的循环周期为18~20ms,根据我的方案测试对比,20ms也可保持平衡,但很不稳定,这个时间是极限了,超过20ms必倒!!!
我的测试结论是循环周期越短越好,最好在10ms以内,我程序中设定的是3ms。

4 资源下载

Mixly_ATtiny13A.rar
HC-SR04P

5 相关视频欣赏

5.1 国内的TT马达+MPU6050版

自平衡小车DIY

VID_20150724_112037


tt电机平衡小车

tt电机平衡小车


ARDUINO两轮平衡小车

ARDUINO两轮平衡小车

5.2 国外超声波自平衡小车

超声自平衡小车3

超声4

超声自平衡小车4

超声5

5.3 国外红外自平衡小车

红外自平衡小车1

红外1

红外自平衡小车2

红外2

5.4 国外红外开关制作的迷你平衡车

红外开关自平衡车

Arduino Mini Pro Self Balancing Robot


**

这个方案是我见到最简单的一种,这个方案对于我的难度是这款小电机和配套的轮子不好找,电机的额定工作电流最好不大于20mA,这样单片机就可直接驱动了。

**

6 欢迎入群交流

QQ:1035774689

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值