Скидка до 60% и курс по ИИ в подарок 3 дня 09 :07 :03 Выбрать курс
Код
#статьи

Программирование с помощью LEGO: как дети осваивают код, играя с роботами

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

Иллюстрация: Оля Ежак для Skillbox Media

Ещё 20 лет назад обучение программированию выглядело скучно: чёрный экран, строки кода и минимум графики. Увлечь этим ребёнка трудно, потому что нет понятного и интересного результата. В 2007 году появился Scratch — визуальный язык программирования для детей, который позволял создавать игры и анимации, просто соединяя цветные блоки. Вокруг него быстро появилось большое комьюнити из учащихся, родителей и педагогов.

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

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

Содержание


Как LEGO помогает учиться программировать

Как научить детей программированию? Первое, что приходит в голову: посадить их за компьютер, рассказать теорию, и пусть они пишут код. Но такой вариант, скорее всего, не подойдёт: детей надо увлечь и заинтересовать процессом. Сделать это можно с помощью специальных наборов LEGO.

Они позволяют не просто собрать модель по инструкции, а заставить её двигаться и выполнять команды с помощью алгоритмов, которые дети сами пишут в специальных средах для разработки («младшие братья» обычных IDE). При этом ребёнок сразу видит результат, и процесс воспринимается как игра, ведь в итоге получаются роботы, поезда и другие модели.

Такой подход к обучению называют STEM. Это междисциплинарный метод, когда ребёнок одновременно осваивает несколько дисциплин: естественные науки (Science), технологии (Technology), инженерию (Engineering) и математику (Mathematics). И именно STEM лежит в основе обучения с наборами LEGO.

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

Основные принципы программирования в LEGO

У LEGO есть наборы для обучения программированию, рассчитанные на разный уровень подготовки и возраст ребёнка: в одних порядок действий задаётся выбором физических деталей конструктора, например по цвету, в других — придётся написать код на Python. Разберём основные варианты — от простых до сложных.

Физическое кодирование на основе сигналов (для детей дошкольного возраста)

Поддерживаемые наборы: LEGO Education Coding Express

Физическое кодирование не требует компьютера, так как дети работают только с элементами конструктора. Например, они задают команды, выбирая специальные детали, а устройство из набора считывает эти сигналы. Такой подход используется в наборе Coding Express из серии LEGO Education.

Это конструктор для сбора железной дороги, по которой едет поезд. Физическое кодирование в Coding Express происходит за счёт манипуляций с разноцветными деталями, которые ребёнок вставляет в железнодорожные пути. У каждого блока есть свой цвет, за которым закреплена отдельная команда:

  • красный — остановка;
  • жёлтый — гудок;
  • зелёный — изменение направления движения и так далее.

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

Кадры: LEGO Education / YouTube

Если вы выбрали конструктор Coding Express, попробуйте установить приложение «Экспресс „Юный программист“» от LEGO Education для устройств на iOS и Android. В нём доступны наборы сценариев игр и вопросы, которые можно обсудить с ребёнком для обучения, например: «Что будет, если изменить порядок деталей?» Кроме того, в приложении есть раздел с анимациями героев конструктора, вовлекающими детей в процесс игры.

Набор Coding Express помогает дошкольникам понять базовые концепции, которые встречаются в программировании, такие как:

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

После Coding Express дети готовы переходить к конструкторам LEGO, основанным на блочном программировании.

Блочное программирование (6–12 лет)

Поддерживаемые наборы: LEGO Education WeDO 2.0; LEGO Education Spike Essential; LEGO Boost

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

Последовательность действий задаётся в специальном приложении от LEGO для планшетов или ПК, которое различается у отдельных наборов. В каждом конструкторе есть хаб (иногда его называют смарт хаб) — устройство с Bluetooth, которое воспроизводит запрограммированные команды.

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

Блочное программирование в LEGO Education Spike Essential

Программирование действий для моделей в LEGO Education Spike Essential происходит в приложении Spike для ПК и планшетов. Поддерживается Windows, macOS, Chromebook, iOS (iPad) и Android.

В ПО есть подробные инструкции по сборке разных вариантов Spike Essential — от роботов и транспорта до аттракционов. Чтобы разобраться с основами программирования с помощью блоков, ребёнок может выбрать раздел «Курсы» с 38 пошаговыми уроками, объединённых в несколько сюжетов.

Подборка уроков из модуля «Удивительный парк развлечений»
Скриншот: LEGO Education Spike / Skillbox Media

Использовать только готовые модели необязательно — можно создать свою. Для этого потребуется перейти в раздел Новый проект и выбрать один из двух режимов: Блоки иконок или Текстовые блоки. Оба они представлены в виде интерфейса среды Blockly от Google, переработанной под специфику LEGO. Блоки команд соединяются между собой с помощью пазов.

В режиме Блоки иконок на каждом элементе есть изображение, иллюстрирующее команду. Это удобно для детей 6-7 лет, которые пока не могут уверенно читать. Если потребуется подробное объяснение — на блок можно нажать правой кнопки мыши для его появления. Последовательность действий выстраивается слева направо.

Пример сборки в режиме Блоки иконок
Скриншот: LEGO Education Spike / Skillbox Media

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

Пример сборки в режиме Текстовые блоки
Скриншот: LEGO Education Spike / Skillbox Media

Основное отличие режима Текстовые блоки от Блоков иконок в расширенном списке команд и настроек, которые подойдут для создания сложных циклов действий. А параметрическая система позволяет точнее настроить поведение модели: скорость вращения мотора, градусы поворота, заданное время для выполнения действий и так далее.

Работая с текстовыми блоками, ребёнок осваивает переменные, условия «если…, то…» и другие операции, которые используются в обычных языках программирования. Конструкторы с блочным подходом к управлению моделей можно считать переходной стадией к работе с кодом.

Гибридное программирование с использованием блоков и Python (9–15 лет)

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

Как и в случае с блочным программированием, оба подхода доступны в ПО для конструктора: уже знакомом Spike (при запуске необходимо выбрать модель Spike Prime) или приложении Mindstorms для набора Robot Inventor.

Примечание. В приложении EV3 Classroom для набора LEGO Mindstorms EV3 Education доступен только режим блочного программирования. Чтобы подключить поддержку Python, потребуется специальная прошивка и редактор Visual Studio Code. Есть и другие способы работать с EV3, о них мы расскажем чуть ниже.

Гибридное программирование в LEGO Mindstorms Robot Inventor 51515

Конструктор Robot Inventor — это набор деталей для сборки пяти основных вариаций моделей. Каждая из них подходит для обучения определённым принципам программирования и механики.

  • Бласт — робот, созданный по подобию человека. Умеет стрелять, махать рукой, говорить и реагировать на прикосновения. Подходит для изучения последовательных сценариев и событий.
  • Гело — механизм на четырёх конечностях, который может выполнять различные действия — например, поднимать задние «лапы». Программирование движений помогает понять принципы работы циклов и управления синхронными моторами, которые входят в комплект сборки.
  • MVP — многофункциональная сборка различных видов транспорта, от подъёмного крана до турели. Обучает программированию циклов, работе с датчиком расстояния, а также написанию разветвлённых условий, при которых робот выполняет те или иные действия в зависимости от ситуации. К примеру, если сенсор зафиксирует препятствие на заданном расстоянии — робот изменит направление.
  • Чарли — бот-помощник с сенсорами, который умеет приветствовать, поворачиваться и танцевать. Обучает программировать цепочки событий и функции ввода — вывода: например, использовать подсветку и звуковые эффекты для выражения различных эмоций.
  • Трики — можно собрать модель для боулинга, баскетбола, рисования и других хобби. Модель помогает освоить работу с точной настройкой сложных движений.

В приложении LEGO Mindstorms в разделе Сообщество можно найти вариации моделей на базе сборки Robot Inventor — от робота-собачки до устройства, совмещающего в себе принтер и сканер (процесс «печати» выполняется с помощью установленного маркера).

Примеры проектов от сообщества
Скриншот: LEGO Mindstorms / Skillbox Media

После сборки желаемой модели хаб конструктора подключается к ПК или планшету с помощью Bluetooth или USB-кабеля. Теперь можно создать проект в режиме блочного программирования или Python.

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

Также есть категории для создания блоков с индивидуальными настройками и параметрами: операторы с вводом значений (зелёный цвет), переменные (оранжевый цвет) и Мои блоки (красный цвет) — поле с кастомными блоками, в которые можно добавить значения, в том числе булевы, и метки-обозначения для удобства.

Создание кастомных блоков в Mindstorms
Скриншот: LEGO Mindstorms / Skillbox Media

Блочное программирование схоже с аналогичными текстовыми блоками в приложении Spike, которое мы разбирали раньше. Создав программу, её можно перенести на устройство кнопкой запуска в правом нижнем углу.

Пример команд на основе блочного программирования из урока по созданию движений для Бласта
Скриншот: LEGO Mindstorms / Skillbox Media

Содержимое блоков в Robot Inventor состоит не только из числовых значений и стандартных параметров вроде поворота по часовой или против часовой стрелки. Например, можно добавить уникальную ноту для исходящего звука или нарисовать собственную анимацию в мини-редакторе в формате 5×5 пикселей для отображения на LED-дисплее.

Текстовая среда Python — второй режим программирования в Robot Inventor. Для знакомства ребёнка с языком программирования в среду встроен подробный справочник, где можно узнать список основных функций, понять принципы работы с кодом и найти их примеры для разных действий: как подключить один из моторов, как работать с датчиками, как задавать переменные, циклы и так далее. Код из окна можно копировать напрямую в редактор, изменять значения и запускать программу, чтобы посмотреть, как изменилось поведение робота.

Красным обведена кнопка вызова справочных материалов по редактору. В окне справки один из этапов урока по запуску моторов
Скриншот: LEGO Mindstorms / Skillbox Media

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

Шаблон кода для программирования соло Чарли на барабанах из тематического урока
Скриншот: LEGO Mindstorms / Skillbox Media

В сообществе любителей LEGO немало энтузиастов, которые выпускают собственные обучающие материалы по работе с наборами. Например, родителям и детям доступен подробный справочник по работе с Python с описанием основ языка программирования (правила синтаксиса, классы, команды, математические функции и так далее) в сочетании с примерами команд для Robot Inventor.

Гибридный метод программирования позволяет детям перейти от простых инструкций в виде комбинаций блоков к написанию кода. Программирование на Python расширяет возможности конструктора, а значит, дети смогут создавать интересных и сложных роботов, вовлекаясь в обучение. И в будущем, если ребёнок захочет перейти к «настоящему» программированию, он уже будет знать основы работы с Python.

Как расширить возможности наборов LEGO

Когда ребёнок долгое время работает с наборами LEGO, он может столкнуться с их ограничениями:

  • Количество доступных функций и возможных настроек моторов ограничено.
  • Отсутствует поддержка сторонних устройств — например, не получится подключить к хабу дополнительные модули в виде камеры или устройства распознавания голоса.
  • Отсутствует возможность управлять самим хабом, то есть контролировать его обращения к системным таймерам, точно настраивать задержки в совершении действий, сочетать паузы с определёнными условиями и так далее. Все эти манипуляции важны в сложных моделях, когда требуется точная синхронизация отдельных элементов конструктора. Особенно актуально это в тех случаях, когда ребёнок решает участвовать в различных челленджах и соревнованиях в области робототехники.
  • После снятия наборов с производства официальное ПО от LEGO перестаёт обновляться, а затем и вовсе становится недоступным. Обычно производитель указывает дату окончания поддержки на сайте. Например, поддержка ПО Mindstorms Education EV3 прекратится 31 июля 2026 года.

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

Scratch для LEGO (8–16 лет)

Поддерживаемые наборы: LEGO Education WeDo 2.0, LEGO Boost, LEGO Education Spike Prime

Визуальная среда блочного программирования для детей, изначально разработанная MIT Media Lab — подразделением Массачусетского технологического института. Инструмент ориентирован не только на расширение возможностей конструкторов LEGO, но и на создание интерактивных проектов, включая игры и анимации.

В основе блочных режимов программирования лежит технология Scratch, аналогичная официальному ПО LEGO (WeDo 2.0, Boost, серия Spike). Тем не менее Scratch расширяет возможности конструкторов. Вот несколько преимуществ в её использовании, помимо расширенных возможностей редактора блоков:

  • Анимация в редакторе может повторять действия модели в реальной жизни, что удобно для проверки запрограммированных действий.
  • Поддержка дополнительных устройств, включая Arduino и micro: bit через отдельные расширения. В результате можно создавать сложные проекты, где устройства от разных платформ скоординированы друг с другом. Например, робот LEGO может реагировать на сигналы Arduino и выполнять задачи с учётом дополнительной информации от его датчиков.
  • Scratch собрала большое сообщество энтузиастов. На официальном сайте можно общаться с другими участниками, изучать их проекты и делиться своими.

Scratch доступна в виде веб-сайта и приложения для Windows, macOS, ChromeOS и Android. Для работы с LEGO необходимо установить расширение для конкретного набора.

Интерфейс Scratch. Русский язык можно выбрать во вкладке Настройки — Язык
Скриншот: Scratch / Scratch Foundation / Skillbox Media

Список всех расширений открывается нажатием на кнопку Добавить расширение, которая находится в левом нижнем углу редактора. Чтобы среда распознала подключённое устройство, необходимо установить Scratch Link. Как только все условия будут выполнены, в редакторе появятся блоки кода для программирования роботов LEGO.

Пример запуска программы и её исполнение роботом в реальном времени
Кадры: Scratch Coding Class / YouTube

MakeCode (11–15 лет)

Поддерживаемые наборы: LEGO Mindstorms Education EV3

Бесплатная онлайн-среда от Microsoft с режимами блоков и текстовым программированием на JavaScript. Не требует установки клиента и работает через браузер на всех устройствах и платформах, где доступно подключение через USB и интернет-соединение. Для работы написанных программ на устройстве требуется прошивка EV3 не ниже версии 1.10E.

В MakeCode процесс сборки блоков происходит наглядно: заданные команды визуализируются на эмуляторе в приложении, запрограммированные звуки воспроизводятся, а неподходящие для цепей блоки сразу видно — они остаются полупрозрачными. Это облегчает освоение приложения.

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

Чтобы перенести написанную программу на модель конструктора, требуется нажать кнопку Download. Хаб должен быть подключён к ПК через USB-соединение.

MakeCode подойдёт для детей, которые уже освоили простые блочные среды и хотят перейти к текстовому программированию с наглядным процессом. Среда от Microsoft успешно справляется с этой задачей за счёт взаимосвязи визуальных блоков и кода. И стоит отметить использование JavaScript — одного из самых распространённых и востребованных языков в веб-разработке.

Pybricks (10–16 лет)

Поддерживаемые наборы: серии с современными смарт хабами — LEGO Spike, LEGO Boost, LEGO Technic, LEGO City, LEGO Mindstorms

Проект с открытым исходным кодом, созданный энтузиастами сообщества LEGO. Это среда блочного и текстового программирования на MicroPython, позволяющая расширить возможности наборов. Например, с Pybricks можно улучшить навигацию робота, заставить механизм балансировать на подвижных предметах или даже подключить его к геймпаду Xbox. По ссылке можно ознакомиться с подборкой видео от пользователей.

Примечание. Ребёнок работает с Pybricks в браузере, а передача данных на хаб идёт только через Bluetooth. Поэтому использовать iPad и iPhone не получится, так как браузеры Safari, Chrome и Firefox на iOS не поддерживают Bluetooth-соединение.

Перед работой с Pybricks хаб LEGO надо прошить. Для этого перейдите на веб-сайт, нажмите на значок шестерёнки, выберите Install Pybricks Firmware и следуйте инструкциям.

Для написания кода в верхнем левом углу веб-страницы создайте новую программу (знак +), выберите режим программирования и тип хаба. После этого запустится окно, где можно писать код. В правом нижнем углу (символ книги) доступны справочные материалы по основным командам MicroPython.

Режим блочного программирования открывается за дополнительную плату — после подписки на Patreon или покупки пожизненной лицензии за 59 долларов.

Если по какой-то причине необходимо вернуться к заводским настройкам, в разделе Restore Official LEGO Firmware можно сделать откат.

Интерфейс среды текстового программирования и раздел справки
Скриншот: Pybricks / Skillbox Media

RobotC (12–17 лет)

Поддерживаемые наборы: LEGO Mindstorms EV3 Education; LEGO Mindstorms NXT

Язык программирования RobotC создан на основе C, и его синтаксис близок к C++ и Python. Помимо некоторых моделей LEGO, он поддерживает и другие платформы, которые можно использовать в робототехнике, например VEX и Arduino.

Для программирования моделей LEGO потребуется скачать софт в соответствующей вкладке сайта. Поддерживается только Windows 7–10.

Важное отличие RobotC в работе с моделями LEGO от вариантов с Python в том, что он компилирует код в машинные команды, которые хаб выполняет моментально, не интерпретируя их построчно. В итоге робот реагирует быстрее, а его действия становятся точнее.

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

Среда RobotC распространяется по лицензии. Годовой тариф на одно место обойдётся в 49 долларов, а пожизненная лицензия — в 79 долларов.

Отдельно можно приобрести специальное приложение Robot Virtual Worlds. В этой программе доступно создание симуляции с виртуальными моделями LEGO и тестирование на них написанных программ, без взаимодействия с конструктором в реальной жизни.

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

Интерфейс RobotC
Скриншот: RobotC / Skillbox Media

Итог

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

Как выбрать набор LEGO:

  • Если ребёнку меньше семи лет, то подойдёт Education Coding Express, работающий с помощью физического кодирования. Для работы с ним не потребуется смартфон, ПК или другие гаджеты.
  • Если ребёнку от шести до 12 лет и он ничего не знает про программирование, то можно выбрать Education WeDO 2.0, Education Spike Essential или Boost. Они работают на основе блоков и позволяют освоить базовые навыки без написания кода.
  • Если ребёнку от девяти лет и вы хотите, чтобы он освоил реальные языки программирования, то выбирайте Education Spike Prime, Mindstorms EV3 Education или Mindstorms Robot Inventor 51515. Они поддерживают работу с блоками и код, написанный на MicroPython — упрощённом варианте Python.

Больше интересного про код — в нашем телеграм-канале.  Подписывайтесь!





Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована