Программа для программирования роботов лего ev3

Обновлено: 17.04.2024

Robot Commander представляет собой управляющее приложение для LEGO® MINDSTORMS®. БЕСПЛАТНАЯ загрузка для большинства смартфонов и планшетов; Robot Commander подключается к модулю EV3 по Bluetooth®. Это простое в использовании приложение позволяет взаимодействовать с вашими уникальными роботами EV3, даже не подключаясь к компьютеру! Это означает, что вы можете мгновенно начать игру с вашими собственными роботами!


Приложения для компьютеров и планшетов

Приложения LEGO® MINDSTORMS® EV3 Home для macOS, Windows 10 и планшетов на iOS и Android

Загрузите, установите, подключите и выполняйте задания по программированию. Для пяти основных роботов есть до пяти задач по программированию. Благодаря более продвинутому, но хорошо знакомому интерфейсу программирования и пяти сложным заданиям для вас и ваших роботов-героев, приложение EV3 Home для PC, Mac и планшетов сможет поднять ваши навыки робототехники на новый уровень!


Важная информация относительно программного обеспечения и приложений LEGO® MINDSTORMS® EV3!

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

Новое приложение LEGO MINDSTORMS EV3 Home с языком программирования на основе Scratch заменит используемое в настоящее время ПО LEGO MINDSTORMS EV3 Home Edition (Labview) для Windows 10 и macOS, а также приложение LEGO MINDSTORMS EV3 Programmer для планшетов на iOS/Android.

Приложение LEGO MINDSTORMS EV3 Programmer будет удалено из магазинов приложений в конце июня 2021 года.

Выведенное из эксплуатации ПО LEGO MINDSTORMS EV3 Home Edition (Labview) для Mac и PC можно найти ниже. Обратите внимание, что это ПО больше не поддерживается LEGO Group.

Привет, Хабр! Мы уже рассказывали о платформе 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 показывают, что писать код — это не страшно, готовят к серьезным инженерным задачам и помогают сделать первый шаг к освоению технических специальностей. А для тех, кто работает в школе и связан с образованием, у нас подготовлены программы занятий и учебные материалы. В них детально расписано, какие навыки формируются при выполнении тех или иных задач, и как полученные навыки соотносятся со стандартами обучения.

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


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

Урок истории

Компания 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 вы не соскучитесь.

Программирование 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 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. Наиболее подробное описание находиться в справочном руководстве.

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