PushBot:搭建与编程全攻略
1. PushBot 组装步骤
PushBot 的组装接近尾声,以下是从第 19 章中提取的组装关键步骤:
1.
颈部与红外传感器组件安装
:从颈部/红外传感器组件和砖块开始组装,注意砖块的“顶部”(USB 端口所在处)在图片中朝向底部。先将两个小黑色连接器插入砖块顶部,如特定图片所示,部分插入后再完全按入。
2.
人偶颚笼安装
:人偶颚笼底部的长蓝色连接器与砖块底部连接,从侧面将其完全按下。
3.
加固梁组装
:用一个九孔梁和四个短黑色连接器组装加固梁,将其安装在合适位置,有助于固定颈部组件、人偶颚和砖块。
4.
长轴加固
:安装长轴和两个红色轴环来加固整体结构。插入轴后,将轴环尽可能分开以增强强度。虽然没有这些部件机器人也能运行,但它们能使结构更坚固。
5.
大型电机与车轮组件安装
:制作两个大型电机驱动轮组件,它们是镜像对称的。将轴、轴环、轮胎和九孔梁等部件按步骤组装好,然后将电机组件安装到砖块和框架上。
6.
脚轮梁连接
:将支撑脚轮的梁上的双灰色连接器与大型电机连接。
7.
触摸传感器安装与布线
:收集触摸传感器、短蓝色轴销和黑色销,将它们安装到触摸传感器上,然后在砖块上找合适位置安装触摸传感器。最后,将三个电机和三个传感器进行布线,使用 EV3 零售套件中的所有六根电线。具体布线为:中型电机连接到端口 A,大型电机连接到端口 B 和 C,触摸传感器连接到端口 1,颜色传感器连接到端口 2,红外传感器连接到端口 4。
组装流程图
graph LR
A[颈部与红外传感器组件安装] --> B[人偶颚笼安装]
B --> C[加固梁组装]
C --> D[长轴加固]
D --> E[大型电机与车轮组件安装]
E --> F[脚轮梁连接]
F --> G[触摸传感器安装与布线]
2. PushBot 编程思路
为确保 PushBot 程序能正常工作,将编程分为三个部分:
1.
将机器人移动到第一个人偶前的正确位置
2.
将前三个人偶放置到正确位置的编程块
3. **将最后一个人偶推上斜坡并放到玛雅石棺上
2.1 让 PushBot 就位
在 LEGO MINDSTORMS EV3 软件中,点击左上角的 + 标签,双击蓝色程序名称,输入 PushBot。为了有更多工作空间,可点击顶部标签栏最右侧的 EV3 按钮符号(类似八角形停止标志)来最小化右侧的文档工作区域。
使用触摸传感器作为 PushBot 的启动按钮,将其放置在砖块顶部易触及的位置。在程序中放入一个 LOOP 块,等待触摸传感器触发。
2.2 移动到第一个人偶的方法
有两种方法可将 PushBot 移动到第一个人偶前:
1.
基于距离编程
:已知基座和第一个人偶之间的大致距离约为 7 英尺,PushBot 长约 16 英寸,若将其按特定方式放置并指向第一个人偶,需向前移动 5.5 英尺后停止。可使用 MOVE STEERING 块,设置正确的旋转圈数(或度数)来实现。
2.
使用红外传感器
:为避免因测量误差或电池电量低导致电机异常而撞到人偶,使用红外传感器检测人偶并在安全距离处停止。在程序中放入一个 LOOP 块,配置为当红外传感器检测到距离小于 30 厘米(12 英寸)的障碍物时跳出循环。在 LOOP 块内放置一个 MOVE STEERING 块,让电机 B 和 C 旋转。可测试将电机持续时间设置为无限或特定度数/旋转圈数,以确定最安全的接近方式。
测试与调整
将一个水瓶放在距离 PushBot 约 9 英尺处,确保笼颚打开,按下触摸传感器启动。测试发现,将 MOVE STEERING 块的持续时间设置为无限时,机器人停止位置更接近水瓶,同时需将红外传感器的灵敏度提高到 30 厘米或更小。测试后,PushBot 距离水瓶约 3 - 5 英寸。
当 PushBot 到达水瓶位置后,需将其旋转 180 度使笼颚朝向水瓶。具体步骤为:先使用 MOVE STEERING 块让电机 B 和 C 反转一圈后退,然后使用 LARGE MOTOR 块让大型电机 B 向左旋转 90 度,再让大型电机 C 向右旋转 90 度。
后续操作步骤
PushBot 旋转后面对第一个人偶且笼颚打开,后续操作步骤如下:
1. 接近人偶 1
2. 关闭人偶 1 周围的笼子
3. 将人偶 1 向前推到压力板上并停止
4. 打开笼子并返回起始位置
5. 右转,向前移动一小段距离,然后左转
6. PushBot 此时位于人偶 2 前方
由于这些步骤会重复执行,使用一个 LOOP 块让其对前三个人偶各执行一次。
编程操作表格
| 操作 | 编程块 | 设置 |
|---|---|---|
| 等待启动 | LOOP 块 | 触摸传感器触发跳出循环,传感器在端口 1 |
| 移动到第一个人偶 | MOVE STEERING 块 | 可设置旋转圈数或持续时间,结合红外传感器检测 |
| 旋转 180 度 | MOVE STEERING 块、LARGE MOTOR 块 | 后退、左右旋转特定度数 |
| 放置前三个人偶 | LOOP 块 | 执行三次特定操作 |
3. 定位前三个人偶
在 PushBot 定位并开始将最后一个人偶推上斜坡之前,需要让它停在人偶 3 前面。为实现将人偶 1、2 和 3 推到正确位置的操作,需要在程序中添加一个 LOOP 块。以下是具体步骤:
3.1 接近人偶
首先,放入一个 LOOP 块并将其配置为执行一次(测试后改为三次)。然后,使用另一个 LOOP 块,配置为当红外遥控器触发红外传感器时跳出循环。接着,添加一个 MOVE STEERING 块,将其配置为让大型电机 B 和 C 旋转四分之一圈(0.25),使机器人缓慢向人偶移动。
3.2 关闭笼子
下载程序并测试,使用默认的红外传感器设置(值为 1,对应红外遥控器的左上角按钮)。机器人能完美转向并缓慢接近瓶子,直到按下红外遥控器按钮跳出循环。此时,使用一个 MEDIUM MOTOR 块关闭笼子,最初将其配置为让电机 A 旋转 -65 度,但后来改为以 -30 的负速度运行 0.25 秒。原因是之前设置旋转度数时,电机有时无法完全关闭笼子,导致电机卡顿,程序无法继续运行。更改设置后,能避免这种情况。关闭笼子后,添加另一个 MEDIUM MOTOR 块关闭电机 A 以节省电池电量。
3.3 推动人偶
笼子关闭后,需要让机器人缓慢推动人偶,直到检测到黑色黑曜石岩石地板。使用一个 LOOP 块,配置为当颜色传感器触发时跳出循环。测试颜色传感器在黑色纸上的值为 5,在地板上的值为 89,将颜色传感器设置为值低于 20 时触发。添加一个 MOVE STEERING 块进行推动操作,每次向前推动 2.75 英寸(半圈),并添加一个 0.5 秒的延迟,确保颜色传感器有时间检测黑色纸。
3.4 测试与调整
下载并测试程序,如果一切按计划进行,机器人应接近瓶子,检测到瓶子后停止,后退并旋转,再次接近瓶子直到停止,关闭笼子,然后推动瓶子直到颜色传感器触发。但实际测试中可能会出现问题,例如笼子卡住影响程序运行,可通过将电机 A 运行时间改为 0.25 秒解决。机器人将瓶子推到黑色纸上后可能只在边缘,可在 LOOP 块后添加一个 MOVE STEERING 块,让机器人再前进一圈(5.5 英寸),将人偶推到中心。
3.5 后续移动
完成上述操作后,需要让机器人打开笼子,后退一段合理距离,并进行一些移动使其位于人偶 2 前面。具体步骤如下:
1. 使用 MOVE STEERING 块让机器人前进一圈,将人偶推到中心,然后使用 MEDIUM MOTOR 块打开笼子。
2. 使用 MOVE STEERING 块让机器人后退约 3 英尺(将 3 英尺转换为 36 英寸,除以轮胎周长 5.5 英寸,约为 6.5 圈)。
3. 使用 LARGE MOTOR 块让机器人右转。
4. 使用 MOVE STEERING 块让机器人向西前进约 2 英尺。
5. 使用 LARGE MOTOR 块让机器人左转。
定位操作流程图
graph LR
A[放入外层 LOOP 块] --> B[放入内层 LOOP 块(红外触发)]
B --> C[添加 MOVE STEERING 块接近人偶]
C --> D[下载测试并使用 MEDIUM MOTOR 块关闭笼子]
D --> E[添加 MEDIUM MOTOR 块关闭电机 A]
E --> F[添加 LOOP 块(颜色传感器触发)]
F --> G[添加 MOVE STEERING 块推动人偶]
G --> H[测试与调整]
H --> I[添加 MOVE STEERING 块推人偶到中心]
I --> J[打开笼子并后退]
J --> K[右转]
K --> L[前进 2 英尺]
L --> M[左转]
编程操作表格(续)
| 操作 | 编程块 | 设置 |
|---|---|---|
| 接近人偶 | LOOP 块(外层) | 执行三次 |
| 接近人偶 | LOOP 块(内层) | 红外传感器触发跳出循环 |
| 接近人偶 | MOVE STEERING 块 | 电机 B 和 C 旋转 0.25 圈 |
| 关闭笼子 | MEDIUM MOTOR 块 | -30 速度运行 0.25 秒 |
| 关闭电机 | MEDIUM MOTOR 块 | 关闭电机 A |
| 推动人偶 | LOOP 块 | 颜色传感器触发跳出循环 |
| 推动人偶 | MOVE STEERING 块 | 每次前进 2.75 英寸,延迟 0.5 秒 |
| 推到中心 | MOVE STEERING 块 | 前进一圈(5.5 英寸) |
| 打开笼子 | MEDIUM MOTOR 块 | 打开笼子 |
| 后退 | MOVE STEERING 块 | 后退约 6.5 圈 |
| 右转 | LARGE MOTOR 块 | 右转 |
| 前进 | MOVE STEERING 块 | 前进约 2 英尺 |
| 左转 | LARGE MOTOR 块 | 左转 |
4. 测试与优化
在实际测试中,可能会出现各种问题,需要根据具体情况进行调整。例如,第一次测试时可能会越过第二个人偶约 6 英寸,可通过将大型电机 B 和 C 的旋转持续时间从 6 减少到 4.7 来解决。笼子关闭正常但打开过宽,手臂摩擦轮胎的问题,可将笼子打开时间从 1 秒减少到 0.25 秒。经过第二次测试,若所有三个人偶都能被定位并推到正确位置且不翻倒,则说明设置基本合适。
需要注意的是,不同的电机和传感器灵敏度可能不同,因此测试是必不可少的。通过不断测试和调整,可以提高机器人的性能,同时也能深入了解机器人在不同环境中的工作方式。完成前三个人偶的定位后,下一步就是让 PushBot 推动第四个人偶上斜坡并放到石棺上,这将在后续的编程和测试中进一步实现。
超级会员免费看
4406

被折叠的 条评论
为什么被折叠?



