让我们看看如何让 Lego Ev3 机器人与 BluPants 一起工作。
注意:SD 卡镜像已于 2020 年 10 月 31 日更新。新版本修复了错误并增加了对乐高教育机器人的适当支持。如果您运行的是旧版本,请考虑更新它:
默认情况下,BluPants 与Gripp3r和Education Ev3机器人一起使用。组装它们的说明可以在乐高的网站上找到。
您不必制造与我们完全相同的机器人。只要您以与我们在机器人上使用相同的方式连接电机,BluPants 也可以在您的机器人上无缝工作。不过,对blupants.json的额外调整可能会给您带来更高的准确性。有关详细信息,请参阅“校准您的机器人”部分。
BluPants 默认设置如下:
距离传感器应连接到端口 4。
组装好机器人后,就可以用 BluPants 映像刷入 micro SD 卡了。无论您使用何种文档,只要确保将正确的 BluPants 映像文件闪存到您的 SD 卡即可。
在 Ev3 积木的左侧找到内存扩展端口(SD 卡读卡器)。
刷完 SD 卡后,关闭您的 Ev3 积木,然后插入卡,如下图所示:
找到 WiFi 的 USB 端口并直接连接您的 USB WiFi 加密狗。或者,如果您还使用 USB 摄像头,请连接 USB 集线器。在下面的图片中,我们使用 USB 集线器连接 WiFi 加密狗和相机。
。你的很可能会有所不同。看到您的 IP 地址后,您确认您的机器人已连接并准备好开始使用 BluPants 进行编码。
将机器人连接到 WiFi 后,打开浏览器并访问http://blupants.org。确保您用于浏览的计算机也连接到您连接 Ev3 的同一个 WiFi 网络。
在“机器人”下拉菜单(右下角)上,确保您看到了您的 Ev3 IP 地址,然后单击“播放”。如果您在列表中看不到任何内容,请尝试重新加载页面和/或关闭并重新打开浏览器。机器人 IP 仅在页面完全加载后显示:
就是这样!您已准备好使用 BluPants 提高您的编码技能。
请记住,BluPants 是一个多平台的编码环境。这意味着,您可以使用 Lego Ev3 享受相同的学习体验,也可以使用更实惠的机器人来完成,例如 Beaglebones 和 RaspberryPies。
查看 BluPants Youtube 频道,或访问www.blupants.com以获取有关如何以轻松有趣的方式学习编码的更多示例和详细信息。在Twitter 上关注我们以随时关注所有新版本。
您可以通过编辑其配置文件来更改您的机器人设置。所有设置都可以通过编辑机器人本地 Linux 文件系统上的“/root/blupants.json”文件来自定义。您可以像访问任何常规 Linux 机器一样访问和编辑配置文件。我们将介绍两个选项:
您应该做的第一件事是使用默认凭据登录机器人并更改密码。在 EV3 积木 LCD 显示屏的左上角检查您的机器人 IP 地址。就我而言,它是:“10.0.0.237”。
您的机器人的默认凭据是:
user: root
password: temppwd
从您的本地计算机运行以下命令以连接到您的机器人并在那里打开一个外壳:
macOS / Linux
$ ssh root@10.0.0.237
带有腻子的窗户
C:\Users\user>putty root@10.0.0.237
请记住将“10.0.0.237”替换为您的特定机器人 IP 地址。
提供密码“tempppwd”。
% ssh root@10.0.0.237
Password:
Linux ev3dev 4.14.117-ev3dev-2.3.5-ev3 #1 PREEMPT Sat Mar 7 12:54:39 CST 2020 armv5tejl
_____ _
_____ _|___ / __| | _____ __
/ _ \ \ / / |_ \ / _` |/ _ \ \ / /
| __/\ V / ___) | (_| | __/\ V /
\___| \_/ |____/ \__,_|\___| \_/
Debian stretch on LEGO MINDSTORMS EV3!
Last login: Sat Oct 31 16:44:25 2020 from 10.0.0.34
root@ev3dev:~#
登录后,通过运行命令“passwd”更改密码:
root@ev3dev:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
提供您的新密码,并确保记住它。从现在开始,您将在需要登录 EV3 Linux 系统时使用它。
转到 /root 文件夹并确保那里有可用的 blupants.json 文件
root@ev3dev:~# cd /root
root@ev3dev:~# ls
blupants_ev3_gripp3r.json blupants_ev3.json blupants.json
root@ev3dev:~#
现在,您可以使用您喜欢的文本编辑器(例如 nano 或 vi)来编辑文件。
root@ev3dev:~# vi blupants.json
或者
root@ev3dev:~# nano blupants.json
或者,您可以复制要在本地计算机上编辑的文件,并在那里使用它。为此,您甚至不需要在 ssh 会话上登录您的 Ev3。在您的本地计算机上,只需运行“scp”或“pscp”即可将 blupants.json 配置文件从机器人复制到您的计算机:
macOS / Linux
$ scp root@10.0.0.237:/root/blupants.json .
带有腻子的窗户
C:\Users\user>pscp -P 22 root@10.0.0.237:/root/blupants.json .
然后,您可以使用您喜欢的文本编辑器在本地计算机上打开 blupants.json 文件进行编辑。对于 Windows 用户,我们建议使用Notepad++ 。Notepad++ 可以在这里下载。
访问下一部分,了解如何通过更改默认配置文件来校准您的机器人。然后,一旦你完成编辑,保存它,并将其复制回你的机器人:
macOS / Linux
$ scp blupants.json root@10.0.0.237:/root/blupants.json
带有腻子的窗户
C:\Users\user>pscp -P 22 blupants.json root@10.0.0.237:/root/blupants.json
永远记得用机器人的 IP 地址替换“10.0.0.237”。
请记住,配置文件必须符合 json 格式。如果您破坏它,机器人将停止工作,直到您提供另一个有效的配置文件。假设您完全破坏了 blupants.json 文件。如果发生这种情况,您需要做的就是从GitHub获取原始副本并将其恢复到您的机器人,替换损坏的文件。
例如,如果您需要恢复教育文件,请从此链接获取原始内容并使用“scp”或“pscp”将其复制回机器人的 /root/blupants.json 文件。如果您需要原始 Gripp3r 配置的副本,可以从此链接获取。
现在您知道如何访问您的配置文件,让我们看看如何更改它以校准您的机器人并使其更准确。
要校准您的机器人,您需要编辑 blupants.json 配置文件。访问上一节以了解如何访问您的 blupants.json 文件以进行编辑。这是标准 blupants.json 文件的有效格式:
{
"robot_id": 2,
"name": "EV3",
"use_opencv": false,
"measurement_system": "m",
"duty": 0.5,
"block_length": 0.725,
"period": 0.02,
"enable_tts": true,
"bluetooth_addr": "",
"ev3":
{
"claw":
{
"servo": "a",
"angle_open": 90,
"angle_close": -90
},
"motor":
{
"position":
{
"front_left": 1,
"front_right": 2,
"back_left": 3,
"back_right": 4
},
"duty_ratio": [1.0, 1.0, 1.0, 1.0],
"turn_right_period": 0.007,
"turn_left_period": 0.007
},
"camera":
{
"servo_horizontal": "c",
"servo_vertical": "d"
}
}
}
永远不应更改该字段。"robot_id": 2
对于所有乐高 Ev3 机器人,该值应始终为 2。
但是,可以自定义该字段"name"
,它将帮助您识别您的机器人,特别是如果您有多个机器人连接到同一网络。要有创意,给你的机器人起一个很酷的名字。
由于乐高硬件不幸不支持 OpenCV,因此该字段被忽略。"use_opencv"
现场"measurement_system": "m"
告诉机器人在使用超声波传感器测量距离时使用公制。如果要使用皇家系统,将其更改为“r”:
"measurement_system": "r",
如果您使用的是红外传感器,则忽略此字段。测量值(范围从 0 到 60)将显示为厘米。
该字段"duty": 0.5
告诉机器人在旋转车轮上使用的电机时使用 50% 的功率。它可以设置为从 0(无功率)到 1(全功率/100%)的任何值。
该字段"block_length"
告诉您的机器人在当前任务向前移动一格时将行进多少。假设您正在处理一张小地图,您可能想要减小“block_length”的值。对于更大的地图,您可能需要增加它。
该字段"period"
未使用。
该字段"enable_tts": true
将启用文本到语音模块。如果要禁用它,请将其设置为 false。禁用 TTS 时,机器人执行命令的速度更快。如果您打算使用函数say() ,则需要启用 TTS 才能听到机器人说话。
字段"bluetooth_addr"
未使用。
该字段"ev3"->"claw"->"servo":"a"
定义了您连接爪式电机的端口。假设端口 A、B 和 C 已被占用,您需要将其连接到端口 D。将值更改为“servo”:“d”。
该字段"ev3"->"claw"->"angle_open":"90"
告诉您的伺服电机必须旋转多少度,以便您的机器人可以张开爪子。类似地,"ev3"->"claw"->"angle_close":"-90"
定义闭合角度。请注意,与 Gripper 相比,Educational 机器人将使用截然不同的角度。如果您组装一个完全不同的爪,根据其物理特性,您可能需要相应地自定义这些设置。
字段"ev3"->"motor"->"position"
定义电机的顺序。如果您在编写 Ev3 时使用函数set_motors() ,这一点尤其重要。
字段"ev3"->"motor"->"duty_ratio": [1.0, 1.0, 1.0, 1.0],
可用于补偿一个车轮旋转速度更快的一些问题。像这样的问题会阻止机器人直行。数组中的第一个“1.0”定义了位置“1”(默认为front_left)定义的电机的系数,第二个“1.0”是定义为位置“2”的电机的系数,依此类推。例如,假设您的机器人在编程为直线移动时会向左移动一点。如果这是因为右电机的运行速度比左电机快而引起的,您可以通过降低右电机的值来调整 duty_ratio 来弥补这一点。例如:
"duty_ratio": [1.0, 0.95, 1.0, 1.0],
它将使正确的电机运行速度慢 5%,并可能补偿由于一个电机运行速度比另一个电机快而引起的物理问题。
领域"ev3"->"motor"->"turn_right_period"
和"ev3"->"motor"->"turn_left_period"
是类似的。如果您将机器人编程为向右转 90 度,但实际上它最终只转了 60 度,您需要增加“turn_right_period”的值以正确校准它。同样,假设您将机器人编码为向左转 90 度,而它转为 140 度。您将需要减少“turn_left_period”值来解决这个问题。
当前未使用字段。"ev3"->"camera"
它们旨在定义倾斜相机伺服连接到哪个端口。
Lego Ev3 的 BluPants 图像基于开源项目ev3dev 。我们要感谢 ev3dev 社区所做的出色工作。如果您想了解更多关于 ev3dev 的信息,请访问:www.ev3dev.org 。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !