Лего майндстормс блоки программирования

Обновлено: 28.04.2024

В оранжевой закладке палитры редактора Lego EV3 находятся блоки «Управление операторами». Это алгоритмические структуры, без которых невозможно создавать программы. С их помощью происходит запуск кода, переключение, прерывание, зацикливание и прочее. Еще их называют блоками последовательности действий. В верхней части пиктограмм расположена узкая оранжевая горизонтальная полоса.

управление операторами Lego Education EV3

блоки управления операторами Lego Education EV3

Всего во вкладке «Управление операторами» находится пять иконок слева направо:

  1. Начало
  2. Ожидание
  3. Цикл
  4. Переключатель
  5. Прерывание

«Начало»

Он всегда расположен в начале и служит для запуска программы на выполнение. На пиктограмме изображена стрелка зеленого цвета. Без него код работать не будет и другие значки не будут активными. В окне редактора если значка «Начало» нет или он не соединен с другими, остальные фрагменты программы выглядят немного замутненными.

Программный блок Lego EV3 Начало

программный блок «Начало»

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

«Ожидание»

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

Всего есть тринадцать вкладок с типами сенсоров, кнопками, счетчиками и т.д. в блоке ожидания EV3:

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

Для того чтобы повторить нужную последовательность кода определенное число раз при соблюдении нужных условий в редакторе Lego Education EV3 предусмотрен программный блок. Фактически он представляет собой контейнер с визуальным кодом. Проверка условий происходит после однократного выполнения кода. Конструкция «Цикл» является алгоритмической структурой типа «while» с постусловием.

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

блок Цикл Lego Mindstorms-EV3

программный блок «Цикл» Lego Mindstorms-EV3

Всего есть шестнадцать закладок. Тринадцать из них такие же, как и у блока «Ожидание». Добавлены еще три пункта:

  1. Неограниченный
  2. Подсчет
  3. Логическое значение

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

Циклы можно вкладывать друг в друга. Если в конструкцию добавляются фрагменты, то размер значка увеличивается. Также размер пиктограммы можно изменять с помощью маркеров, находящихся на границах изображения. Это очень похоже на изменения размера картинки в документе Word.

«Переключатель»

Находится четвертым слева в оранжевой закладке алгоритмических структур. По сравнению с циклом у него на одну вкладку меньше. Отсутствует пункт «Неограниченный». Он соответствует конструкции «if»… «else» или «если»… «то».

Блок Переключатель EV3

блок «Переключатель» Lego EV3

«Переключатель» может включать в себя 2 и более последовательности блоков. Эти последовательности называют вариантами. В зависимости от выбранной закладки определяется входное значение сенсора или какого-нибудь параметра. Исходя из входного параметра запускается только один из возможных вариантов.

Если нужно чтобы проверка вариантов выполнялась несколько раз, «Переключатель» нужно поместить в циклический блок.

«Прерывания цикла»

Это последний пятый значок во вкладке «Управление операторами». Он предназначен для завершения циклического блока. Имя прерывания выбирается в верхней части пиктограммы и больше никаких настроек нет.

Программный блок Прерывание цикла

программный блок «Прерывание цикла»

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

Программирование EV3 происходит сразу после того как вы создали своего робота. Нужно научить робота EV3 выполнять различные команды.

EV3 программирование

лего программирование

Запрограммировать робота с микрокомпьютером EV3 можно несколькими различными способами:

  1. Первый и самый простой способ – это при помощи интерфейса микроконтроллера EV3;
  1. Среда программирования EV3 позволяет при помощи визуального программирования создавать достаточно сложные программы:
  2. При помощи других языков программирования.

Программирование на микроконтроллере EV3

Самым простым является программирование при помощи самого интерфейса микрокомпьютера EV3.

Микропроцессор EV3 поставляется с уже установленным на нем программным обеспечением.

После включения модуля EV3 можно увидеть экран с четырьмя основными закладками.

Для программирования модуля требуется перейти в третью закладку при помощи кнопок управления. Затем открыть окно приложения Brick Program. Сразу отображаются два блока – это блок «Начало» и блок «Цикл».

EV3 программирование модуля

программирование блока лего

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

Среда программирования EV3

Среда программирования EV3

редактор EV3

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

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

Системные требования

требования к оборудованию

EV3 является целой платформой, которую можно использовать в игровых и образовательных целях. При помощи платформы Lego Mindstorms EV3 можно обучать основам робототехники, программирования, изучать различные алгоритмы. При этом не нужно иметь знаний схемотехники и различных протоколов.

Программирование EV3 Basic

Microsoft Small Basic

Small Basic

Основными достоинствами EV3 Basic являются:

  • Простота установки;
  • EV3 Basic является свободным программным обеспечением
  • Microsoft Small Basic специально разрабатывался для того, чтобы обучать программированию;
  • Не нужно перепрошивать микрокомпьютер EV3;
  • Поддерживает русский язык;
  • Имеет встроенную справку;
  • Имеет понятный интерфейс;
  • Есть множество примеров;
  • Поддерживает все возможности среды программирования Lego EV3.

Программирование EV3 на RobotC

Среда программирования RobotC специально разработана для образовательной робототехники. Этот язык может использоваться и новичками, и опытными программистами и является кросс-платформенным. Есть базовый и расширенный режим программирования.

RobotC для EV3

RobotC

В среде программирования присутствует C-подобный язык и язык RobotC. Язык RobotC – это переходный язык от визуального программирования к текстовым блокам. Для использования RobotC требуется перепрошивка микроконтроллера EV3. Использовать RobotC можно со многими робототехническими платформами. Это такие платформы как :

  • VEX IQ;
  • VEX CORTEX (EDR);
  • VEX PIC (Legacy Support);
  • LEGO MINDSTORMS EV3;
  • LEGO MINDSTORMS NXT;
  • TETRIX;
  • RCX (поддержка прежних версий);
  • UNO Arduino / MEGA 1280, MEGA 2560;

Среда программирования RobotC похожа на среду программирования Visual Studio и имеет интерфейс на английском языке. RobotC является платным с десятидневным бесплатным периодом.

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

  • На один компьютер 49 долларов;
  • На шесть рабочих мест 149 долларов;
  • На тридцать рабочих мест 299 долларов.
  • Кроме этого предлагаются бессрочные лицензии.

Операционная система для RobotC должна быть из семейства Microsoft Windows. При помощи среды программирования RobotC можно создавать эффективные программы с использованием сложных математических выражений.

Программирование EV3 на Python

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

На микрокомпьютере EV3 установлена операционная система Linux. Для того, чтобы программировать EV3 на Python нужно установить Linux ev3dev на модуль EV3.

ev3dev

ev3dev

Затем нужно установить образ на карту памяти microCD. Желательно, чтобы класс карты был не менее десяти. Объем карты памяти от двух до тридцати двух гигабайт. Можно также использовать карту памяти microSDHC.

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

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

В качестве одного из вариантов можно установить редактор кода PyCharm Edu. Есть бесплатная версия с наличием подсказок, проверкой кода и подсвечиванием синтаксиса. Созданный в программе файл можно передать в блок EV3 при помощи программы PuTTY. Эта программа помогает установить SSH соединение операционной системы Windows с микроконтроллером EV3.

PuTTY

PuTTY

Программирование EV3 при помощи Scratch

Scratch является графической средой программирования. Программировать EV3 при помощи Scratch можно если установить нужное программное обеспечение и настроить его. Программное обеспечение можно установить на любые операционные системы. Для примера выберем операционную систему Windows.

Scratch_2_0

Scratch_2_0

Как и в случае с программированием на Python, потребуется карта памяти с такими же параметрами. Карту памяти нужно отформатировать в файловой системе FAT32. На компьютер надо установить виртуальную Java-машину под названием leJOS.

Затем устанавливаем виртуальную машину на компьютер со всеми компонентами.

После этого устанавливаем образ на карту памяти. В дальнейшем при включении микрокомпьютера EV3 с картой памяти будет загружаться leJOS EV3. Без карты памяти будет происходить загрузка стандартного программного обеспечения Lego EV3.

Также на компьютере должна быть установлена свежая версия Adobe AIR. Затем можно установить редактор Scratch.

Установка редактора не занимает много времени.

Следующим шагом является установка ev3-scratch-helper-app. Это приложение служит для связи редактора Scratch и микроконтроллера EV3. Также в редакторе можно в настойках установить русский язык и нужно добавить блоки EV3 в редактор Scratch. После добавления блоков можно приступать к написанию программ.

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

Для того, чтобы сделать программирование роботов EV3 более простым и интуитивно понятным в среде программирования EV3 используется палитра блоков. Это блоки программирования различного цвета.

Палитра блоков

палитра блоков редактора Lego EV3

Всего палитра блоков состоит из шести закладок разного цвета слева направо:

  1. Зеленая – «Действие»
  2. Оранжевая – «Управление операторами»
  3. Желтая – «Датчики»
  4. Красная – «Операции с данными»
  5. Синяя – «Дополнения»
  6. Зеленая – «Мои блоки»

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

Закладка «Действие»

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

Закладка Действие

программные блоки «Действие»

Перечислю названия блоков:

  • Блок – «Средний мотор»
  • Блок – «Большой мотор»
  • Блок – «Рулевое управление»
  • Блок – «Независимое управление моторам»
  • Блок – «Экран»
  • Блок – «Звук»
  • Блок – «Индикатор состояния модуля»

Закладка «Управление операторами»

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

Закладка Управление операторами

вкладка «Управление операторами»

Всего в закладке «Операторы» пять блоков:

  • Блок – «Начало»
  • Блок – «Ожидание»
  • Блок – «Цикл»
  • Блок – «Переключатель»
  • Блок – «Прерывание цикла»

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

Закладка «Датчики»

Это закладка желтого цвета. Для создания обратной связи с робототехнической системой необходимо применять различного типа датчики. Ещё их называют сенсорами. Датчики Lego EV3 позволяют автономно управлять роботом EV3.

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

Всего в закладке «Датчики» одиннадцать блоков:

  • Блок – «Кнопки управления модулем»
  • Блок – «Датчик цвета»
  • Блок – «Гироскопический датчик»
  • Блок – «Инфракрасный датчик»
  • Блок – «Вращение мотора»
  • Блок – «Температурный датчик»
  • Блок – «Таймер»
  • Блок – «Датчик касания»
  • Блок – «Ультразвуковой датчик»
  • Блок – «Счетчик электроэнергии»
  • Блок – «Датчик звука NXT»

У всех блоков датчиков из палитры блоков Lego EV3 есть режимы измерения и сравнения. В некоторых блоках еще добавлен режим калибровки и сброса.

Палитра блоков. Закладка «Операции с данными»

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

Закладка Операции с данными

«Операции с данными»

Закладка «Операции с данными» состоит из десяти блоков программирования:

  • Блок – «Переменная»
  • Блок – «Константа»
  • Блок – «Операции над массивами»
  • Блок – «Логические операции»
  • Блок – «Математика»
  • Блок – «Округление»
  • Блок – «Сравнение»
  • Блок – «Интервал»
  • Блок – «Текст»
  • Блок – «Случайное значение»

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

Палитра блоков. Закладка «Дополнения»

Закладка синего цвета. Блоки программирования в закладке дополнений позволяют значительно расширить возможности робототехнических систем Lego EV3. С их помощью можно организовать совместную работу нескольких роботов. При помощи блока EV3 удаленно управлять другим Lego роботом и многое другое.

Блоки дополнения

блоки «Дополнения» ПО Лего EV3

Закладка «Дополнения» в палитре блоков состоит из десяти блоков программирования:

На начальном этапе изучения программирования роботов Lego EV3 эти блоки не понадобятся. Но с ростом знаний и усложнением решаемых задач без этих блоков будет тяжело обойтись.

Палитра блоков. Закладка «Мои блоки»

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

Закладка Мои блоки

вкладка «Мои блоки»

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

Блоки программирования Лего EV3

Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера LEGO NXT Mindstorms 2.0. Для разработки приложений я буду использовать платформы Microsoft Robotics Developer Studio 4 (MRDS 4) и National Instruments LabVIEW (NI LabVIEW). Будут рассматриваться и реализовываться задачи автоматического и автоматизированного управления мобильными роботами. Двигаться мы будем от простого к сложному.


Предвосхищая некоторые вопросы и комментарии читателей.

Почему именно NXT Mindstorms 2.0? Потому-что для своих проектов данный набор мне показался наиболее подходящим, т.к. микрокомпьютер NXT полностью совместим с платформами MRDS 4 и NI LabVIEW, а так же данный набор является очень гибким в плане сборки различных конфигураций роботов — затрачивается минимум времени на сборку робота.

