Контроллер lego mindstorms ev3

Обновлено: 28.11.2022

Микрокомпьютер EV3 начали выпускать в 2013 году. Он пришел на смену микрокомпьютеру NXT и является более современной моделью.

Микрокомпьютер EV3 часто называют микроконтроллер EV3, блок управления EV3, модуль EV3, интеллектуальный блок. Также часто можно встретить в литературе название «P — кирпич» или «P — brick».

Это название является сокращением от Programmable brick — то есть программируемый блок (кирпич).

Микрокомпьютер EV3

блок EV3

Микрокомпьютер EV3 входит в состав робототехнических конструкторов Lego Mindstorms Education EV3 образовательной и домашней версии. Микроконтроллер EV3 является компьютерным мозгом робота. Операционной системой микрокомпьютера является Linux. Датчики опрашиваются со скоростью в 1 Гигагерц.

Интерфейс управления микрокомпьютера EV3

В модуле EV3 реализован шестикнопочный интерфейс управления. Этот интерфейс имеет программируемую визуальную индикацию состояний — подсветка различных цветов.

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

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

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

Порты модуля EV3

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

Порты ввода

порты блока

Также сбоку есть дополнительный USB — порт, который можно использовать для чтения USB-flash накопителей, подключения Wi-Fi приемника WiFi. Адаптер нужно приобретать отдельно. Flash память адаптера 16 Мб. При помощи этого порта можно создать последовательную цепь микрокомпьютеров EV3. Всего можно последовательно соединить до четырех программируемых блоков управления EV3.

Последовательное соединение блоков

соединение микроконтроллеров

Порты входа обозначаются цифрами от одного до четырех. На другой стороне модуля есть четыре порта выхода, куда происходит подключение моторов. Это позволяет создавать сложные и функциональные модели роботов. Порты выхода обозначаются буквами A, B, C, D. Также со стороны портов выхода имеется мини – USB порт. Он позволяет при помощи USB кабеля соединять модуль EV3 с компьютером.

С этой же стороны блока есть слот для чтения карт формата микро-USB. Этот слот позволяет увеличить объем памяти доступной для хранения данных микрокомпьютера EV3 до 32 гигабайт. SD карта в комплект не входит и покупается отдельно.

Динамик EV3

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

Динамик модуля EV3

динамик блока EV3

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

Программирование с помощью интерфейса микрокомпьютера EV3

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

Программирование с помощью интерфейса микрокомпьютера EV3

программирование с помощью интерфейса микрокомпьютера EV3

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

Как соединить микроконтроллер EV3 с компьютером

Всего существует три способа установить соединение микроконтроллера с компьютером:

  1. Через USB – кабель
  2. С помощью встроенного модуля Bluetooth
  3. Через Wi — Fi приемник

Установка и зарядка батарей блока EV3

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

Производить зарядку батареи можно, не вынимая ее из собранной модели. Это значит, что не нужно тратить время на разборку и сборку робота, чтобы заменить аккумулятор.

батареи ev3

аккумуляторы и батареи ev3

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

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

При этом модуль при использовании аккумулятора работает дольше, чем при использовании батареек. Чтобы батарея дольше сохраняла работоспособность есть несколько простых правил:

  • Если батарея не используется, то ее лучше на время вынуть
  • Каждый комплект батарей должен хранится отдельном контейнере для совместного использования
  • Громкость динамик лучше уменьшить
  • Произвести правильные настройки параметров спящего режима
  • Если вы не используете Bluetooth и Wi-Fi, то их нужно отключить
  • Стараться избегать ненужного износа моторов

Технические характеристики микрокомпьютера EV3

Микрокомпьютер Lego EV3 имеет следующие характеристики:

  • Процессор — ARM9
  • Микрокомпьютер EV3 имеет операционную систему Linux
  • Контроллер блока программирования — ARM9 с частотой 300 МегаГерц
  • Объем flash-памяти составляет 16 МБ
  • Объем оперативная памяти — 64 МБ
  • Модуль EV3 имеет монохромный черно-белый экран с разрешение 178×128 px
  • При осуществлении связь с главным компьютером через шину USB 2 .0 скорость передачи данных достигает 480 Мбит/с
  • При осуществлении связь с главным компьютером через шину USB 1 .1 скорость передачи данных до 12 Мбит/с
  • Карта памяти типа Micro SD с поддержкой SDHC, версии 2 .0. Максимальный объем памяти карты 32 ГБ
  • По 4 входных и выходных порты для подключения моторов и датчиков
  • Соединение осуществляются при помощи кабелей с коннекторами типа RJ12
  • Поддерживается автоматическая идентификация сенсоров и моторов
  • Электропитание от 6 батареек типа AA (батарейки можно заменить на литиевые аккумуляторы) или от аккумуляторной батарея

EV3 является третьей версией конструктора Lego Mindstorms Education. Вторая версия носила название NXT, первая версия – RCX.

Как включить микрокомпьютер EV3

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

Индикация модуля EV3

подсветка блока EV3

По умолчанию будет выбран вариант «Прервать X». При помощи кнопки «Вправо» нужно выбрать вариант «Принять». После этого нажмите центральную кнопку (OK). Теперь микрокомпьютер EV3 выключен. Если нажать OK, то при выбранном варианте Х, произойдет возврат в окно «Запустить последнюю».

Программирование 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, а только наиболее простые и не требующие каких-либо специальных знаний. Каждый вариант имеет свои достоинства и недостатки. Остается только выбрать что больше всего подходит в каждом конкретном случае.

Базовый набор Lego Mindstorms 45544 Education EV3 в своем составе имеет все что нужно для обучения робототехнике на базе технологий Lego Mindstorms. Робототехнический конструктор Lego Mindstorms Education EV3 имеет артикул 45544 и является основной составляющей платформы EV3.

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

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

LEGO MINDSTORMS EV3 45544

LEGO EV3 45544

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

Программное обеспечение Lego Mindstorms 45544

ПО образовательной версии входит в комплект поставки Lego Mindstorms Education EV3 45544. Программирование происходит в среде программирования LabVIEW. Это графический язык программирования при помощи пиктограмм.

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

Программное обеспечение EV3

редактор Lego EV3

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

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

Механические детали Lego Mindstorms 45544

Размеры всех деталей в наборе Lego EV3 измеряются в модулях.

Модуль – это расстояние равное 0,8см, также это расстояние между двумя рядом расположенными отверстиями в деталях.

Детали EV3

детали лего EV3

В состав роботехнического набора EV3 45544 входит 528 пластмассовых деталей Lego Technic таких как: втулки, соединительные штифты, оси, балки, стрелки, рамки, блоки, зубчатые колеса, вращающееся днище с вращающейся верхушкой, шариковый подшипник со стальным шариком, ступицы, шины, рельсы, криволинейные панели.

Детали механики образовательного набора Lego EV3

Основные элементы Lego Mindstorms 45544

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

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

Блок EV3 с сенсорами и сервомоторами

модуль EV3 с датчиками и моторами

Датчики EV3:

  • Ультразвуковой – может измерять расстояние до нужного объекта;
  • Касания – реагирует на нажатие, в наборе два датчика;
  • Цвета – определяет цвет, освещенность, отраженный и рассеянный свет;
  • Гироскопический – позволяет измерить угол и скорость поворота.

Сервомоторы EV3:

  • Два больших, мощных сервомотора с редуктором;
  • Один средний сервомотор — более быстрый, но менее мощный.

Также есть семь соединительных кабелей, один USB кабель, перезаряжаемый аккумулятор. Зарядное устройство аккумулятора в комплект поставки не входит и приобретается отдельно.

Как можно загрузить программу в робота EV3

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

  • Самый простой через USB порт, но робот соединен с компьютером и при отладке и запуске программы на выполнение ограничен длиной USB — кабеля;
  • Соединение по Bluetooth – позволяет сделать робота более мобильным и запускать программу на выполнение можно прямо с компьютера при помощи среды программирования Также можно визуально контролировать ход выполнения программы и вносить корректировки в программу. Это позволяет более быстро произвести отладку программы. Правда при Bluetooth соединение аккумуляторная батарея садится быстрее;
  • Соединение при помощи Wi-Fi тоже дает дополнительную свободу действий, но нужно отдельно прибрести Wi-Fi модуль для установки на микрокомпьютер EV

Дополнительные возможности Lego Mindstorms 45544

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

Ресурсный набор

ресурсный набор ev3

Есть дополнительный набор под артикулом 45570 «Космические проекты EV3». При помощи этого набора появляется возможность решать задачи в области аэрокосмических исследований.

Космические проекты EV3

космические проекты

На официальном сайте можно скачать учебные материалы в состав которых входят комплекты заданий:

В статье содержится описание опыта использования конструктора Lego Mindstorms EV3 для создания прототипа робота с его последующим программным и ручным управлением при помощи Robot Control Meta Language (RCML).

Далее будут рассмотрены следующие ключевые моменты:

  • Сборка прототипа робота на базе конструктора Lego Mindstorms EV3
  • Быстрая установка и настройка RCML для Windows
  • Программное управление роботом на базе контроллера EV3
  • Ручное управление периферией робота с помощью клавиатуры и геймпада

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








2. Следующий шаг — подготовка RCML для работы с конструктором Lego Mindstorms EV3.

Следует скачать архивы с исполняемыми файлами и файлами библиотек rcml_build_1.0.6.zip и rcml_modules_build_1.0.6.zip.

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

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



Далее необходимо создать файл конфигурации config.ini, который необходимо расположить в этом же каталоге. Для реализации возможности управления контроллером EV3 при помощи клавиатуры и геймпада, следует подключить модули lego_ev3, keyboard и gamepad.

Далее следует произвести сопряжение контроллера EV3 и адаптера.

Инструкция содержит пример сопряжения контроллера Lego Ev3 и ПК под управлением операционной системы Windows 7.

1. Нужно перейти в раздел настроек контроллера Ev3, далее в пункт меню «Bluetooth».

2. Следует убедиться в правильности установки параметров конфигурации. На против пунктов “Visibility”,” Bluetooth” должны быть установлены галочки.


3. Необходимо перейти в «Панель управления», далее «Устройства и принтеры», далее «Устройства Bluetooth».


4. Необходимо нажать кнопку «Добавление устройства». Откроется окно для выбора доступных Bluetooth устройств.


5. Следует выбрать устройство “EV3” и нажать кнопку «Далее».

6. На экране контроллера EV3 отразится диалоговое окно «Connect?». Нужно выбрать вариант галочки, и подтвердить свой выбор нажатием центральной клавиши.


7. Далее отобразиться диалоговое окно «PASSKEY», в строке ввода должны быть указаны цифры «1234», далее следует подтвердить ключевую фразу для сопряжения устройств, путем нажатия центральной клавиши на позиции с изображением галочки.


8. В мастере сопряжения устройства появится форма для ввода ключа для сопряжения устройств. Нужно ввести код «1234» и нажать клавишу «Далее».


9. Далее отобразиться окно, с успешным подключением устройства. Следует нажать клавишу «Закрыть».


10. На ПК необходимо вернуться в «Панель управления», далее «Устройства и принтеры», далее «Устройства Bluetooth». В списке доступных устройств отобразится устройство, с которым было произведено сопряжение.


11. Следует двойным нажатием зайти в свойства подключения “EV3”.


12. Далее необходимо перейти во вкладку «Оборудование».


13. Далее следует двойным нажатием перейти в свойства подключения «Стандартный последовательный порт по соединению Bluetooth».


14. Указанный в свойствах индекс COM-порта, следует использовать в конфигурационном файле config.ini модуля lego_ev3. В примере показаны свойства Bluetooth подключения контроллера Lego EV3 с использованием стандартного последовательного порта COM14.

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

Теперь необходимо произвести настройку модуля keyboard. Модуль находится в каталоге control_modules, далее keyboard. Следует создать конфигурационный файл config.ini рядом с файлом keyboard_module.dll. Перед тем, как создать конфигурационный файл, необходимо определить, какие действия должны быть совершены по нажатию клавиш.

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

В качестве примера, буду использовать нажатия следующих клавиш:

  • Стрелки вверх/вниз используются для вращения мотора задних колес вперед/назад
  • Стрелки влево/вправо поворачивают колеса влево/вправо

1. При добавлении новой оси, необходимо в секцию [mapped_axis] добавить свойство, имя которого есть имя оси, и присвоить ему значение кнопки клавиатуры в HEX формате, при этом на каждую кнопку заводится подобная запись, т.е. имя оси может быть использовано несколько раз. В общем случае запись в секцию [mapped_axis] будет выглядеть следующим образом:


2. Необходимо установить максимальное и минимальное значение, которое может откладываться по данной оси. Для этого необходимо с новой строки добавить секцию в конфигурационном файле config.ini, одноименную с именем оси, и задать свойства upper_value и lower_value, которые соответствуют максимум и минимуму оси соответственно. В общем виде данная секция выглядит следующим образом:


3. Далее следует определить, какое значение будет иметь ось в случае нажатия кнопки на клавиатуре, которая ранее была прикреплена к ней. Определение значений происходит посредством создания секции, название которой состоит из имени оси и значения кнопки клавиатуры в HEX формате, разделенные между собой символом нижнего подчеркивания. Для задания значения по умолчанию (в не нажатом) и нажатом состоянии используются свойства unpressed_value и pressed_value соответственно, в которые передаются значения. Общий вид секции в таком случае выглядит следующим образом:


Текст спойлера для удобства просмотра скопирован из документации по RCML.

Для реализации управления прототипом робота был создан конфигурационный файл модуля keyboard, который включает в себя оси go и rotate. Ось go используется для задания направления движения робота. При нажатии клавиши “стрелка вверх” ось получит значение 100, при нажатии клавиши “стрелка вниз” ось примет значение -50. Ось rotate используется для установки угла поворота передних колес. При нажатии клавиши “стрелка влево” значение оси будет равно -5, при нажатии «стрелки вправо» ось примет значение 5.

Далее для реализации управления при помощи геймпада, необходимо настроить модуль gamepad. Конфигурирование модуля включает в себя создание конфигурационного файла config.ini рядом с gamepad_module.dll, находящего в каталоге control_modules, далее gamepad.

Дополнительная информация об особенностях настройки модуля gamepad отображена в справочном руководстве по RCML.

3. Следующий шаг — написание программы на языке RCML.

В корне созданного каталога, необходимо создать файл программы. Имя файла программы и его расширение может быть любым, однако следует избегать русских букв в названии. В примере использовано имя файла — hello.rcml.

Для модуля lego_ev3 программный код резервирования робота, имеет следующий вид:

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

Алгоритм программы следующий:

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

Для компилирования программы необходимо использовать командную строку window. Сначала следует переместиться в созданный каталог с исполняемыми файлами rcml_compiler.exe и rcml_intepreter.exe. Далее нужно ввести следующие команды.

Команда для компилирования файла hello.rcml:


В результате компилирования, в созданной директории появится новый файл hello.rcml.pc.



Теперь следует убедиться в том, что контроллер EV3 включен, сопряжен с Bluetooth адаптером. Геймпад должен быть подключен к ПК. После этого нужно выполнить команду исполнения программного файла:



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

4. Следующий шаг – управление роботом в ручном режиме при помощи клавиатуры.

Далее будет продемонстрирован процесс программной установки связи между двигателями робота и клавиатурой.

При помощи клавиатуры возможно управление любым двигателем робота. В рамках примера реализовано управление следующими механизмами:

  • Углом поворота передних колес
  • Направлением вращения задних колес

Далее следует откомпилировать программу и выполнить её. Результат ручного управления Lego роботом при помощи на клавиатуры показан на видео внизу страницы.

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

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

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

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


Осторожно! Публикация может вызвать непреодолимое желание завести сына.

Урок истории

Компания LEGO (название произошло от датской фразы «leg godt», «Играй с удовольствием») не нуждается в представлении – она была основана в далёком 1932 году, хотя первые знакомые всем пластиковые кубики появились значительно позже, в 1947. Примечательно, что кубики LEGO, выпускаемые в те годы, полностью совместимы с теми, что выпускаются сейчас.

История создания компании, выпущенная компанией Pixar к 80-летнему юбилею LEGO:

Сейчас компания производит около 20 миллиардов деталек в год, то есть более 630 штук в секунду. В текущем модельном ряду более 600 различных конструкторов и так уж получилось, что серия Mindstorms является своего рода вершиной технической мысли, самым-самым навороченным конструктором. Если вкратце, то она позволяет делать вполне себе полноценных роботов.

Как гласит википедия, серия LEGO Mindstorms была впервые представлена в 1998 году. Через 8 лет (в 2006) на свет появился набор LEGO Mindstorms NXT 1.0, а уже в 2009 — набор LEGO Mindstorms NXT 2.0. Сегодня речь пойдёт о LEGO Mindstorms EV3 – последнем (третьем) поколении терминатора конструктора, который был представлен почти год назад, 4 января 2013 года (в продаже появился только спустя полгода).

Отличия EV3 от NXT 2.0

В принципе, главная идея осталась прежней – серия предназначена для сборки программируемых роботов. Поэтому первым встаёт вопрос, а что же поменялось с момента выхода предыдущего конструктора и стоит ли покупать новый? Основное отличие заключается в обновленных датчиках/моторах и, самое главное, в интеллектуальном блоке EV3 (EV означает EVolution):

EV3 NXT
Дисплей Монохромный LCD, 178x128 Монохромный LCD, 100x64
Процессор 300 МГц
Texas Instruments
Sitara AM1808 (ARM9)
48 МГц Atmel
AT91SAM7S256
(ARM7TDMI)
Память 64 Мб RAM
16 Мб Flash
Слот microSDHC (до 32 Гб)
64 Кб RAM
256 Кб Flash
USB-хост Есть Нет
Wi-Fi Опционально, через USB-донгл Нет
Bluetooth Есть Есть
Поддержка Apple-устройств Есть Нет
Как видите, разница довольно существенна – было бы странным, если бы за 4 года поменяли только разрешение экрана и набор наклеек.

Ещё одно отличие заключается в том, что серия NXT продавалась в нескольких версиях (в разные годы) и представляла собой разные наборы, базовые и ресурсные. У нового EV3 с этим попроще – пока он продаётся в основном варианте – 31313 (601 деталь), из которого можно наделать кучу всего. Но при желании можно докупить базовый набор 45544 (541 деталь) с дополнительными сенсорами и детальками (использовать детали от обычных конструкторов также никто не мешает). Кстати, обратите внимание на пятизначные артикулы – на такую нумерацию компания перешла в 2013 году.

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

Внутри коробки

Ещё когда я сам был маленький и ездил с родителями в центральный Детский Мир (когда он ещё был), на Лубянку – уже тогда я не мог оторвать глаз от коробок с LEGO. Тогда не было ни Гиктаймс, ни даже Хабра, но с тех пор коробки остались всё такими же яркими и сочными, даже во взрослом возрасте активируют процесс слюновыделения ) В этом плане другим производителям есть чему поучиться.


Часть коробки, на самом деле, представляет собой (если её разрезать) трассу с различными цветовыми зонами, которую можно использовать для роботов с сенсорами цвета.

Все детальки аккуратно разложены по пакетикам, в комплекте – инструкция и набор наклеек. Давайте вкратце пройдёмся по тому, что положили в комплект.



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


– Многофункциональный монохромный дисплей с разрешением 178х128
– Шестикнопочный интерфейс управления с функцией изменения подсветки (3 цвета) для индикации режима работы
– 4 порта ввода (1, 2, 3, 4) для подключения датчиков
– 4 порта вывода (A, B, C, D) для выполнения команд
– 1 разъём miniUSB для подключения EV3 к компьютеру
– 1 порт USB–хост (для соединения нескольких EV3 в одну цепь, например)
– 1 слот для карт памяти формата microSD (до 32Гб) – для увеличения объёма доступной памяти EV3
– Встроенный динамик




Кубик EV3 также поддерживает Bluetooth, WiFi (через USB-адаптер NETGEAR WNA1100 Wireless-N 150), для связи с компьютерами имеет программный интерфейс, позволяющий создавать программы и настраивать регистрации данных непосредственно на микрокомпьютере EV3.

» Большой EV3-сервомотор (2 штуки). Cоздан для работы с микрокомпьютером EV3 и имеет встроенный датчик вращения с точностью измерений до 1 градуса. Используя этот датчик, мотор может соединяться другими моторами, позволяя роботу двигаться с постоянной скоростью. Кроме того, датчик вращения может использоваться и при проведении различных экспериментов для точного считывания данных о расстоянии и скорости.


– Встроенный датчик вращения с точностью измерений до 1 град
– Максимальные обороты до 160-170 об/мин
– Максимальный крутящий момент в 40 Нсм
– Автоматическая идентификация программным обеспечением EV3

» Средний EV3-сервомотор. Идеален для задач, когда скорость и быстрота отклика, а также размер робота важнее его грузоподъёмности.


– Встроенный датчик вращения с точностью измерений до 1 градуса
– Максимальные обороты до 240-250 об/мин
– Максимальный крутящий момент в 12 Нсм
– Автоматическая идентификация программным обеспечением EV3

» Датчик цвета (EV3). Способен определить 8 различных цветов, хотя также может использоваться как датчик освещённости.


– Измеряет отраженный красный свет и внешнее рассеянное освещение, от полной темноты до яркого солнечного света
– Фиксирует и определяет 8 цветов
– Частота опроса до 1 кГц
– Автоматическая идентификация программным обеспечением EV3

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

» Цифровой ИК-датчик (EV3). Для определения приближения робота. Также способен улавливать ИК-сигналы от ИК-маяка, позволяя создавать дистанционно управляемых роботов, навигационные системы для преодоления препятствий.


– Измерения приближения/удаления в радиусе 50-70 см
– Радиус улавливания ИК-сигналов до 2 метров
– До 4 индивидуальных каналов приёма сигнала
– Получение удаленных ИК-команд управления
– Автоматическая идентификация программным обеспечением EV3

» Удалённый инфракрасный маяк. Разработан для использования с ИК-датчиком EV3. Маяк излучает ИК-сигнал, улавливаемый датчиком – может использоваться в качестве пульта дистанционного управления микрокомпьютера EV3, передавая сигналы на ИК-датчик.

– До 4 индивидуальных каналов передачи сигнала (переключатель прямо на корпусе)
– Имеет кнопку и тумблер для включения/выключения
– При работе ИК-маяка горит зелёный светодиод
– Автоматическое отключение при простое более 1 часа
– Радиус действия до 2 метров

В отдельном пакетике смотаны провода для подключения датчиков и моторов к кубику, а также USB-шнур для подключения кубика к компьютеру.


Стоит отметить два важных момента. Во-первых, существуют другие датчики Lego, такие как:

» Гироскопический датчик (EV3). Цифровой гироскопический датчик EV3 позволяет измерять движение вращения робота, а также улавливать изменения в его движении и положении. Режим измерения углов с точностью до ± 3 градуса; встроенный гироскоп улавливает вращения с моментом до 440 град/с; частота опроса до 1 кГц.

» Ультразвуковой датчик (EV3). Генерирует звуковые волны и фиксируюет их отражения от объектов, тем самым измеряя расстояние до объектов. Также может использоваться в режиме сонара, испуская одиночные волны. Может улавливать звуковые волны, которые будут являться триггерами для запуска программ. Измеряет расстояния в пределах от 1 до 250 см, а точность измерений составляет ± 1 см.

А во-вторых, поддерживаются сенсоры и прочие аксессуары от сторонних производителей, таких как HiTechnic и Mindsensors – они предлагают всевозможные джойстики, инфракрасные датчики расстояний, магнитные датчики, компасы, гироскопы, акселерометры, таймеры, мультиплексоры, шаровые опоры, и т.д. Так что, если задаться вопросом, можно найти много всего интересного.


В общем, как вы уже поняли, LEGO – это для реальных пацанов!

Первая модель

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


Сначала я удивился, ведь даже в самых простых наборах (серии типа LEGO Creator) всегда идёт несколько инструкций, а тут вдруг бумаги пожалели или места в коробке не нашли. Оказалось… что только на официальном сайте из набора деталей предлагается собрать 17 разных роботов! Поэтому 17 инструкций в коробке были бы действительно лишними (и для логистики, и для лесов природы). Вот названия роботов: EV3RSTORM, GRIPP3R, R3PTAR, SPIK3R, and TRACK3R. ROBODOZ3R, BANNER PRINT3R, EV3MEG, BOBB3, MR-B3AM, RAC3 TRUCK, KRAZ3, EV3D4, EL3CTRIC GUITAR, DINOR3X, WACK3M, и EV3GAME – инструкции для них придётся качать из инета, равно как и софт для подключения EV3 к компьютеру.


Инструкция наиподробнейшая, накосячить сложно. Сын сказал , что детали в пакетиках расфасованы не очень удачно – на первой же странице может потребоваться вскрыть 3 разных пакета, но это тоже мелочи.


Кубик EV3 необходимо запитать, для чего можно использовать аккумулятор (нет в комплекте) или 6 пальчиковых батареек. Забегая вперёд – ещё 2 батарейки (но уже мизинчиковых) понадобятся для питания ИК-маяка (он же пульт ДУ).


Первую модель ребёнок (7 лет) собрал примерно минут за 30.


Процесс оказался не таким увлекательным, как, например, сборка моделей LEGO Technics – в инструкции предлагается собрать далеко не самого интересного робота: в нём лишь крупные детали, среди которых были практически все датчики и двигатели – видимо, чтобы продемонстрировать работу каждого из них.



Но вот результат превзошёл все детские ожидания – впервые он собрал модель, которая могла двигаться сама: вперёд-назад, поворот, разворот на месте, крутила щупальцами…



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



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

Ребёнку проще всего будет начать с предлагаемого производителем софта, который есть как под Windows, так и под OS X. Во втором случае дистрибутив весит 666 Мб, а установленное приложение займёт гигабайт. Оно называется LEGO Mindstorms EV3 Home Edition и разработано совместно с небезызвестной компанией LabView. На сайте LEGO довольно много обучающих программированию материалов.

Сразу после запуска перед нами возникает интерактивный «гараж» из роботов, которых можно собрать из набора:


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




Не вижу смысла описывать всё в деталях: вы быстрее скачаете приложение сами и увидите, что там есть и на каком уровне. Разве что упомяну один из недостатков, который мне больше всего запомнился: не самый дружелюбный (особенно для детей) интерфейс – от приложения попахивает каким–то банк-клиентом.

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

Если всего этого оказалось мало, можете повысить градус хардкора. Для кубика EV3 существуют различные прошивки, которые позволяют расширить его возможности, скорость работы и т.д. Вот, например, альтернативная прошивка leJOS EV3 – прошивка с jvm, позволяющая программировать EV3 на языке Java. Хотите на другом языке? Окей, гугл – в вашем распоряжении почти 60 вариантов на выбор: ASM/C/C++/Perl/Python/Ruby/VB/Haskell/Lisp/Matlab/LabVIEW и многое-многое другое.

Более подробно об этом я рассказывать не буду по нескольким причинам: во-первых, программист из меня полный false (все надежды на сына), во-вторых, пока мы успели собрать только одну модель (и на выходных возьмёмся за вторую), а в-третьих – вы уже и так оформили заказ на этот конструктор и скоро сами всё узнаете ;) Ну а если серьёзно, то статья и так уже огромная – вот лучше две ссылочки изучите: раз и два.

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

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