这是一个相对简单,视觉上有效的平衡机器人项目,只需要四个组件来制作。
自平衡机器人是一种能使自身保持平衡而不致坠落到地面的装置。它的功能是利用车轮和车身的电机轴线运动来保持平衡。有几种类型的自平衡机器人,在这个特殊的情况下,我将向你展示一种制造两轮平衡机器人的方法。实际上,这个机器人是我和我的一个学生一起做的,这是一个高中毕业设计。这是一种最简单的平衡机器人,只需要几个部件就可以制造出来。
首先,让我们解释所使用的组件及其功能。
本项目由PCBWay赞助。他们有你需要的所有服务,以最优惠的价格创建你的项目,无论是一个学校项目,还是复杂的专业项目。在PCBWay上,你可以分享你的经验,或者为你的下一个项目获得灵感。他们还以最优惠的价格提供完整的表面贴装SMT PCB组装服务,并进行ISO9001质量控制。
现在,让我们简单地解释一下它的工作原理:加速度计测量机器人相对于重力的方向,陀螺仪检测倾斜速率。Arduino使用PID(比例,积分,导数)控制器来处理来自传感器的数据。
PID控制器计算出维持机器人平衡所需的速度和方向调整。如果机器人向前倾斜,马达旋转得更快,使机器人向前移动,防止摔倒。如果它向后倾斜,马达就会使机器人向后移动以恢复平衡。当机器人检测到不平衡时,它会通过调整车轮速度、移动质心或向前或向后移动以保持其位置来进行补偿。
简单介绍一下Arduino代码。之前已经多次描述了安装代码的方法,所以现在我只关注由于所使用组件的不同特性而需要针对每种情况单独进行的修改,以及它们的放置方法。
现在是有趣的部分,即为我们构建的设备定制代码。根据组件的布局,机器人的重心会发生变化,而且每个MPU6050板都有最小的差异,需要在部分代码中进行补偿。如果我们更详细地看一下代码,我们会看到有一个地方是设置陀螺仪偏移量的。
在这部分代码中,错误被纠正在MPU6050芯片的制造过程中。对于每个单独的芯片,这些值是不同的。它们的值是使用专门为此目的制作的Arduino代码确定的,您可以在本文末尾下载它。
接下来,我们需要继续设置加速度计。在“双设定值”行中,我们需要设置一个与我们的设备相对应的值。
为了获得这个值,我们需要将机器人保持在一个理想的垂直位置,垂直于表面,并在串行监视器上读取所需的值。对我来说,大概是182。
最后,我们需要通过实验确定PID控制所需的Kp, Kd和Ki的值。
为此,我们将这三个值都设置为零。现在我们给Kp赋值并进行测试。Kp过小会使机器人摔倒。太大的Kp会使机器人疯狂地来回移动。一个好的Kp会使机器人稍微前后移动。接下来我们需要确定Kd。一个良好的Kd值将减少振荡,直到机器人几乎稳定,并将保持机器人站立。最后设置Ki。正确的Ki值将缩短机器人稳定所需的时间。我想强调的是,表面需要足够粗糙,以增加它和车轮之间的摩擦。
最后是一个简短的结论。这是一个相对简单,视觉上有效的平衡机器人项目,只需要3个组件来制作。然而,它的设置,虽然可能很耗时,但仍然是很多乐趣,试图让机器人稳定地站在它的“自己的脚”上。