主要内容

使用树莓派感应帽控制乐高MINDSTORMS EV3机器人

这个例子展示了如何读取Raspberry Pi Sense HAT上的加速度计,并使用这些数据来控制LEGO MINDSTORMS EV3机器人的运动。

介绍

Raspberry Pi Sense HAT是树莓派硬件的附加板。它有一个8X8 RGB LED矩阵,一个五位置操纵杆,包括以下传感器:

  • 湿度传感器

  • 压力传感器

  • IMU传感器(加速度计,陀螺仪,磁力计)

乐高MINDSTORMS EV3是乐高集团开发的基于Linux的教育机器人套件。乐高MI万博1manbet万博1manbetxxNDSTORMS EV3硬件的Simulink支持包使您能够在乐高MINDSTORMS EV3硬件上创建和运行Simulink模型。支持包包万博1manbetx括Simulink模块库,用于配置和访问LEGO MINDSTORMS EV万博1manbetx3传感器和驱动器。

我们将开发两个Simulink模型:万博1manbetx

  • 覆盆子π模型在该模型中,利用加速度计On-board Sense HAT数据读取的数据来确定EV3机器人的电机转速。在树莓派设备和EV3机器人之间建立网络连接,进行数据交换。

  • 乐高MINDSTORMS EV3模型在这个模型中,树莓派装置发送的数据被用来驱动EV3机器人的两个电机。

您将学习如何:

  • 搭建树莓派硬件与乐高MINDSTORMS EV3机器人之间的网络连接

  • 配置并运行树莓派硬件的Simulink模万博1manbetx型,向LEGO MINDSTORMS EV3机器人发送UDP包

  • 配置并运行LEGO MINDSTORMS万博1manbetx EV3机器人的Simulink模型,以接收来自树莓派硬件的UDP包。

先决条件

所需的硬件

要运行此示例,您将需要以下硬件:

  • 覆盆子π硬件

  • 树莓派感应帽

  • 乐高头脑风暴EV3

  • 两台乐高MINDSTORMS EV3大型电机

  • EV3 wi - fi无线上网卡

机器人运动控制工作原理

在本节中,我们将讨论如何使用加速度数据来控制机器人的运动。

根据加速度计的数据,我们可以用数学方法确定给定位置的Sense HAT的“俯仰”和“滚动”的值。我们可以将Sense HAT的“俯仰”和“翻滚”运动映射到EV3机器人的运动。“倾斜”表示电机的前进和后退运动,而“滚动”表示机器人的侧向运动。

在Simulink的树莓派模型中,使用MATLAB函数块实现了将“俯仰”和“横摇”值转换为电机线性速度所需的数学方程。万博1manbetx

在树莓派和EV3砖之间建立了数据交换的通信链路。由俯仰和滚动值导出的直线电机速度通过UDP从树莓派发送到EV3。EV3接收这些数据,并将其作为驱动两个发动机的输入。

任务1 -熟悉Sense HAT加速度计(推荐)

自动旋转图像显示在Sense HAT LED矩阵上示例演示了Raspberry Pi Sense HAT上的加速计的用法。加速度数据用于自动旋转显示在Sense HAT的LED矩阵上的图像。

完成这个例子来熟悉加速计的用法。

任务2 -为LEGO MINDST万博1manbet万博1manbetxxORMS EV3安装Simulink支持包

你需要万博1manbet万博1manbetxx乐高MINDSTORMS EV3的Simulink支持包在乐高MIND万博1manbetxSTORMS EV3硬件上运行Simulink模型。

1.安装万博1manbet万博1manbetxx乐高MINDSTORMS EV3的Simulink支持包

点击下面的链接

下载并安装乐高MINDSTORMS EV3万博1manbet万博1manbetxx的Simulink支持包

2.(推荐)完成入门乐高MINDSTORMS EV3硬件的例子万博1manbet万博1manbetxx乐高MINDSTORMS EV3的Simulink支持包你刚刚安装。

任务3 -安装乐高MINDSTORMS EV3机器人

在这个任务中,我们将构建一个EV3机器人,并将EV3砖连接到与Host PC相同的网络。

1.建造一个两轮机器人。您可以构建一个类似于教育核心集中打印的构建说明中描述的机器人。

2.在EV3砖和您的主机之间建立连接。请参阅中任务1和任务2入门乐高MINDSTORMS EV3硬件的例子。

任务4 -配置网络连接

在本任务中,您将设置树莓派板与乐高MINDSTORMS EV3之间的网络连接。本例中使用的通信协议为UDP。您可以选择使用TCP/IP协议。TCP/IP发送/接收块在LEGO MINDSTORMS EV3和Raspberry Pi的库中可用。

1.通过以太网端口用以太网线连接树莓Pi板到网络。确保树莓派板和EV3机器人连接在同一个网络上。

2.验证您的树莓派板与乐高MINDSTORMS EV3之间的连接。

在MATLAB命令提示符上执行以下命令:

r = raspberrypi

该命令返回一个带有树莓派板IP地址信息的对象。

运行命令系统(r, 'sudo ping [EV3_IP_Address] -c 10')使用任务3步骤2中找到的LEGO MINDSTORMS EV3 IP地址来验证连接。如。

系统(r,'sudo ping 192.168.1.2 -c 10'

3.验证连接后,打开覆盆子π模型和更新发送到EV3阻止您的EV3硬件的IP地址。

任务5 -在树莓派硬件和乐高MINDSTORMS EV3机器人上运行模型

在这个任务中,我们将在相应的硬件上运行我们开发的模型。

1.点击构建、启动和部署在树莓派硬件上运行此模型。

2.点击构建、启动和部署按乐高MINDSTORMS EV3模型的按钮,在您的乐高MINDSTORMS EV3硬件上运行此模型。

3.使用连接到树莓派硬件的Sense HAT控制EV3机器人。

其他可以尝试的事情

1.改进EV3机器人的控制系统。尝试整合一个PID控制器。

EV3驱动闭环并对EV3机器人的控制算法进行了改进。

2.开发一个模型,以控制EV3机器人使用Sense HAT上的操纵杆。使用Sense HAT库中的操纵杆块读取车载Sense HAT上的操纵杆状态。

总结

这个示例展示了以下内容

  • 采用树莓派感应HAT上的加速度计控制EV3机器人的运动。

  • 树莓派硬件计算机器人左右电机的速度值,并通过UDP发送块将数据发送到EV3砖。

  • EV3接收树莓派发送的数据,驱动机器人的电机。