Базовый набор MINDSTORMS EV3

Манипулятор

Разработайте, соберите и запрограммируйте роботизированную систему, которая могла бы захватывать и переставлять предметы.

Более 120 мин.
Средний уровень
Классы 9–11
3_Make_a_Pick_and_Place_Robot

План урока

Подготовка
— Ознакомьтесь с материалами для учителя.
— Если необходимо, разработайте план урока, используя материалы для начала работы из ПО «Лаборатория EV3» или Приложения для программирования EV3. Это поможет познакомить учащихся с конструкторами LEGO® MINDSTORMS® Education EV3.

Обсуждение (30 мин.)
— Используйте идеи, приведённые в разделе "Начало обсуждения", чтобы вовлечь учащихся в дискуссию по теме проекта.
— Объясните, в чём заключается цель данного проекта.
— Разделите класс на пары.
— Дайте учащимся немного времени, чтобы придумать несколько идей.

Объяснение (30 мин.)
— Дайте учащимся задание придумать несколько прототипов.
— Предложите им найти новые конструкторские и программные решения.
— Попросите каждую пару учащихся собрать и испытать два решения.
— Раздайте учащимся большие листы клетчатой бумаги, цветные карандаши или маркеры.

Объяснение (60 мин.)
— Попросите учащихся протестировать свои решения и выбрать лучшее из них.
— Убедитесь, что они могут подготовить свои таблицы результатов испытаний.
— Дайте каждой команде немного времени, чтобы завершить свой проект; затем соберите материалы, в которых они зафиксировали результаты своей работы.

Дополнение (60 мин.)
— Дайте учащимся немного времени, чтобы подготовить итоговые отчёты.
— Проведите обсуждение, в ходе которого каждая группа расскажет о результатах своей работы.

Оценка
— Дайте оценку работе каждого учащегося.
— Для упрощения этой задачи вы можете использовать раздел оценки.

Начало обсуждения

Манипуляторы — один из видов промышленных роботов, которые могут перемещать предметы с одного заданного места на другое. Для более точного и безопасного захвата и установки предметов различной формы, веса и уровня хрупкости можно использовать разные виды захватов.

Engage-Pick-and-Place-Robot-Cover

Поощряйте активное обсуждение идей.

Предложите учащимся ответить на следующие вопросы.

  • Что представляют собой манипуляторы и где они используются?
  • Какой приводной механизм можно использовать, чтобы поднять предмет?
  • Как робот может переместить предмет?
  • Каким образом робот может осторожно и точно переместить предмет?

Попросите учащихся задокументировать свои первоначальные идеи и объяснить, почему они выбрали то или иное решение для создания своего первого прототипа. Попросите их описать, каким образом они будут оценивать свои идеи в процессе выполнения данного проекта. В процессе рассмотрения и повторения учащиеся получат определённую информацию, которую смогут использовать для оценки эффективности своих решений.

Дополнительно

Развитие языковых навыков

Для развития языковых навыков попросите учащихся:

Вариант 1

  • использовать свои записи, наброски и/или фотографии, чтобы подвести итоги этапа разработки и подготовить итоговый отчёт;
  • снять видео, в котором рассказывалось бы о процессе разработки их решения, начиная с первоначальных идей и заканчивая финальным этапом реализации проекта;
  • подготовить презентацию, рассказывающую об их программе;
  • подготовить презентацию, рассказывающую об их решении и аналогичных системах, используемых в реальной жизни, а также описывающую новые изобретения, которые можно создать на основе их решения.

Вариант 2
Для развития языковых навыков попросите учащихся:

  • Исследуйте различные механизмы, использующиеся для производства лекарственных препаратов и вакцин, и затем подготовьте рассказ о работе в автоматизированной фармацевтический лаборатории, сделав акцент на преимуществах и недостатках автоматизации процесса приготовления лекарств.

  • Обсудите вопросы обеспечения безопасности данных и защиты авторских прав на формулы лекарств, способных принести владельцам миллиардные прибыли и хранящихся в онлайн-системах, в том числе:

  • возможные последствия утери формул лекарств;

  • преимущества хранения конфиденциальной информации в онлайн-системах.

Развитие математических навыков

На этом уроке учащиеся собрали робота-манипулятора. Оценка и улучшение производительности крайне важны для любых автоматизированных систем. Машинное обучение — процесс, при помощи которого роботы-манипуляторы оценивают собственную производительность и вносят в производственные процессы изменения, необходимые для ее улучшения.

Для развития математических навыков и изучения машинного обучения попросите учащихся:

  • дать определения терминов точности и аккуратности и применить их в своих робототехнических проектах;
  • определить переменные, по которым можно оценить точность и аккуратность разработанных учащимися систем (например, скорость робота может влиять на аккуратность, точность или на обе эти характеристики);
  • подготовить и провести мини-эксперимент, чтобы определить, влияют ли выбранные переменные на аккуратность, точность или на обе эти характеристики.

Советы по сборке

Идеи для вдохновения
Дайте учащимся возможность собрать несколько моделей, инструкции для которых можно найти по следующим ссылкам. Предложите им изучить работу этих систем и на их основе подготовить Техническое задание.

Советы по тестированию
Предложите учащимся сконструировать собственную испытательную установку и разработать порядок испытаний, который позволил бы выбрать наилучшее решение. Следующие советы помогут учащимся провести испытания.

  • Отметьте положение карандаша/маркера, установленного в механизме, на клетчатой бумаге. Это позволит возвращать его в то же положение каждый раз при проведении нового испытания.
  • Используйте квадраты 1 x 1 см на клетчатой бумаге, чтобы записывать результаты каждого испытания.
  • Используйте цветные карандаши или маркеры, чтобы отметить ожидаемое и фактическое положение перемещённого роботом предмета.
  • Подготовьте таблицы результатов испытаний, чтобы записывать в них результаты своих наблюдений.
  • Оцените точность работы своего робота, сравнив ожидаемые и фактические результаты.
  • Проведите испытания по меньшей мере три раза.

Пример решения
Далее приведён пример решения, соответствующего критериям Технического задания.

pick-and-place-solution-bi-cover
Pick-and-Place-Solution-Cover

Советы по программированию

Пример программы, созданной в EV3 MicroPython

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor, ColorSensor
from pybricks.parameters import (Port, Stop, Direction, Button,
                                 ImageFile, SoundFile)
from pybricks.tools import wait

# Configure the gripper motor with default settings.
gripper_motor = Motor(Port.A)

# Configure the elbow motor.  It has an 8-tooth and a 40-tooth gear
# connected to it.  Set the motor direction to counterclockwise, so
# that positive speed values make the arm move upward.
elbow_motor = Motor(Port.B, Direction.COUNTERCLOCKWISE, [8, 40])

# Configure the motor that rotates the base.  It has a 12-tooth and a
# 36-tooth gear connected to it.  Set the motor direction to
# counterclockwise, so that positive speed values make the arm move
# away from the Touch Sensor.
base_motor = Motor(Port.C, Direction.COUNTERCLOCKWISE, [12, 36])

# Limit the elbow and base accelerations.  This results in very smooth
# motion, like that of an industrial robot.
elbow_motor.set_run_settings(60, 120)
base_motor.set_run_settings(60, 120)

# Set up the Touch Sensor.  It is used to detect when the base has
# moved to its starting position.
touch_sensor = TouchSensor(Port.S1)

# Set up the Color Sensor.  It is used in Reflected Light Intensity
# Mode to detect the white beam when the elbow is in its starting
# position.
color_sensor = ColorSensor(Port.S3)

# Initialize the elbow.  This is done by first moving down for 1 second
# and then slowly moving up until the Color Sensor detects the white
# beam.  Then the motor stops, holds its position, and resets the angle
# to "0."  This means that when it rotates backward to "0" later on, it
# returns to this starting position.
elbow_motor.run_time(-30, 1000)
elbow_motor.run(15)
while color_sensor.reflection() < 30:
    wait(10)
elbow_motor.stop(Stop.HOLD)
elbow_motor.reset_angle(0)

# Initialize the base.  This is done by first running the base motor
# counterclockwise until the Touch Sensor is pressed.  Then the motor
# stops, holds its position, and resets the angle to "0."  This means
# that when it rotates backward to "0" later on, it returns to this
# starting position.
base_motor.run(-60)
while not touch_sensor.pressed():
    wait(10)
base_motor.stop(Stop.HOLD)
base_motor.reset_angle(0)

# Initialize the gripper.  This is done by running the motor forward
# until it stalls.  This means that it cannot move any further.  From
# this closed gripper position, the motor rotates backward by 90
# degrees, so the gripper opens up.  This is the starting position.
gripper_motor.run_until_stalled(200, Stop.COAST, 50)
gripper_motor.reset_angle(0)
gripper_motor.run_target(200, -90)

def robot_pick(position):
    # This function rotates the base to the pick up position.  There,
    # it lowers the arm, closes the gripper, and raises the arm to pick
    # up the wheel stack.
    base_motor.run_target(60, position, Stop.HOLD)
    elbow_motor.run_target(60, -45)
    gripper_motor.run_until_stalled(200, Stop.HOLD, 50)
    elbow_motor.run_target(60, 0, Stop.HOLD)

def robot_release(position):
    # This function rotates the base to the drop-off position.  There,
    # it lowers the arm, opens the gripper to release the wheel stack,
    # and raises the arm again.
    base_motor.run_target(60, position, Stop.HOLD)
    elbow_motor.run_target(60, -45)
    gripper_motor.run_target(200, -90)
    elbow_motor.run_target(60, 0, Stop.HOLD)

# Define the 3 destinations for picking up and dropping off the wheel
# stacks.
LEFT = 200
CENTER = 100
RIGHT = 0

# Rotate the base to the center.
base_motor.run_target(60, CENTER, Stop.HOLD)

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, the robot waits until the Up or Down Button is pressed.
# Second, the robot waits until the Center Button is pressed.
# Finally, the robot picks up the wheel stack and drops it off in the
# center.
#
# Then the process starts over, so the robot can pick up another wheel
# stack.
while True:

    # Display a question mark to indicate that the robot should await
    # instructions.
    brick.display.image(ImageFile.QUESTION_MARK)

    # Wait until the Up or Down Button is pressed.
    while True:
        # First, wait until any button is pressed.
        while not any(brick.buttons()):
            wait(10)
        # Then store which button was pressed.
        button = brick.buttons()[0]
        # If the Up or Down Button was pressed, break out of the loop.
        if button in (Button.UP, Button.DOWN):
            break

    # Play a sound and display an arrow to show where the arm will move.
    brick.sound.file(SoundFile.AIR_RELEASE)
    if button == Button.UP:
        brick.display.image(ImageFile.FORWARD)
    elif button == Button.DOWN:
        brick.display.image(ImageFile.BACKWARD)

    # Wait until the Center Button is pressed, then display a check
    # mark to indicate that the instruction has been accepted.
    while not Button.CENTER in brick.buttons():
        wait(10)
    brick.display.image(ImageFile.ACCEPT)

    # Pick up the wheel stack. Depending on which button was pressed,
    # move left or right.
    if button == Button.UP:
        robot_pick(RIGHT)
    elif button == Button.DOWN:
        robot_pick(LEFT)

    # Drop off the wheel stack in the center.
    robot_release(CENTER)

Перспективы профессионального развития

Учащиеся, которым было интересно данное задание, могут попробовать себя в следующих сферах деятельности:

  • информационные технологии (программирование);
  • производство и инженерное дело (машиностроение).

Возможности для оценки

Журнал педагога
Разработайте критерии оценки, максимально соответствующие вашим задачам, например следующие.

 1. Задание выполнено не полностью.
 2. Задание выполнено полностью.
 3. Результаты превзошли ожидания.

Используйте следующие критерии для оценки успеваемости учащихся.

  • Учащиеся могут оценить различные варианты решений на основе выбранных критериев и компромиссов между ними.
  • Учащиеся самостоятельно разрабатывают работающие и креативные решения.
  • Учащиеся могут понятно рассказать о своих идеях.

Самостоятельная оценка
Когда учащиеся получат первые сведения об эффективности моделей, дайте им время, чтобы оценить свои решения. Вы можете задать следующие вопросы.

  • Ваше решение соответствует критериям технического задания?
  • Можно ли сделать движения вашего робота более точными?
  • Какие способы решения этой задачи нашли другие команды?

Попросите учащихся придумать и задокументировать два варианта усовершенствования их решений.

Оценка одноклассников
Организуйте процесс оценки решения одноклассниками, в ходе которого каждая группа должна оценить свой собственный проект и проекты других групп. Это поможет развивать навыки высказывания конструктивного мнения, а также совершенствовать навыки анализа и умение использовать объективные данные для аргументации своей позиции.

В помощь преподавателю

Учащиеся смогут:
использовать процесс разработки для решения задач из реальной жизни.

Базовый набор LEGO® MINDSTORMS® Education EV3

Большой лист клетчатой бумаги (миллиметровой или с заранее размеченной клеткой)
Цветные карандаши или маркеры.

Математика: алгебра и начала математического анализа, геометрия:
• сформированность умений моделировать реальные ситуации, исследовать
построенные модели, интерпретировать полученный результат
• владение навыками использования готовых компьютерных программ при
решении задач

Информатика:
• владение навыками алгоритмического мышления и понимание необходимости формального описания алгоритмов
• владение умением понимать программы, знанием основных конструкций программирования; умением анализировать алгоритмы

Метапредметные результаты:
• умение продуктивно общаться и взаимодействовать в процессе совместной деятельности, учитывать позиции других участников деятельности, эффективно разрешать конфликты
• умение ясно, логично и точно излагать свою точку зрения, использовать адекватные языковые средства

Учебные материалы

Загрузите и просмотрите рабочий лист или разошлите его в формате HTML-страницы или PDF.