Роботы lego mindstorms ev3 программирование. Книжная полка робототехника

Л.Ю. Овсяницкая, Д.Н. Овсяницкий, А.Д. Овсяницкий

Курс программирования робота EV3

в среде Lego Mindstorms EV3

Издание второе, переработанное и дополненное

УДК 004.42+004.896

Овсяницкая, Л.Ю. Курс программирования робота Lego

Mindstorms EV3 в среде EV3: изд. второе, перераб. и допол. /

Л.Ю. Овсяницкая, Д.Н. Овсяницкий, А.Д. Овсяницкий. – М.:

«Перо», 2016. – 296 с.

ISBN 978-5-906862-76-1

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

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

Рецензент:

доктор физико-математических наук, профессор А.Ф. Шориков.

ISBN 978-5-906862-76-1 © Л.Ю. Овсяницкая, Д.Н. Овсяницкий, А.Д. Овсяницкий, 2016 Оглавление Введение

Глава 1. Характеристики робота.

Создание и запуск первого проекта 7

1.1. Краткая характеристика роботизированных платформ. Обзор среды программирования Lego Mindstorms EV3

1.2. Способы подключения робота к компьютеру. Обновление прошивки блока EV3. Загрузка программ в блок EV3



Глава 2. Программирование робота

2.1. Моторы. Программирование движений по различным траекториям

2.2. Работа с подсветкой, экраном и звуком

2.2.1. Работа с экраном

2.2.2. Работа с подсветкой кнопок на блоке EV3

2.2.3. Работа со звуком

2.3. Программные структуры

2.3.1. Структура Ожидание

2.3.2. Структура Цикл

2.3.3. Структура Переключатель

2.4. Работа с данными

2.4.1. Типы данных. Проводники

2.4.2. Переменные и константы

2.4.3. Математические операции с данными

2.4.5. Работа с массивами

2.4.6. Логические операции с данными

2.5. Работа с датчиками

2.5.1. Датчик касания

2.5.2. Датчик цвета

2.5.3 Гироскопический датчик

2.5.4. Ультразвуковой датчик

2.5.5. Инфракрасный датчик и маяк

2.5.6. Датчик Вращение мотора (определение угла/количества оборотов и мощности мотора)

2.5.7. Кнопки управления модулем

2.6. Работа с файлами

Курс программирования робота Lego Mindstorms EV3 в среде EV3

2.7. Совместная работа нескольких роботов

2.7.1. Соединение роботов кабелем USB

2.7.2. Связь роботов с помощью Bluetooth-соединения............. 207

2.8. Полезные блоки и инструменты

2.8.1. Блок «Поддерживать в активном состоянии»

2.8.2. Блок «Остановить программу»

2.8.3. Создание подпрограмм

2.8.4. Запись комментариев

2.8.5. Использование проводного ввода порта

Глава 3. Основные виды соревнований и элементы заданий.

3.1. Соревнования Сумо

3.2. Кегельринг

3.3. Слалом (объезд препятствий)

3.4. Программирование движения по линии

3.4.1. Алгоритм движения по линии «Зигзаг» с одним и двумя датчиками цвета

3.4.2. Алгоритм «Волна»

3.4.3. Алгоритм автоматической калибровки датчика цвета..... 258

3.5. Пропорциональное линейное управление

3.5.1. Движение по линии на основе пропорционального управления

3.5.2. Поиск и подсчёт перекрёстков при пропорциональном управлении движением по линии

3.5.3. Проезд инверсии

3.5.4. Движение робота вдоль стены

3.6. Поиск цели в лабиринте

Глава 4. Обновление встроенного ПО и перезапуск блока EV3.

286 Глава 5. Использование сторонних датчиков

5.1. Работа с HiTech датчиком цвета

5.2. Использование других датчиков

Заключение

Перечень проектов Проект «Верная собачка» 90 Проект «Спортивное табло» 98 Проект «Автофиниш» 102 Проект «60 секунд» 109 Проект «Запись и считывание цветного штрих-кода» 120 Проект «Сортировка массива методом пузырька» 123 Проект «Умный дом» 153 Проект «Упрямый робот» 160 Проект «Робот с дистанционным управлением» 182 Проект Мультипликационная игра на экране блока EV3 «Поймай снежок» 191 Проект «Построение 3D карты поверхности» 197 Проект «EV3 – музыкальный синтезатор» 203 Курс программирования робота Lego Mindstorms EV3 в среде EV3 изображение катушки (рис. 1.1.11б). Блок станет активным (ярким) (рис. 1.1.11в).

–  –  –

Рисунок 1.1.

12. Параллельные программы Для масштабирования изображений (рис. 1.1.13 а,б) используются стандартные для MSWindows сочетания клавиши Ctrl и колеса прокрутки мыши или значки в правом верхнем углу окна:. Масштабирование используется при навигации в больших программах, копировании определённых блоков и многом другом.

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

Рассмотрим структуру блоков на примере блока большого мотора (рис. 2.1.4).

–  –  –

Рисунок 2.1.

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

Рассмотрим подробнее каждый управляющий элемент.

1. Выбор режима работы:

а) включить (рис. 2.1.5);

–  –  –

Рисунок 2.4.

3.4. Программа реализации проекта «60 секунд»

Задания для самостоятельной работы Добавьте на экран изображение циферблата часов.

Добавьте по аналогии минутную и часовую стрелки.

2.4.4. Другие блоки работы с данными

–  –  –

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

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

Создание массива. Запись массива в переменную

Для того чтобы создать и заполнить массив, необходимо:

(а) перенести на рабочее поле блок Переменная и определить её режим (Записать) и тип (числовой или логический массив);

Формирование Формирование числового массива логического массива

–  –  –

Рисунок 2.5.

3.3. Режимы работы гироскопического датчика Важно!

Иногда (достаточно часто!) при работе с гироскопическим датчиком можно наблюдать следующее: при запущенной программе робот находится в неподвижном состоянии, а значение угла постоянно увеличивается (дрифт), скорость увеличения может составить более 1 градуса в секунду!

Нарастание значений датчика Глава 2. Программирование робота 177 Если маяк находится очень далеко (дальше 1 м), значение измерения будет 100, если очень близко (минимум 1 см) – 0. Промежуточные результаты также не соответствуют сантиметрам.

В том случае, когда маяк расположен прямо перед датчиком, относительный результат измерения угла будет равен 0, максимальное расположение маяка слева, против часовой стрелки -25 (максимальный определяемый угол отклонения приблизительно 100 градусов), справа, по часовой стрелке 25 (рис. 2.5.5.5).

Рисунок 2.5.

5.5. Положение ИК-маяка относительно ИКдатчика Рассмотрим примеры программ. Расположите маяк перед роботом, включите его и направьте в сторону робота.

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

Маяк выключается, если не используется в течение часа.

На рис. 2.5.5.6 показан выбор режима работы с маяком.

Курс программирования робота Lego Mindstorms EV3 в среде EV3 использованием программы MS Excel.

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

Решение:

1. Производим сброс значений датчика гироскопа.

Вставляем цикл 01, условие завершения – время (3 сек.).

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

3. Результат измерений в каждом шаге цикла записывается в файл Map.

4. Устанавливаем паузу 0,25 сек. После окончания цикла закрываем файл.

Внимание! Используя гироскопический датчик, при включении обращайте внимание на наличие дрейфа показаний (см.

п. 2.5.3 для удаления дрейфа).

Глава 2. Программирование робота 213 движения и остановке подавайте последовательно каждому вагончику.

2. «Вокально-инструментальный ансамбль»

Задача – исполнение музыкального произведения c ансамблем. Первый робот EV3 – дирижёр, который раздаёт команды по Bluetooth остальным роботам-музыкантам и роботам-певцам, когда воспроизводить их музыкальные партии. Робота-дирижёра можно оснастить дирижёрской палочкой, двигающейся вверх-вниз и поворачивающейся в сторону робота, который начинает воспроизведение. Роботдирижёр по совместительству может, например, солировать.

3. «Танцевальный ансамбль»

Задача – создание робо-ансамбля. Первый робот, раздающий команды по Bluetooth – солист. Остальные роботы отрабатывают команды. Программируйте различные виды танцев – хоровод роботов («Паровозик»), медленные и быстрые танцы.

4. «Утренняя гимнастика»

Задача – одновременное выполнение по команде первого робота гимнастических упражнений.

2.8. Полезные блоки и инструменты 2.8.1. Блок «Поддерживать в активном состоянии»

По истечении определённого времени и в случае, когда мы не обращаемся к роботу, а робот не выполняет никаких операций, он выключается (в терминах EV3 – переходит в спящий режим). Это вызывает неудобство при работе с программами, рассчитанными на длительные ожидания каких-либо процессов. Мы можем установить время перехода в спящий режим непосредственно на блоке (существует возможность установить время до выключения: 2 мин, Курс программирования робота Lego Mindstorms EV3 в среде EV3 создать несколько вариантов программ и выбирать тактику поединка. Например, если перед нами мощный, но медленный робот, можно запустить программу, по которой наш робот будет атаковать соперника быстро и сбоку; если робот соперника в поисках нашего робота всегда поворачивается направо, нужно запускать программу, объезжающую и атакующую его слева.

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

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

Приведём пример алгоритма программы для роботасумоиста.

Остановка робота.

2. Робот поворачивается до тех пор, пока не увидит датчиком ультразвука робота соперника (пока значение датчика не станет меньше 100 см), что соответствует углу поворота 120-180 градусов. Остановка робота.

3. Создаём цикл условие завершения 01, – Неограниченный.

4. В цикл 01 вставляем цикл 02, условие завершения которого – логическое значение: цикл будет выполняться, пока на вход Условие завершения не будет подано значение Истина.

Глава 3. Основные виды соревнований и элементы заданий 245 100 25 + 18 =.

Найдём скорость левого колеса: V1=58.

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

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

Задания для самостоятельной работы

Запрограммируйте траектории:

а) объезд нескольких препятствий с одним радиусом;

б) объезд препятствий с разными радиусами;

в) езда «восьмёркой».

Глава 3. Основные виды соревнований и элементы заданий 275 Рисунок 3.

5.3.2. Программа проезда инверсной траектории движения Глава 3. Основные виды соревнований и элементы заданий 285 Рисунок 3.6.5. Программа поиска цели в лабиринте Курс программирования робота Lego Mindstorms EV3 в среде EV3

ГЛАВА 5. ИСПОЛЬЗОВАНИЕ СТОРОННИХ

ДАТЧИКОВ

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

Компания HiTechnic производит большое количество датчиков для LEGO Mindstorms, большинство из них сертифицированы компании LEGO, подтверждая полную совместимость, высокие стандарты качества и безопасности.

Также немаловажным фактором, позволяющим использовать эти датчики при работе с детьми, является наличие сертификата RoHS (Restriction of Hazardous Substances), подтверждающего отсутствие использования в электрическом и электронном оборудовании веществ: свинец, ртуть, кадмий, олово, шестивалентный хром, некоторые бромидные соединения. Актуальный список сертифицированных для Lego датчиков можно найти на сайте www.hitechnic.com/sensors.

В настоящее время доступны: датчик угла поворота;

силы, приложенной поперечно к оси; компас; акселерометр;

гироскоп; детектор магнитных полей; инфракрасный датчик;

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

электрооптический датчик расстояния, точно определяющий небольшие объекты и малые изменения в дальности до них, но на расстоянии не более ~20 см; датчик цвета.

Открылась Книжная полка Городского методического Центра по образовательной робототехнике. В данном разделе каждый из вас может ознакомиться с новыми книгами.

Использование LEGO-роботов в инженерных проектах школьников. Отраслевой подход

В методическом пособии представлены проекты школьников, которые были реализованы на научно-образовательных школах «Лифт в будущее» Некоммерческого партнёрства содействия развитию интеллектуального и творческого потенциала молодёжи. Ученики вместе с экспертами и представителями российских инновационных компаний разрабатывали решения, направленные на модернизацию существующих в регионах России производств и на внедрение новых технологий. Осуществляя обучение школьника в той или иной отрасли, авторы формируют осознанный подход к выбору специальности и стремятся к тому, чтобы будущие технологические лидеры нашли применение своим идеям в России. Такой инженерно-отраслевой принцип позволит развить существующие подходы в преподавании робототехники в школе и даст новое направление в развитии проектной деятельности учащихся.
Издание рассчитано на учителей средней и старшей школы, а также будет полезно школьникам основной школы при проведении проектной деятельности.


Белиовская Л.Г. Узнайте, как программировать на LabVIEW. – Изд-во ДМК, 2013. – 140 с.

АННОТАЦИЯ К КНИГЕ

Учебник по программированию на LabVIEW написан специально для изучения этой среды в курсе школьного предмета «Информатика». Эта книга может быть рекомендована для изучения темы «Алгоритмизация и объектно-ориентированное программирование» учащимся 6–9-х классов общего образования в школе в рамках Федерального государственного образовательного стандарта. Книга может быть использована для работы в общеобразовательных классах и классах естественно-математического и информационно-технологического профиля. Содержание книги поясняется рисунками, примерами и упражнениями. Предложены проверочные работы по трем темам. Материал пособия был апробирован в 6 классе. Рекомендуется затрачивать по 2 часа на прохождение каждого из уроков. Проверочные работы рассчитаны каждая на 1 урок. После каждой проверочной работы желательно проводить работу над ошибками с обсуждением ответов на вопросы. Ориентировочно курс рассчитан на 28 часов.
Оглавление и отрывки из глав

Руководство преподавателя по ROBOTC® для LEGO® MINDSTORMS®

Филиппов С.А. Робототехника для детей и родителей. – 3-е издание

Уже много лет мы читаем в книгах и газетах, слышим по радио и из телевизора, что скоро нас будут окружать умные, добрые и интересные роботы. Однако в реальной жизни роботов все нет и нет. Лишь несколько лет назад знаменитая датская компания Lego сделала роскошный подарок любителям мехатроники, роботов и других кибернетических игр и игрушек: выпустила робототехнический конструктор Lego Mindstorms NXT, который с успехом используется как дома, так и в учебе.
Эта книга одна из первых на русском языке поможет не только самому строить и программировать разнообразных роботов из Lego, но и научить этому других школьников, студентов. В ней рассматриваются основы конструирования, программирования на языках NXT-G, Robolab и RobotC, а также элементы теории автоматического управления.
В третьем издании добавлены описания усовершенствованых конструкций роботов, а также рассмотрены новые задачи: прохождение лабиринта, роботы-манипуляторы, инверсная линия и др. По-прежнему большое внимание уделено алгоритмам управления: от П- и ПД-регулятора для движения по линии до ПИД-регулятора для балансирующего робота-сигвея.
Предназначена для преподавателей кружков робототехники школ и вузов, для широкого круга читателей.
Купить можно в интернет-магазине http://technocontext.ru/catalog/13/ , а также здесь: http://wroboto.ru/oborydovanie/about/books/books_3.html
С содержанием книги вы можете ознакомиться


Книга «Программируем NXT в Lab VIEW 2009». Издательство «ДМК Пресс»

В книге представлены уроки изучения популярного инженерного языка программирования LabVIEW 2009 в школе в соответствии со школьной программой по информатике, и
подробно рассмотрен процесс создания оконных приложений в среде LabVIEW.
2009 Education Edition с использованием NXT.
Книга поступила в продажу в конце апреля 2010.

Первый шаг в робототехнику. Практикум для 5–6 классов

Практикум является частью учебно-методического комплекта для средней школы, в который также входит рабочая тетрадь для 5–6 классов. Цель практикума – дать школьникам современное представление о прикладной науке, занимающейся разработкой автоматизированных технических систем, – робототехнике. Его можно использовать как для занятий в классе, так и для самостоятельной подготовки.
Учебные занятия с использованием данного практикума способствуют развитию конструкторских, инженерных и общенаучных навыков, помогают по-другому посмотреть на вопросы, связанные с изучением естественных наук, информационных технологий и математики, обеспечивают вовлечение учащихся в научно-техническое творчество.
Практикум содержит описание актуальных социальных, научных и технических задач и проблем, решение которых еще предстоит найти будущим поколениям, и позволяет учащимся почувствовать себя исследователями, конструкторами и изобретателями технических устройств.
Заглянуть внутрь

Книга «Уроки ЛЕГО-конструирования в школе». – М.: Издательство БИНОМ, 2011.

Методическое пособие содержит описание методики, позволяющей встроить в учебный процесс технологии конструирования с использованием ИКТ, ознакомить учителей с особенностями ЛЕГО-конструирования и с возможностями ЛЕГО-конструирования и свариантами проектирования ЛЕГО-моделей для школьников разного возраста. Книга содержит материалы по обеспечению методической поддержки конкурсов для учащихся, нормативному обеспечению подготовки и проведения соревнований по ЛЕГО-конструированию.
Книга предназначается для учителей-предметиков, учителей начальных классов, педагогов дополнительного образования, методистов; содержит материалы по обеспечению методической поддержки конкурсов для учащихся, нормативному обеспечению подготовки и проведения соревнований по ЛЕГО-конструированию.


Заглянуть внутрь (несколько страниц в формате PDF)

Юревич Е. П. Основы робототехники. – 3-е изд.

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

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

Книга соответствует государственному стандарту по дисциплине «Основы робототехники» и предназначено для студентов профильных направлений. Также представляет интерес для широкого круга читателей. + СД.

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

Клаузен, Петер. Компьютеры и роботы. – М.: Мир книги, 2006.

Хотите узнать много нового и интересного, весело провести время и найти ответы на интересующие вопросы? Добро пожаловать в удивительный мир РОБОТОВ. Почему чешский писатель Карел Чапек назвал искуccтвенных рабов-рабочих роботами? Зачем роботов отправляют в космос? Всё о том, как устроены компьютеры и роботы, как их применяют, где они работают и какими они будут завтра.Термину «робот» в нынешнем году исполняется 85 лет. Это широко использующееся сейчас слово впервые применил чешский писатель Карел Чапек в пьесе R.U.R. (Rossum"s Universal Robots) для описания человекоподобных механизмов, выполняющих рутинную работу.


Макаров И.М., Топчеев Ю.И. РОБОТОТЕХНИКА. История и перспективы. – М.: Наука, Издательство МАИ, 2003.
Авторы книги – Игорь Михайлович Макаров и Юрий Иванович Топчеев – популярно рассказывают о той роли, которую сыграли роботы в истории развития цивилизации: от роботов Средневековья до новых типов роботов для применения в космосе.
Книга имеется в издательстве «Наука».

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

Эти блоки можно представить в качестве "регулировщиков" программы: они прикажут остановиться и продолжить движение программы, перейти на соседнюю ветку или идти по кругу.

По сравнению с NXT было добавлено 2 новых блока:

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


Блок "Начало"

Возможно, вы обратили внимание на то, что первый блок всех EV3 программ - блок с зеленой стрелкой. Этот блок - "Начало". Без него не обойдется ни одна программа - именно с него и начинается выполнение команд. Если перед последовательностью блоков не поставить "Начало", то такая программа выполняться не будет.
Например, по программе, представленной ниже, робот будет кружится вокруг оси (будет выполняться верхняя последовательность действий), но не будет проигрывать аудио файлы и зажигать подсветку кнопок (нижняя последовательность без блока "Начало" не активна):

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


Все такие последовательности будут выполняться одновременно.

Замечу, что зеленая стрелка на блоке - это не декоративный элемент. Если блок подключен к компьютеру (неважно как: через usb, wi-fi или bluetooth), то нажатие на стрелку запустит данную последовательность на выполнение.

Блок "Ожидание"

Этот блок тоже является одним из самых используемых. На нем программа "зависает" - последующие блоки программы не выполняются - и ждет определенное количество времени или определенного значения датчика.
У "Ожидание" большое число режимов, которое может испугать:


Но, на самом деле, все довольно просто. Все режимы можно разделить на категории:
  • по времени - блок ждет указанное количество секунд, прежде чем начнет выполнять следующие блоки
  • по показанию датчика:
    • сравнение - блок ожидает конкретное показание датчика, указанное в блоке
    • изменить - блок ожидает, когда показание датчика изменится на указанную величину, по сравнению с начальным значением. Причем, можно выбрать не только размер величины, но и ее направление - убывание значения, его увеличение или в любую сторону.
Рассмотрим примеры программ с каждым режимом блока.
В первой программе изменяется подсветка кнопок. Одну секунду подсветка будет гореть зеленым, затем 1 секунду красным и после этого переключится на стандартный режим - мигающий зеленый:

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

Следующая программа включает мотор А, и после того, как он сделает 5 оборотов, выключает его:

Работа этого блока с bluetooth ничем не отличается от работы с любым сенсором. Например, следующая программа ожидает сообщения "HI" и после этого зажигает подсветку зеленым и проигрывает звуковой файл:

Блок "Цикл"

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

  • Неограниченный - такой цикл будет выполняться, пока не будет принудительно завершена программа
  • Подсчет - цикл будет повторяться заданное число раз
  • Логическое значение - цикл будет повторяться, пока заданное значение не будет истиной
  • Время - цикл будет повторяться заданное время
  • Показание датчика:
    • сравнение - цикл будет повторяться, пока датчик не примет заданное значение
    • изменить - цикл будет повторяться, пока показание датчика не изменится на указанную величину, по сравнению с начальным значением.
Над блоком написано имя цикла - 01, 02, .... Это имя может использоваться в блоке прерывания цикла, который будет описан позднее.
Рассмотрим примеры. По этой программе робот будет ехать прямо и поворачивать, до тех пор, пока программу не остановят (используется бесконечный цикл):

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

Цикл со счетчиком позволяет проиграть ноту 10 раз:

С режимом логического значения придется использовать еще не изученные блоки опроса датчиков. Данная программа заставляет робота ехать вперед до тех пор, пока он не увидит предмет на расстоянии, меньше 20 см (первый блок цикла) или не наткнется на препятствие датчиком касания (второй блок цикла). Результат логической операции "ИЛИ" дает третий блок цикла:


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

Аналогичный блок есть и в NXT, он позволяет в зависимости от значения переменной или показания датчика выполнять разные последовательности действий.
После выполнения данной последовательности действий, программа выполняет блоки, идущие за "Переключателем".
Режим данного блока определяет, значение какого датчика или переменной будет использоваться. Используются все те же режимы, что и блок "Цикл": можно использовать любой датчик (цвета, гироскопический, инфракрасный, ультразвуковой, вращения мотора и другие), числовое или текстовое значение, сообщение bluetooth.
Например, по данной программе робот сначала будет вращаться вокруг своей оси 5 оборотов мотора, а затем, в зависимости от показаний датчика гироскопа, ехать вперед или назад. Если угол, определяемый гироскопом, будет меньше 90 градусов, тогда робот поедет вперед. Если же угол меньше 90 градусов - тогда робот поедет назад.

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

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


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

Кнопка, переключающая режимы "плоский / подробный", обведена красным.

Блок "Прерывание цикла"

Этот блок новый, в NXT подобного блока не было. Он позволяет выходить из цикла - оставшиеся блоки цикла выполняться не будут, и программа перейдет к блокам после цикла. В "шапке" блока задается имя цикла, который должен быть завершен.
Например, цикл в программе должен повториться 5 раз, но если расстояние до предмета станет больше 50 сантиметров, то произойдет досрочный выход из цикла и робот проиграет звуковой тон:

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

Если вам нравится графическая среда программирования Scratch 2.0, то вам необязательно отказываться от неё для программирования роботов Lego Mindstorms EV3. Достаточно лишь установить и настроить нужное программное обеспечение, о чём и будет написано в этой статье.

Статья будет рассчитана на владельцев компьютеров под управлением Windows, хотя всё упомянутое в статье программное обеспечение можно установить и использовать на компьютерах под управлением Mac OS , Mac OS X и Linux. Вот вкратце план, по которому мы будем действовать:

Подготовка SD-карты

Прежде, чем начинать, что то делать дальше, нужно найти подходящую SD-карту , удалить с неё все лишние разделы, которые там могут оказаться, и отформатировать её. Это должна быть карта объёмом как минимум 2Гб , но не более 32Гб (SDXC-карты не поддерживаются модулем EV3). Файловая система на карте должна быть FAT32. Разработчики leJOS рекомендуют форматировать карту с помощью программы SD Card Formatter . Ведь, даже если вы решили использовать только что купленную карту памяти, на ней могут быть скрытые разделы, которые могут вызвать проблемы при работе c EV3. Однако, если ваша SD-карта меньше 4Гб, то программа автоматически выбирает файловую систему FAT и изменить в настройках это нельзя, поэтому после форматирования программой SD Card Formatter форматируйте такие карты в формат FAT32 другим способом. Кроме того, у меня при использовании старых карт 2Гб , leJOS EV3 вообще отказался загружаться, хотя установка прошла успешно. Из своего опыта я советую вам использовать свежекупленные карты SDHC объёмом 4 – 32Гб (у меня всё успешно работает с картой SDHC объёмом 4Гб класс 4 производства smartbuy ).

Установка компонентов leJOS EV3 на компьютер

leJOS – это крошечная виртуальная Java-машина , которая в 2013 году была адаптирована для работы с системой Lego Mindstorms EV3 . Официальная страничка проекта находится . Для компьютеров под управлением Windows разработчики сделали дистрибутив, в котором есть утилита для подготовки SD-карты , документация и примеры.

Итак, установим leJOS EV3 на компьютер:

      • Скачайте последнюю версию leJOS EV3 0.9.0-beta ). Для установки на Windows – это будет файл leJOS_EV3_0.9.0-beta_win32_setup.exe .
      • Запустите скачанный дистрибутив на вашем компьютере. Вы увидите приветствие. Нажмите «Next > ».

      • На этом шаге выберите JDK (Java Development Kit ), который вы будете использовать. Рекомендуется использовать Java 7 или 8 . Однако для использования Java 8 вам нужно будет создать подходящий компактный профиль Java, поэтому Java 7 будет использовать проще, что мы и сделаем. Если JDK у вас не установлен, щёлкните по кнопке «Download JDK » и, после перехода на сайт Oracle, скачайте подходящий JDK и установите его на компьютер. Нажмите кнопку «Next > ».

      • На следующем шаге вы можете выбрать путь для установки или оставить его без изменений. Нажмите «Next > ».
      • На следующем шаге вы увидите список устанавливаемых компонентов. Рекомендуется установить все компоненты. Нажмите «Next > ».

      • На следующем шаге вы сможете выбрать альтернативные пути для установки выбранных компонентов. Здесь можно оставить всё по умолчанию и нажать «Next > ».
      • На следующем шаге выбирается имя папки в меню «Пуск ». Нажмите «Next > ».
      • На последнем шаге щёлкните «Install».
      • Если на вашем компьютере установлена предыдущая версия leJOS EV3 , то вы увидите предупреждение, см. картинку. Нажмите «OK», чтобы удалить предыдущую версию с компьютера.

      • После установки вы увидите финальное окно. Здесь можно поставить галочку «Launch EV3SDCard utility », чтобы сразу при выходе из мастера запустить утилиту подготовки SD-карты.

Нажмите кнопку «Finish» с установленной галочкой «Launch EV3SDCard utility » после установки компонентов leJOS EV3 на компьютер или запустите утилиту вручную, для этого запустите файл ev3sdcard.bat , который находится в папке bin, внутри папки, в которую вы установили leJOS EV3 (у меня это папка «C:\Program Files\leJOS EV3\bin »). После запуска у вас должно появиться окошко, изображённое на картинке снизу.

В верхнем поле нужно выбрать букву диска вашей карты, у меня это диск I: . В поле ниже указывается файл с образом leJOS и по умолчанию у вас уже должен быть прописан правильный путь, см. картинку сверху. Этот файл можно найти в папке, куда были установлены компоненты leJOS EV3 (у меня это «C:\Program Files\leJOS EV3 »). В самом нижнем поле нужно выбрать файл со средой выполнения Java, который вам предварительно нужно скачать с сайта Oracle отсюда (убедитесь, что вы выбрали Java 7 JRE , а не Java 8 SDK , если конечно вы не планируете создавать компактный профиль Java 8 ). Для скачивания вам нужно будет зарегистрироваться, если вы этого ещё не делали.

Когда все поля будут заполнены, нажмите на кнопку «Create», и после того как на SD-карту будут скопированы необходимые файлы вы увидите подобное сообщение:

Нажмите «OK», затем закройте окно программки и безопасно извлеките карту из компьютера. Затем вставьте её в выключенный модуль EV3 и включите его, нажав центральную кнопку. Вы должны будете увидеть логотип leJOS EV3 и прогресс форматирования и установки образа SD-карты . Это занимает порядка 8-ми минут. В конце этого процесса модуль EV3 перегрузится и вы должны увидеть меню leJOS EV3 .

В дальнейшем, при включении модуля EV3 со вставленной SD-картой leJOS EV3 у вас сразу начнётся загрузка leJOS EV3 , а без SD-карты загрузится стандартное ПО LEGO.

Установка Adobe AIR на компьютер

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

Теперь скачайте и установите на компьютер последнюю версию офлайн редактора Scratch 2 (на момент написания статьи – это версия 437, файл Scratch-437.exe ). У инсталлятора очень мало параметров, см. картинку. Уберите галочку «Запустить приложение после установки » и нажмите кнопку «Продолжить ».

После установки вы увидите следующее сообщение, см. картинку. Щёлкните по кнопке «Готово ».

Установка приложения ev3-scratch-helper-app на компьютер

Следующее что нужно сделать – установить приложение-помощник ev3-scratch-helper-app на ваш компьютер, которое делает возможным взаимодействие Scratch с модулем EV3 (прочитать про приложения-помощники для Scratch можно ). Установку можно произвести двумя способами:

    1. Если у вас на компьютере установлен git, то вы можете клонировать проект, выполнив в консоли команду «git clone https://github.com/koen-dejonghe/ev3-scratch-helper-app.git ». Этот способ предпочтительнее, но, если вы не знаете, что такое git, то есть второй способ.
    2. Скачайте и распакуйте zip-архив с проектом (я выбрал этот вариант). Папку ev3-scratch-helper-app-master внутри zip-архива я распаковал на диск C: .

В папке «scratch» внутри папки установки вы можете найти файл «ev3-helper-app.s2e » для английского и файл «ev3-helper-app-NL.s2e » нидерландского языков, соответственно, в папках «en» и «nl». Если вы хотите использовать русский язык, то вы можете самостоятельно перевести файл «ev3-helper-app.s2e » (кодировка файла д.б. UTF-8 ) или взять файл «ev3-helper-app-RU.s2e » с моим переводом (файл «ev3-helper-app-RU.s2e » сохраните по аналогии с английской и нидерландской версией: сделайте папку «ru\extensions » и сохраните в ней). К сожалению, перевести можно лишь названия блоков, но не значений, иначе приложение ev3-scratch-helper-app работать не будет. Т.е. название моторов и датчиков останется на английском (для моторов это «Large» и «Medium», для датчиков – «Color», «Distance» и «Touch» и т.д.).

Русификация приложения ev3-scratch-helper-app Версия:от 07.08.2015

Файл ev3-helper-app-RU.s2e для русификации блоков EV3 в офлайн редакторе Scratch 2.

07.08.2015 3.76 KB 1428

В папке с приложением вы можете найти файл «application.properties » с настройками. Измените настройки, если потребуется. Имена свойств говорят сами за себя, поэтому расписывать их здесь я не буду. После изменения, удостоверьтесь, что значение свойства «server.port » в файле «application.properties » равно значению переменной «extensionPort » в файле «ev3-helper-app.s2e » или «ev3-helper-app-RU.s2e », в зависимости от того, файл какого языка вы будете использовать.

Запуск приложения ev3-scratch-helper-app

Перед запуском редактора Scratch 2 у вас всегда должно быть запущено приложение ev3-scratch-helper-app . Для его запуска сделайте следующее:

    1. Запустите окно консоли и поменяйте текущую папку на папку, в которой установлено приложение ev3-scratch-helper-app . У меня это папка «C:\ev3-scratch-helper-app », поэтому я вызвал команду «cd C:\ev3-scratch-helper-app ».
    2. Выполните команду «gradlew.bat bootRun ». При первом выполнении к вам на компьютер будут скачаны и установлены необходимые библиотеки, поэтому удостоверьтесь, что компьютер подключен к Интернету. Первый запуск займёт продолжительное время, наберитесь терпения.

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

2015-08-06 09:15:28.699 INFO 10236 --- s.b.c.e.t.TomcatEmbeddedServletContainer: Tomcat started on port(s): 4321/http 2015-08-06 09:15:28.704 INFO 10236 --- scratch.ev3.Application: Started Application in 13.411 seconds (JVM running for 15.025)

Для последующих запусков для удобства можно создать ярлык, например, на рабочем столе. Вот так выглядят свойства ярлыка для установленного приложения в папке «C:\ev3-scratch-helper-app »:

При запуске приложение ev3-scratch-helper-app подключается к первому доступному модулю EV3 в сети. Если ни один модуль не обнаружен, то приложение ждёт, пока такой появится.

Первый запуск офлайн редактора Scratch 2

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

Добавление программных блоков EV3 в редактор Scratch 2

После запуска у вас автоматически создаётся новый пустой проект. Теперь для этого проекта нужно импортировать блоки EV3, для этого удерживая клавишу «Shift» щёлкните по меню «Файл -> Импортировать экспериментальное расширение HTTP » и выберите файл ev3-helper-app.s2e или ev3-helper-app-RU.s2e , в зависимости от предпочитаемого языка. Я выбрал файл «C:\ev3-scratch-helper-app-master\scratch\ru\extensions\ev3-helper-app-RU.s2e ». Эту процедуру нужно будет делать один раз для каждого нового проекта.

После этого откройте закладку «Скрипты » щёлкните по «Другие блоки » и удостоверьтесь, что здесь появились наши блоки. Проверку наличия блоков желательно делать каждый раз после открытия ранее сохранённого проекта. Зелёный кружочек справа от названия «EV3HelperApp » означает, что приложение v3-scratch-helper-app выполняется. Если кружочек красный, то это значит, что приложение v3-scratch-helper-app не выполняется и его нужно запустить.

Подключение модуля EV3 к компьютеру

Подключить модуль EV3 к компьютеру можно двумя способами: через Bluetooth или WiFi.

Для подключения через WiFi у вас должен быть USB WiFi адаптер. leJOS EV3 поддерживает адаптеры с чипсетами Atheros ATH9K и Realtex 8192cu . Модуль EV3 протестирован разработчиками с адаптерами NetGear WNA1100 и EDIMAX EW-7811Un , но и другие адаптеры могут поддерживаться, если в них используется один из перечисленных чипсетов. Здесь я не буду рассматривать подключение через WiFi, т.к. не у всех есть подходящий адаптер. Но если вы заинтересовались таким подключением, то вы можете узнать, как это сделать из официального источника .

Для подключения через Bluetooth вам нужно сначала подключить друг к другу модуль EV3 и компьютер, а затем сделать личную сеть Bluetooth (PAN).

Подключение модуля EV3 к компьютеру нужно сделать только один раз для пары «модуль EV3 – компьютер »:

1. В модуле EV3 в главном меню leJOS EV3 найдите пункт меню «Bluetooth» и зайдите внутрь, нажав на кнопку центральную кнопку модуля EV3. Если вы увидите надпись «Visibility on », то всё в порядке: видимость модуля включена. Если вы видите надпись «Visibility off », то найдите пункт меню «Visibility» (с изображением глаза) и нажмите на центральную кнопку модуля EV3 дважды, чтобы включить видимость (надпись должна поменяться на «Visibility on »).
2. На компьютере откройте «Панель управления -> Оборудование и звук -> Устройства и принтеры ». Вы увидите список устройств, подключенных к вашему компьютеру.

3. Удостоверьтесь, что Bluetooth компьютера включён, и нажмите сверху на кнопку «Добавление устройства ». Поднимется диалоговое окно, в котором через некоторое время должен появиться модуль EV3. Щёлкните по нему и затем щёлкните «Далее ».

4. На следующем шаге вы увидите выбор варианта подключения. Щёлкните по второму варианту и введите PIN-код 1234 .

После того как модуль EV3 и компьютер подключены друг к другу можно сделать личную сеть Bluetooth (PAN ) (подключение к сети PAN вам придётся делать каждый раз при включении модуля EV3):

    1. Откройте «Панель управления -> Сеть и Интернет -> Центр управления сетями и общим доступом » и щёлкните по «Изменение параметров адаптера » на левой панели окна.
    2. Вы должны увидеть здесь «Сетевое подключение Bluetooth » с красным крестиком. Щёлкните по этой иконке один раз, чтобы выбрать её.
    3. Щёлкните сверху по кнопке «Просмотр сетевых устройств Bluetooth ».
    4. Через некоторое время вы увидите в поднявшемся окне одну или несколько точек доступа. Щёлкните здесь по нашему устройству «EV3 », чтобы выбрать его, и щёлкните по пункту меню «Подключаться через -> Точка доступа ».

Программирование робота EV3 в редакторе Scratch 2

При программировании роботов EV3 с помощью редактора Scratch и расширения ev3-scratch-helper-app вам нужно помнить, что перед использованием моторов и датчиков их нужно подключить с помощью блоков «Подключить мотор к порту » и «Подключить датчик к порту » («Connect a motor to port » и «Connect a sensor to port » при использовании англоязычного варианта блоков). Отключаются датчики с помощью блока «Закрыть все порты » («Close all ports » в английском варианте).

Контролировать, что происходит в приложении ev3-scratch-helper-app , вы можете глядя на сообщения в консоли.

Для проверки, всё ли правильно мы настроили, соберите простейшую тележку, например, стандартную приводную платформу, и напишите для неё простейшую программу в Scratch 2 . Можете посмотреть примеры в папках «doc » и «scratch\en\demos » в папке установки программы ev3-scratch-helper-app . При открытии демонстрационных программ в Scratch 2 проверьте, есть ли блоки EV3 , как это было описано выше в разделе « ».

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

    • Сначала спрайт «Старт » (большой треугольник слева сверху) серого цвета, это значит, что робот не инициализирован. Видите, скорость моторов null , и расстояние у датчика 1 тоже null . Нужно нажать на серый треугольник.
        • После нажатия на треугольник происходит подключение моторов и датчика расстояния, и треугольник становится зелёным. Как видите скорость моторов и расстояние датчика теперь показывают осмысленные значения вместо null.

        • Теперь можно нажать на пробел на компьютере и робот поедет вперёд, пока впереди не появится препятствие на расстоянии меньше 50-ти см. Когда робот обнаружит препятствие, он остановится.
        • Когда вы наигрались с роботом, можно снова нажать на треугольник. При этом все порты закроются, и робот снова станет неинициализирован, а треугольник станет серым.

    Файл программы, изображённой на картинке я прилагаю к статье:

    Инструкция для сборки стандартной приводной платформы Educator EV3
    Программа для Scratch 2 для тестирования взаимодействия с роботом EV3 Версия:от 07.08.2015

    Программа для Scratch 2 для тестирования взаимодействия с роботом EV3.

    07.08.2015 45.65 KB 1157

    Итог

    Из этой статьи вы узнали, как настроить офлайн редактор Scratch 2 для программирования роботов LEGO Mindstorms EV3 , а также узнали, как начать программировать с помощью него. К сожалению, в случае программирования в Scratch 2 модуль EV3 всё время должен быть подключен к компьютеру через Bluetooth или WiFi , т.е. он не автономен. Хотя здесь есть и приятные бонусы – роботом можно управлять с компьютера, например, робот на колёсах может управляться при помощи клавиш-стрелок или клавиш W, A, S и D. Итак, пробуйте, экспериментируйте и пишите, если что-то непонятно.

    Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера 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) файлы нету.

    В 2006 году Microsoft объявила о создании платформы Microsoft Robotics Developer Studio (более подробно в статье Википедии). MRDS – это Windows – ориентированная среда разработки приложений для робототехники и симуляции. В настоящее время актуальной является версия Microsoft Robotics Developer Studio 4. Среди особенностей: язык графического программирования VPL, Web – и Windows – ориентированные интерфейсы, среда симуляции VSE, упрощенный доступ к датчикам, микроконтроллеру и исполнительным механизмам робота, поддержка языка программирования C#, библиотеки для многопоточного программирования и распределенного выполнения приложений CCR и DSS, поддержка многих робототехнических платформ (Eddie, Boe - Bot, CoroBot, iRobot, LEGO NXT и т.д.).

    LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) - это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments (более подробно в статье Википедии). LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степени ориентирована на решение задач не столько в области АСУ ТП (автоматизированные системы управления технологическим процессом), сколько в области АСНИ (автоматизированных систем научных исследований). Графический язык программирования «G», используемый в LabVIEW, основан на архитектуре потоков данных. Последовательность выполнения операторов в таких языках определяется не порядком их следования (как в императивных языках программирования), а наличием данных на входах этих операторов. Операторы, не связанные по данным, выполняются параллельно в произвольном порядке. Программа LabVIEW называется и является виртуальным прибором (англ. Virtual Instrument) и состоит из двух частей:

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

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

    Комплект NXT состоит из управляющего блока, четырех датчиков и трех сервоприводов. Управляющий блок содержит в себе:
    • 32-битный микроконтроллер AVR7 с 256 КБайт FLASH памяти и 64 КБайт RAM памяти;
    • 8-битный микроконтроллер AVR c 4 Кбайт FLASH памяти и 512 Байт RAM памяти;
    • радиомодуль Bluetooth V 2.0;
    • USB-порт;
    • 3 разъема для подключения сервоприводов;
    • 4 разъема для подключения датчиков;
    • LCD дисплей разрешением 99x63 пикселей;
    • динамик;
    • разъем для 6 батареек типа AA.
    Датчики (в разных комплектациях разные наборы датчиков):
    • ультразвуковой датчик;
    • два тактильных датчика (датчики касания);
    • датчик опредения цвета.


    Рисунок 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

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

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


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

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

    Резюме

    • Мы сделали обзор программных платформ для разработки приложений микрокомпьютера NXT.
    • Мы рассмотрели основные принципы разработки приложений в платформах MRDS 4 и NI LabVIEW.
    • Познакомились с интерфейсом сред.
    В следующих статьях мы будем заниматься непосредственно программированием NXT. По среде LabVIEW в сети есть много учебных материалов, по VPL гораздо меньше. Очень рекомендую изучить справочное руководство обеих платформ (необходимо знание английского), в данных руководствах очень много примеров которые можно реализовать и не имея NXT, а так же следующие книги:
    • Программируем микрокомпьютер NXT в LabVIEW - Лидия Белиовская, Александр Белиовский,
    • Microsoft Robotics Developer Studio. Программирование алгоритмов управления роботами - Василий Гай.
    В своих статьях я буду описывать только свои проекты, т.к. не вижу смысла переписывать информацию из одних источников в другие. Приму любую конструктивную критику, отвечу на любые вопросы касаемо рассмотренных платформ. Заранее спасибо!