Почему платформы MRDS 4 и NI LabVIEW? Так сложилось исторически. Обучаясь на старших курсах университета стояла задача в разработке учебных курсов с использованием данных платформ. К тому же платформы обладают достаточной простотой в освоении и функциональностью, с их использованием можно написать программу непосредственно для управления роботом, разработать интерфейс пользователя и провести тестирование в виртуальной среде (в случае с MRDS 4).

Да кому вообще нужны эти ваши уроки, в сети и так куча проектов по робототехнике! С использованием данной связки (NXT+MRDS 4/NI LabVIEW) учебных статей практически нет, в основном используется родная среда программирования, а в ней совсем все тривиально. Всем кому интересны робототехника, программирование и у кого есть набор NXT (а таких не мало), возрастная аудитория любая.

Графические языки программирования это зло, а те кто на них программируют еретики! Графические языки программирования коими и являются MRDS 4 и NI LabVIEW несомненно имеют свои минусы, например ориентированность под узкие задачи, но все же в функциональности они мало уступают текстовым языкам, тем более NI LabVIEW изначально разрабатывался как язык легкий в освоении для решения научных и инженерных задач, для этого в нем присутствует множество необходимых библиотек и инструментов. По-этому для решения наших задач данные графические языки являются наиболее подходящими. И не надо нас за это сжигать на костре презирать.

Все это выглядит по-детски и вообще не серьезно! Когда задача состоит в реализации алгоритмов, в обучении основам и принципам программирования, робототехники, систем реального времени без углубления в схемотехнику и протоколы, то это очень подходящий инструмент хоть и не дешевый (касаемо набора NXT). Хотя для этих же целей неплохо подойдут наборы на базе Arduino, но совместимости с MRDS 4 и NI LabVIEW у данного контроллера почти нет, а в данных платформах есть свои прелести.

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

Краткий обзор платформ MRDS 4 и NI LabVIEW.

Внесу некоторую ясность в терминологию. Под платформой, в данном случае, имеется ввиду совокупность различных инструментов, например язык VPL в MRDS, а так же среда выполнения приложений, т.е. непосредственной компиляции приложений в исполняемые (*.exe) файлы нету.

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

Краткий обзор набора LEGO NXT Mindstorms 2.0.


Рисунок 1 — Микрокомпьютер NXT с подключенными датчиками и приводами

И конечно же в наборе находятся разнообразные детали LEGO в форм-факторе LEGO Technic из которых будут собраны исполнительные механизмы и несущая конструкция.


Рисунок 2 — Детали в форм-факторе LEGO Technic

Пишем первое приложение.

Напишем первое приложение. Пусть, классически, данное приложение выводит текст “Hello, World!”. Реализация будет происходить поочередно в MRDS 4 и NI LabVIEW, в процессе будем рассматривать специфику каждой платформы.

Предварительно инсталлируем платформы MRDS 4 и NI LabVIEW, в случае с MRDS 4 инсталляция должна проводится в папку путь к которой не состоит из кириллицы (русских букв), учетная запись пользователя так-же должна состоять только из латинских букв.

1. Платформа MRDS 4.

Запускаем среду VPL (Меню Пуск — Все Программы — Microsoft Robotics Developer Studio 4 — Visual Programming Language). Данная среда позволяет разрабатывать приложения на языке VPL, проводить тестирование в виртуальной среде VSE. Программа в VPL представляет собой диаграмму, состоящую из соединенных между собой блоков. В открывшемся окне, помимо стандартной панели команд и меню, присутствует 5 основных окон:

  1. Basic Activities – содержит базовые блоки, которые реализуют такие операторы как константа, переменная, условие и т.д.;
  2. Services – содержит блоки, предоставляющие доступ к функционалу платформы MRDS, например блоки для взаимодействия с какой-либо аппаратной составляющей робота, или блоки для вызова диалогового окна;
  3. Project – объединяет диаграммы входящие в проект, а так же различные конфигурационные файлы;
  4. Properties – содержит свойства выделенного блока;
  5. Diagrams window – содержит, непосредственно, диаграмму (исходный код) приложения.


Рисунок 3 — Среда программирования VPL

Выполним следующую последовательность действий:

  1. добавим блоки Data (из окна Basic Activities) и блок сервиса Simple Dialog (из окна Services),
  2. в блок Data введем “Hello, World!” (без кавычек) и выберем тип данных String,
  3. соединим блок Data с блоком Simple Dialog, появиться диалоговое окно,
  4. далее, все выполняем как на рисунках


Рисунок 4 — Окно Connections


Рисунок 5 — Окно Data Connections


Рисунок 6 — Законченный вид диаграммы


2. Платформа NI LabVIEW.

На данной платформе все реализуется, практически, идентично. Запустим среду LabVIEW. Перед нами появиться два окна, первое — Front Panel, предназначено для реализации интерфейса пользователя (внешнего вида виртуального прибора), второе — Block Diagram, для реализации логики программы.


Рисунок 8 — Окна среды LabVIEW

Мы будем использовать окно Block Diagram. Выполним следующие шаги:

  1. в окне Block Diagram вызовем контекстное меню, нажатием правой кнопкой мыши,
  2. в появившемся окне перейдем по вкладкам, как на рисунке и выберем String Constant,

Привет, Хабр! Мы уже рассказывали о платформе LEGO MINDSTORMS Education EV3. Основные задачи этой платформы — обучение на практических примерах, развитие навыков STEAM и формирование инженерного мышления. В ней можно проводить лабораторные работы по изучению механики и динамики. Лабораторные стенды из кубиков LEGO и утилиты по регистрации и обработке данных делают опыты еще интереснее и нагляднее и помогают детям лучше понять физику. Например, школьники могут собрать данные о температуре плавления и с помощью приложения систематизировать их и представить в виде графика. Но это только начало: сегодня мы расскажем, как дополнить этот набор средой программирования MicroPython и использовать его для обучения робототехнике.




Учим программированию с помощью EV3

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

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


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

Здесь есть несколько хитростей, одна из которых — показать, что код выполняет те же задачи, что и блоки. В среде EV3 это можно сделать благодаря интеграции с MicroPython: дети создают одну и ту же программу в базовой среде программирования с помощью блоков и на языке Python в Visual Studio Code от Microsoft. Они видят, что оба способа работают одинаково, но кодом решать сложные задачи удобнее.

Переходим на MicroPython

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

Чтобы начать работать, нужно скачать образ EV3 MicroPython на любую microSD-карту, установить ее в микрокомпьютер EV3 и включить его. Затем нужно установить бесплатное расширение для Visual Studio. И можно приступить к работе.

Программируем первого робота на MycroPython


На нашем сайте есть несколько уроков для освоения базовых понятий робототехники. Модели на EV3 знакомят детей с азами, которые используются в самоуправляемых автомобилях, заводских роботах-сборщиках, станках с ЧПУ.

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

Для работы нам понадобятся:

  • базовый набор LEGO MINDSTORMS Education EV3;
  • большой лист клетчатой бумаги;
  • цветные маркеры.

Сначала инициализируем библиотеку модулей EV3:


Настраиваем платформу, которая вращает ручку как мотор в порте B. Задаем передаточное отношение двухступенчатой зубчатой передачи с количеством зубьев 20-12-28 соответственно.


Настраиваем подъемный механизм для ручки как мотор в порте C:


Настраиваем гироскоп, измеряющий угол наклона ручки, в порте 2:


Настраиваем цветовой датчик в порте 3. Датчик используется, чтобы определять белую бумагу под чертежной машиной:


Настраиваем датчик касания в порте 4. Робот начинает рисовать, когда датчик нажат:


Определяем функции, которые поднимают и опускают ручку:


Определяем функцию для поворота ручки на заданный угол или до определенного угла:


Если целевой угол больше, чем текущий угол гироскопического датчика, продолжаем движение по часовой стрелке с положительной скоростью:


Если целевой угол меньше, чем текущий гироскопического датчика, то двигаемся против часовой стрелки:


Останавливаем вращающуюся платформу, когда целевой угол будет достигнут:


Устанавливаем начальное положение ручки в верхнем положении:


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

Когда устройство не готово, светодиоды на контроллере принимают красный цвет, и на ЖК-экране отображается изображение «палец вниз»:


Дожидаемся, когда датчик цвета считает синий или белый цвет, устанавливаем цвет светодиодов зеленым, отображаем на ЖК-экране изображение «палец вверх» и сообщаем, что устройство готово к работе:


Дожидаемся нажатия датчика касания, присваиваем гироскопическому датчику значение угла 0 и начинаем рисовать:


Поднимаем держатель ручки и возвращаем его в исходное положение:


Вот такая несложная программа у нас получилась. И теперь запускаем ее и смотрим на робота-чертежника в деле.

Что дают такие примеры


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

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

Читайте также: