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

Система круиз-контроля

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

Более 120 мин.
Средний уровень
Классы 9–11
set-cruise-controle

План урока

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

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

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

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

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

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

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

Функция круиз-контроля на легковых автомобилях представляет собой систему, которая автоматически контролирует скорость транспортного средства. Эта технология кажется современной, но на самом деле она была разработана ещё в 1958 году. Как это работает?

set-cruise-controle

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

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

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

Дайте учащимся немного времени для поиска ответов на следующие вопросы.

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

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

Начните со сборки транспортного средства. Учащиеся могут использовать любую предлагаемую Приводную платформу LEGO® MINDSTORMS® EV3 или собрать свою собственную. Убедитесь, что они используют кнопки, аналогичные тем, которые можно увидеть на руле автомобиля с функцией круиз-контроля.

ev3-robot-color-sensor

Использование двух датчиков касания

Объясните, что на этом занятии учащиеся будут использовать два датчика касания для управления скоростью приводной платформы.

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

Скорее всего, для выполнения этого проекта учащиеся будут использовать Блок переменных. Блок переменных — программный блок, в котором хранятся данные (текстовые, логические, числовые данные или массивы), которые можно перезаписать в любой момент выполнения программы.

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

Увеличение скорости с помощью переменной

coding-07-01

Описание программы

 1. Создать новую программу.
 2. Создать блок переменных с названием «Скорость» и присвоить ему значение 0.
 3. При нажатии датчика касания:

 a. считать значение, хранящееся в переменной «Скорость»;
b. добавить 10 к считанному значению;
c. записать результат в переменную «Скорость»;
 d. считать значение, хранящееся в переменной «Скорость»;
 e. запустить моторы В и С со скоростью, указанной в переменной «Скорость»; ELSE (ИНАЧЕ) — не предпринимать никаких действий.
 4. Повторять шаги 3a — 3e бесконечное количество раз.

Увеличение и уменьшение скорости с помощью переменной

coding-07-02

Описание программы

 1. Создать новую программу.
 2. Создать блок переменных с названием «Скорость», присвоить ему значение 0 и выполнить два следующих задания.

ЗАДАНИЕ 1

 3. При нажатии датчика касания 1:

 a. считать значение, хранящееся в переменной «Скорость»;
b. добавить 10 к считанному значению;
c. записать результат в переменную «Скорость»;
 d. считать значение, хранящееся в переменной «Скорость»;
 e. запустить моторы В и С со скоростью, указанной в переменной «Скорость»; ELSE (ИНАЧЕ) — не предпринимать никаких действий.
 4. Повторять шаги 3a — 3e бесконечное количество раз.

ЗАДАНИЕ 2

 5. При нажатии датчика касания 2:

 a. считать значение, хранящееся в переменной «Скорость»;
b. отнять 10 от считанного значения;
c. записать результат в переменную «Скорость»;
 d. считать значение, хранящееся в переменной «Скорость»;
 e. запустить моторы В и С со скоростью, указанной в переменной «Скорость»; ELSE (ИНАЧЕ) — не предпринимать никаких действий.
 6. Повторять шаги 5a — 5e бесконечное количество раз.

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

coding-07-03

Описание программы

  1. Создать новую программу.
  2. Создать блок переменных с названием «Скорость», присвоить ему значение 0 и выполнить три следующих задания.

Задание 1
3. Запустить собственный блок «Ускорение».

Задание 2
4. Запустить собственный блок «Замедление».

Задание 3
5. считать значение, хранящееся в переменной «Скорость»;
6. Вывести на экран значение, хранящееся в переменной «Скорость».
7. Повторять шаги 5 и 6 бесконечное число раз.

ЗАГРУЗИТЬ ПРИМЕРЫ ПРОГРАММ15 Кбайт, требуется ПО «Лаборатория EV3»

Программные решения EV3 MicroPython

Увеличение скорости с помощью переменной

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor
from pybricks.parameters import Port, Stop, Button
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
while True:

    # Check whether the Touch Sensor is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10

    # If the speed variable has changed, update the speed of the robot.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

Увеличение и уменьшение скорости с помощью переменной

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor
from pybricks.parameters import Port, Stop, Button
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Set up the Touch Sensor on Port 2.  It is used to decrease the speed
# of the robot.
decrease_touch_sensor = TouchSensor(Port.S2)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, increase the speed variable if Touch Sensor 1 is pressed.
# Second, decrease the speed variable if Touch Sensor 2 is pressed.
# Finally, the robot updates its speed if the speed variable was
# changed.
#
# Then the loop starts over after a brief pause.
while True:

    # Check whether Touch Sensor 1 is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10

    # Check whether Touch Sensor 2 is pressed, and decrease the speed
    # variable by 10 mm per second if it is.
    if decrease_touch_sensor.pressed():
        speed -= 10

    # If the speed variable has changed, update the speed of the robot.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

Увеличение и уменьшение скорости с помощью переменной, а блок «Экран»

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor
from pybricks.parameters import Port, Stop, Button
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Set up the Touch Sensor on Port 2.  It is used to decrease the speed
# of the robot.
decrease_touch_sensor = TouchSensor(Port.S2)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, increase the speed variable if Touch Sensor 1 is pressed.
# Second, decrease the speed variable if Touch Sensor 2 is pressed.
# Finally, the robot updates its speed if the speed variable was
# changed, and displays it on the screen.
#
# Then the loop starts over after a brief pause.
while True:

    # Check whether Touch Sensor 1 is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10

    # Check whether Touch Sensor 2 is pressed, and decrease the speed
    # variable by 10 mm per second if it is.
    if decrease_touch_sensor.pressed():
        speed -= 10

    # If the speed variable has changed, update the speed of the robot
    # and display the new speed in the center of the screen.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)
        brick.display.clear()
        brick.display.text(speed, (85, 70))

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

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

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

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

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

Вариант 2
На этом уроке учащиеся разработали систему круиз-контроля. Частные лица и агентства собирают данные о скорости транспортных средств для подготовки отчётов о дорожных условиях и сокращения количества дорожно-транспортных происшествий.
Для развития языковых навыков попросите учащихся:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • бизнес и финансы (предпринимательство);
  • производство и инженерное дело(проектирование).

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

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

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

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

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

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

Рабочий лист ученика

Download to view and share the student worksheet.

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

Поделиться через:

Класс GoogleКласс Google