ev3 中一键切换控制模式

带孩子做 ev3 机器人控制时碰到一个问题: 当机器人比较复杂, 当一个 ev3
的 5 个可编程按钮不足以控制机器人的运动时该怎么办?

机器人简介

孩子搭建的机器人如图 1 所示, 基本结构与功能如下:

  • 左轮与右轮各连接一个电机, 可以实现前进, 后退, 左拐, 右拐的动作.
  • 一支机械臂, 连接了一个电机, 机械臂可以抬起与放下.
  • 一个机械爪, 连接了一个电机, 可以张开与合拢.


图 1
图 1 机器人基本结构

为了实现上述功能, 每一个动作需要由 ev3 的一个按钮来控制, 共需要 8 个按钮.
可是一个 ev3 主控的可编程按钮只有 5 个, 分别是上下左右键, 加上中间的 ok
键 (返回键是不可编程的).

说明: 孩子没有学过菊链, 而且从机器人结构看, 只有一个 ev3 主控. 我们可以另一个
ev3 控制机器人运动. 假设机器人身上的 ev3 统带为 1 号, 当作控制器的 ev3 编号为
2 号.

孩子的思路

编写两个程序, 其中 1 号程序控制机器人前进, 后退, 左转, 右转;
2 号程序控制机器人机械臂抬起与放下, 机械爪打开与全拢.

当机器人需要行进时采用 1 号程序, 当机器人需要抓取物体时使用 2 号程序,
如此反复进行. 程序的切换通过手动进行, 即按返回键选退出 1 号程序, 再启动
2 号程序.

这是一个可行的解决方法, 而且对于一个小学生来说已经难能可贵了.

更合理的思路

实际上, 可以以将 ev3 的 ok 键作为控制模式切换. 正常模式下 (移动模式)
控制机器人行进, 按了 ok 键后切换为抓取模式. 去掉一个 ok 键, 一个 ev3
可编程的按钮就变成了 4 X 2 = 8 个了.

按照先前的文章
ev3 编程中各程序块之间的关联,
1 号 ev3 与 2 号 ev3 之间可以通过 USB 线连接, 也可以通过无线连接.
因此分别编写两个程序, 根据孩子喜好选择一个程序部署到机器人.

图 2 是采用 USB 连接时的程序, 图 3 是采用蓝牙连接时的程序. 其中图 3-1 是部署到
1 号 ev3 的控制程序, 用于控制 2 号 ev3; 图 3-2 是部署到 2 号 ev3 的运动程序,
用于控制电机运行. 1 号 ev3 与 2 号 ev3 通过消息进行通信.


图 2
图 2 USB 连接的程序


图 3-1
图 3-1 蓝牙连接时的控制程序


图 3-2
图 3-1 蓝牙连接时的运动程序

猜你喜欢

转载自blog.csdn.net/ding_yingzi/article/details/80275490
今日推荐