Arduino工程装备
你听说过吗Arduino工程装备?
如果你有兴趣自己动手做项目和正在寻找一种有趣的方法来将一些控制和机器人学原理应用到一个真实的系统中,你可能想读这篇文章。
介绍
如果你关注这个博客已经有一段时间了,你可能知道我喜欢在家里使用MATLAB和Simulink进行各种项目。有关示例,请参见我的万博1manbetx苏维德烹饪机岗位.
当我听说Arduino现在提供一个Arduino工程工具包,并且我们有支持包可以用Simulink编程时,我联系了组装它的团队,问我是否可以借用一个来使用它。万博1manbetx万博1manbetx
当你买这套衣服的时候Arduino商店,您将收到一个装满机械和电子零件的盒子,其中包括Arduino MKR1000:
该工具包包括三个可能的项目:摩托车、漫游者或绘图机器人。
我决定去骑摩托车。我认为惯性轮使其自动平衡将是一个有趣的控制项目。
开始
组装好工具包后,需要在MATLAB中安装几个软件包:
- 万博1manbet万博1manbetxx针对Arduino硬件的Simulink支持包:这是在Arduino系列板上部署Simulink模型所需的基本软件包。万博1manbetx
- Arduino工程套件硬件支持万博1manbetx:此软件包包含套件中所有可用传感器和执行器的驱动器和示例型号。
- Arduino工程工具包项目文件这个包包含特定于这三个项目的Simulink模型万博1manbetx,用于模拟系统和在硬件上部署。
最简单的安装方法是通过附加组件菜单中的MATLAB工具条。
在安装了那三个软件包后,我进入了例子文件夹中的Arduino工程套件硬件支持包,并逐个尝试了示例,以确保我能够使用所有的传感器和驱万博1manbetx动器。例如,这里是我的IMU测试,我倾斜摩托车90度前后沿所有轴。这让我得出结论,我想要控制的轴,摩托车的滚动角度,是欧拉角输出的第二个元素,Y轴。
我的模型
工程套件项目文件还包含一个完整的模型,平衡摩托车,并允许您控制其速度和转向角度。然而,我认为从头开始创建自己的游戏会更有趣。如果你感兴趣,可以请在这里下载最终版本.
下面是最终结果的顶级图片。
让我们看看每个组件。首先,我在左边创建了一个子系统,其中包含我需要的所有传感器,并将它们组合在一个总线中。
接下来,我处理每个传感器,以方便的工程单位提取相关数据。
现在是状态流图充当模型大脑的时候了。在左边,我检查三个条件:IMU已经校准,摩托车没有下降,飞轮没有达到最大速度。当所有这些条件都满足时,我可以单击模型顶层的Start按钮。一旦这是点击,我有4秒的校准,在我开始平衡之前,我保持摩托车完美的垂直校准。如果摩托车摔倒了,我可以再按一次按钮重置控制器,然后再试一次。
当图表启用平衡时,它将启用激活控制器的已启用子系统。对于平衡飞轮,控制器是一个PID,将摩托车的侧倾角作为输入,并向飞轮生成电压指令。对于摩托车速度,这是一个简单的比例控制器,它将摩托车速度作为输入,将其集成并与车轮编码器进行比较。
请注意,此平衡控制器并不完美。飞轮电机上的传感器不允许直接测量飞轮速度,因此难以完美控制飞轮运动。我们正在努力!
最后,控制器的输出被发送到输出驱动块。
而且它有效!
以下是一段视频,展示了摩托车的行驶过程:
参观Arduino工程工具包YouTube频道查看更多示例。
现在轮到你了
请在下面的评论中告诉我们你对Arduino工程套件的看法。
评论
如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。