LEGO MINDSTORMS Education EV3 + MicroPython:用成人语言对儿童拼搭套装进行编程

你好,哈布尔! 我们已经 告诉 关于乐高 MINDSTORMS Education EV3 平台。 该平台的主要目标是通过实际示例进行学习、培养 STEAM 技能和培养工程思维。 它可用于实验室工作以研究力学和动力学。 由乐高积木制成的实验室长凳以及用于记录和处理数据的实用程序使实验变得更加有趣和直观,并帮助孩子们更好地理解物理。 例如,学生可以收集熔点数据并使用该应用程序对其进行组织并以图表形式呈现。 但这仅仅是开始:今天我们将告诉您如何用 MicroPython 编程环境来补充这套工具,并用它来教授机器人技术。

LEGO MINDSTORMS Education EV3 + MicroPython:用成人语言对儿童拼搭套装进行编程

使用 EV3 学习编程

现代学童希望看到丰富多彩的结果。 是的,如果程序将数字打印到控制台,他们会感到无聊,他们想查看彩色图表、图表并创建能够移动和遵循命令的真正机器人。 对于孩子来说,常规代码似乎也太复杂了,所以最好从更简单的东西开始学习。

基本的 EV3 编程环境基于 LabVIEW 图形语言,允许您直观地指定机器人的算法:命令以可拖动和连接的块的形式呈现。

LEGO MINDSTORMS Education EV3 + MicroPython:用成人语言对儿童拼搭套装进行编程

当您需要展示算法是如何构建的时,此方法很有效,但它不适合具有大量块的程序。 随着场景变得更加复杂,需要转向用代码编程,但这一步对于孩子来说很难迈出。 

这里有一些技巧,其中之一是表明代码与块执行相同的操作。 在 EV3 环境中,这可以通过 MicroPython 集成实现,因此孩子们可以在基本块编程环境和 Microsoft Visual Studio Code 中的 Python 中创建相同的程序。 他们发现这两种方法的工作原理相同,但使用代码解决复杂问题更方便。

切换到 MicroPython

EV3 环境构建在 ARM9 处理器上,开发人员特意保持架构开放。 该解决方案使得推出替代固件成为可能,其中之一是用于使用 MicroPython 的图像。 它允许您使用 Python 对 EV3 进行编程,使该套件更接近现实生活中的任务。 

要开始使用,您需要下载 EV3 MicroPython 图像 将任何 microSD 卡安装到 EV3 微型计算机中并打开它。 然后你需要安装 免费扩展 对于 Visual Studio。 然后你就可以开始工作了。 

使用 MycroPython 编程第一个机器人

LEGO MINDSTORMS Education EV3 + MicroPython:用成人语言对儿童拼搭套装进行编程

在我们的 在线 有几个课程可以帮助您掌握机器人技术的基本概念。 EV3 模型向孩子们介绍自动驾驶汽车、工厂装配机器人和数控机床的基础知识。 

我们将以绘图机为例,它可以被教导绘制图案和几何形状。 该案例是成人焊接或铣削机器人的简化版本,展示了如何将 EV3 与 MicroPython 结合使用来教授学童。 绘图机可以为爸爸在印刷电路板上标记孔,但这是另一个需要数学的水平。

对于我们需要的工作:

  • 乐高 MINDSTORMS Education EV3 核心套装; 
  • 大张格子纸;
  • 彩色标记。 

机器人本身的组装是在 指示,我们将看一个编程示例。

首先我们初始化EV3模块库:

#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Color, ImageFile
from pybricks.tools import wait

我们在B口设置了一个像电机一样旋转手柄的平台。我们设置了两级齿轮系的齿数分别为20-12-28。

turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])

我们将手柄的升降机构配置为端口 C 的电机:

seesaw_motor = Motor(Port.C)

我们在端口 2 中配置陀螺仪,用于测量手柄的倾斜角度:

gyro_sensor = GyroSensor(Port.S2)

我们在端口3配置颜色传感器。该传感器用于检测拉丝机下方的白纸:

color_sensor = ColorSensor(Port.S3)

我们在端口 4 中配置触摸传感器。按下传感器时机器人开始绘图:

touch_sensor = TouchSensor(Port.S4)

我们定义升高和降低手柄的函数:

def pen_holder_raise():
  seesaw_motor.run_target(50, 25, Stop.HOLD)
  wait(1000)

def pen_holder_lower():
  seesaw_motor.run_target(50, 0, Stop.HOLD)
  wait(1000)

我们定义一个函数来将手柄旋转到给定角度或某个角度:

def pen_holder_turn_to(target_angle):
  if target_angle > gyro_sensor.angle():

如果目标角度大于当前陀螺仪传感器角度,则以正速度继续顺时针:

    turntable_motor.run(70)
	
while gyro_sensor.angle() < target_angle:
  	
pass
  elif target_angle < gyro_sensor.angle():

如果目标角度小于当前陀螺仪传感器,则逆时针移动:

    turntable_motor.run(-70)
	
while gyro_sensor.angle() > target_angle:
  	
pass

当达到目标角度时停止旋转平台:

  turntable_motor.stop(Stop.BRAKE)

将手柄的初始位置设置在上部位置:

pen_holder_raise()

现在是程序的主要部分 - 无限循环。 EV3 首先等待颜色传感器检测到白纸或蓝色起始方块并按下触摸传感器。 然后他画了一个图案,回到起始位置,再次重复一切。

当设备未准备好时,控制器上的 LED 会变成红色,并且 LCD 屏幕上会显示“拇指朝下”图像:

while True:
  brick.light(Color.RED)
  brick.display.image(ImageFile.THUMBS_DOWN)

我们等到颜色传感器计数到蓝色或白色,将 LED 颜色设置为绿色,在 LCD 屏幕上显示“竖起大拇指”图像并报告设备已准备好使用:

  while color_sensor.color() not in (Color.BLUE, Color.WHITE):
	
wait(10)
  brick.light(Color.GREEN)
  brick.display.image(ImageFile.THUMBS_UP)

我们等待触摸传感器被按下,将角度值0分配给陀螺仪传感器并开始绘图:

  while not touch_sensor.pressed():
	
wait(10)
  gyro_sensor.reset_angle(0)
  pen_holder_turn_to(15)
  pen_holder_lower()
  pen_holder_turn_to(30)
  pen_holder_raise()
  pen_holder_turn_to(45)
  pen_holder_lower()
  pen_holder_turn_to(60)

抬起笔架并将其恢复到原来的位置:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

这是我们创建的简单程序。 现在我们启动它并查看正在运行的绘图机器人。 

这些例子提供了什么?

LEGO MINDSTORMS Education EV3 + MicroPython:用成人语言对儿童拼搭套装进行编程

EV3 是 STEM 职业的职业指导工具,也是工程职业的切入点。 由于它可以用来解决实际问题,孩子们可以获得技术开发和工业机器人创建的经验,学习模拟真实情况,理解程序和分析算法,并掌握基本的编程结构。

MicroPython 支持使得 EV3 平台适合高中教学。 学生可以尝试使用最流行的现代语言之一作为程序员,并熟悉与编程和工程设计相关的专业。 EV3 套件表明编码并不可怕,让您为严峻的工程挑战做好准备,并帮助您迈出掌握技术技能的第一步。 对于那些在学校工作并与教育相关的人,我们已经准备好了 课程计划 和教育材料。 它们详细描述了在执行某些任务时培养了哪些技能,以及获得的技能与培训标准的关系。

来源: habr.com

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster