Nxt программа для программирования
Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера LEGO NXT Mindstorms 2.0. Для разработки приложений я буду использовать платформы Microsoft Robotics Developer Studio 4 (MRDS 4) и National Instruments LabVIEW (NI LabVIEW). Будут рассматриваться и реализовываться задачи автоматического и автоматизированного управления мобильными роботами. Двигаться мы будем от простого к сложному.
Предвосхищая некоторые вопросы и комментарии читателей.
Почему именно NXT Mindstorms 2.0? Потому-что для своих проектов данный набор мне показался наиболее подходящим, т.к. микрокомпьютер NXT полностью совместим с платформами MRDS 4 и NI LabVIEW, а так же данный набор является очень гибким в плане сборки различных конфигураций роботов — затрачивается минимум времени на сборку робота.
Почему платформы MRDS 4 и NI LabVIEW? Так сложилось исторически. Обучаясь на старших курсах университета стояла задача в разработке учебных курсов с использованием данных платформ. К тому же платформы обладают достаточной простотой в освоении и функциональностью, с их использованием можно написать программу непосредственно для управления роботом, разработать интерфейс пользователя и провести тестирование в виртуальной среде (в случае с MRDS 4).
Да кому вообще нужны эти ваши уроки, в сети и так куча проектов по робототехнике! С использованием данной связки (NXT+MRDS 4/NI LabVIEW) учебных статей практически нет, в основном используется родная среда программирования, а в ней совсем все тривиально. Всем кому интересны робототехника, программирование и у кого есть набор NXT (а таких не мало), возрастная аудитория любая.
Графические языки программирования это зло, а те кто на них программируют еретики! Графические языки программирования коими и являются MRDS 4 и NI LabVIEW несомненно имеют свои минусы, например ориентированность под узкие задачи, но все же в функциональности они мало уступают текстовым языкам, тем более NI LabVIEW изначально разрабатывался как язык легкий в освоении для решения научных и инженерных задач, для этого в нем присутствует множество необходимых библиотек и инструментов. По-этому для решения наших задач данные графические языки являются наиболее подходящими. И не надо нас за это сжигать на костре презирать.
Все это выглядит по-детски и вообще не серьезно! Когда задача состоит в реализации алгоритмов, в обучении основам и принципам программирования, робототехники, систем реального времени без углубления в схемотехнику и протоколы, то это очень подходящий инструмент хоть и не дешевый (касаемо набора NXT). Хотя для этих же целей неплохо подойдут наборы на базе Arduino, но совместимости с MRDS 4 и NI LabVIEW у данного контроллера почти нет, а в данных платформах есть свои прелести.
Технологии, которые используются, являются продуктом загнивающих капиталистических стран, а автор враг народа и пособник западных заговорщиков! К сожалению, большинство технологий в области электроники и вычислительной техники родом с запада, буду очень рад если мне укажут на аналогичные технологии исконно отечественного производства. А пока будем использовать то, что имеем. И не надо на меня за это сообщать спецслужбам держать зла.
Краткий обзор платформ MRDS 4 и NI LabVIEW.
Внесу некоторую ясность в терминологию. Под платформой, в данном случае, имеется ввиду совокупность различных инструментов, например язык VPL в MRDS, а так же среда выполнения приложений, т.е. непосредственной компиляции приложений в исполняемые (*.exe) файлы нету.
- блочной диаграммы, описывающей логику работы виртуального прибора;
- лицевой панели, описывающей интерфейс пользователя виртуального прибора.
Краткий обзор набора LEGO NXT Mindstorms 2.0.
Рисунок 1 — Микрокомпьютер NXT с подключенными датчиками и приводами
И конечно же в наборе находятся разнообразные детали LEGO в форм-факторе LEGO Technic из которых будут собраны исполнительные механизмы и несущая конструкция.
Рисунок 2 — Детали в форм-факторе LEGO Technic
Пишем первое приложение.
Напишем первое приложение. Пусть, классически, данное приложение выводит текст “Hello, World!”. Реализация будет происходить поочередно в MRDS 4 и NI LabVIEW, в процессе будем рассматривать специфику каждой платформы.
Предварительно инсталлируем платформы MRDS 4 и NI LabVIEW, в случае с MRDS 4 инсталляция должна проводится в папку путь к которой не состоит из кириллицы (русских букв), учетная запись пользователя так-же должна состоять только из латинских букв.
1. Платформа MRDS 4.
Запускаем среду VPL (Меню Пуск — Все Программы — Microsoft Robotics Developer Studio 4 — Visual Programming Language). Данная среда позволяет разрабатывать приложения на языке VPL, проводить тестирование в виртуальной среде VSE. Программа в VPL представляет собой диаграмму, состоящую из соединенных между собой блоков. В открывшемся окне, помимо стандартной панели команд и меню, присутствует 5 основных окон:
- Basic Activities – содержит базовые блоки, которые реализуют такие операторы как константа, переменная, условие и т.д.;
- Services – содержит блоки, предоставляющие доступ к функционалу платформы MRDS, например блоки для взаимодействия с какой-либо аппаратной составляющей робота, или блоки для вызова диалогового окна;
- Project – объединяет диаграммы входящие в проект, а так же различные конфигурационные файлы;
- Properties – содержит свойства выделенного блока;
- Diagrams window – содержит, непосредственно, диаграмму (исходный код) приложения.
Рисунок 3 — Среда программирования VPL
Выполним следующую последовательность действий:
- добавим блоки Data (из окна Basic Activities) и блок сервиса Simple Dialog (из окна Services),
- в блок Data введем “Hello, World!” (без кавычек) и выберем тип данных String,
- соединим блок Data с блоком Simple Dialog, появиться диалоговое окно,
- далее, все выполняем как на рисунках
Рисунок 4 — Окно Connections
Рисунок 5 — Окно Data Connections
Рисунок 6 — Законченный вид диаграммы
2. Платформа NI LabVIEW.
На данной платформе все реализуется, практически, идентично. Запустим среду LabVIEW. Перед нами появиться два окна, первое — Front Panel, предназначено для реализации интерфейса пользователя (внешнего вида виртуального прибора), второе — Block Diagram, для реализации логики программы.
Рисунок 8 — Окна среды LabVIEW
Мы будем использовать окно Block Diagram. Выполним следующие шаги:
- в окне Block Diagram вызовем контекстное меню, нажатием правой кнопкой мыши,
- в появившемся окне перейдем по вкладкам, как на рисунке и выберем String Constant,
Не хватает блока в программном обеспечении? Здесь ты можешь загрузить блоки для дополнительных датчиков. Загрузи эти обновления программного обеспечения, чтобы активировать каждый из этих дополнительных датчиков с помощью приложения EV3 Programmer (только для ПК/MAC).
ПРИЛОЖЕНИЯ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ ОТ LEGO (IOS/ANDROID)
Теперь ты можешь программировать EV3-роботов самым быстрым, интеллектуальным и увлекательным способом. Используй свой смартфон или планшет как пульт управления роботом. Построй любого из пяти основных роботов EV3 в 3D!
ПРИЛОЖЕНИЕ EV3 PROGRAMMER
УПРАВЛЯЮЩЕЕ ПРИЛОЖЕНИЕ ROBOT COMMANDER
ПРИЛОЖЕНИЕ 3D BUILDER
ИГРА «ПОЧИНИ ФАБРИКУ»
ЗАГРУЗКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ LEGO DIGITAL DESIGNER
Программа для создания различных 3D-объектов на основе виртуальных деталей конструктора LEGO от самих разработчиков этого популярного конструктора
ЗАГРУЗИТЬ ПО LEGO DIGITAL DESIGNER (PC/MAC)
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ LEGO DIGITAL DESIGNER 4.3
РУКОВОДСТВО ПО МОДЕЛИРОВАНИЮ В LEGO DIGITAL DESIGNER 4.3
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ VIRTUAL BRICK
Если у Вас нет робота, то это не проблема! Программа VIRTUAL BRICK позволяет моделировать и выводить на экран действия Вашего робота в трехмерном пространстве
Графическая среда программирования, созданная специально для популярного робототехнического комплекта Lego Mindstorms NXT.
Конструктор LEGO Mindstorms NXT, разработанный с участием сотрудников Массачусетского технологического института, включает в себя: ПО NXT-G, интеллектуальный микрокомпьютер NXT Brick, три интерактивных сервопривода, набор датчиков (нажатия, ультразвуковой и цветовой) и свыше 600 различных деталей. Микрокомпьютер оснащен ЖК-дисплеем и клавишами управления, имеет три порта для приводов, интерфейсы для связи с компьютером – Bluetooth и USB, динамики и четыре разъема для датчиков.
Графическая среда NXT-G в свою очередь используется для программирования модуля NXT Brick. Данный софт имеет интуитивно понятный интерфейс, создание программ управления роботами напоминает создание блок-схем и осуществляется с помощью специальных блоков, размещаемых на LEGO-балках вдоль оси последовательности действий. Порядок выполнения программы определяется порядком следования блоков. Подключение новых компонентов выполняется путем их «перетаскивания» с палитры программирования на LEGO-балку.
Каждый из иконок-блоков обладает набором уникальных характеристик, определяющих поведение робота. Например, блок «Движение», предназначенный для активации моторов, имеет параметры продолжительности хода и направления, а также мощность, передаваемую на двигатели. В NXT-G имеются блоки: для арифметических операций (сложения, вычитания, умножения и деления), для таймеров, для переменных, для сравнения числовых значений (меньше, равно, больше). Присутствуют блоки, отвечающие за звуковые эффекты роботов или за возможность бесконечного повторения установленных действий и за их завершение по определенным событиям. В программе возможно создание своих собственных компонентов, каждый из которых будет являться последовательностью стандартных блоков, объединенных вместе.
Кроме того платформа NXT-G включает в себя подробные инструкции по сборке огромного ряда моделей роботов LEGO; дополнительные инструменты для создания изображений, редактирования звуков и калибровки сенсоров; контроллер для передачи, запуска и остановки созданных программ и просмотра справочной информации о микрокомпьютере (ресурсах памяти, параметрах связи и т.д.). Имеется возможность дистанционного управления подключенного к ПК робота.
Среди основных достоинств среды визуального программирования – наглядность и простота в использовании, позволяющая быстро освоить ПО без особых знаний и усилий. Однако диапазон функциональных возможностей NXT-G весьма ограничен и требует для работы значительных ресурсов персонального компьютера. Последнее в свою очередь является существенной преградой при разработке сложных проектов.
Платформа NXT-G была разработана специально для LEGO специалистами компании National Instruments. Данная среда программирования создана на основе собственного продукта компании – программного обеспечения LabVIEW. Штаб-квартира корпорации National Instruments, являющейся мировым лидером в области разработки виртуальных приборов, находится в городе Остин (США, штат Техас).
Среда программирования NXT-G распространяется свободно. При первом подключении к NXT Brick необходимо указать пароль, используемый для связи с устройством.
Язык интерфейса программного обеспечения NXT-G только английский, русификатора нет.
Графическая среда предназначена для работы на платформах PC и MAC, реализована совместимость с операционными системами Apple Mac OS X (v 10.4 и выше) и Microsoft Windows (XP, Vista и 7). Среди требований к ресурсам ПК – процессор частотой не менее 1 ГГц, минимум 512 МБ ОЗУ и около 700 МБ свободного дискового пространства.
Вязовов Сергей Михайлович, заведующий кафедрой информатики МАОУ "Лицей №14 имени Заслуженного учител Российской Федерации А.М.Кузьмина" г.Тамбова
Графическая среда NXT-G используется для программирования микрокомпьютера NXT. Данный софт имеет интуитивно понятный интерфейс, создание программ управления роботами напоминает создание блок-схем и осуществляется с помощью специальных блоков, размещаемых на LEGO-балках вдоль оси последовательности действий. Порядок выполнения программы определяется порядком следования блоков. Подключение новых компонентов выполняется путем их «перетаскивания» с палитры программирования на LEGO-балку.
Каждый из иконок-блоков обладает набором уникальных характеристик, определяющих поведение робота. В NXT-G имеются блоки: для арифметических операций (сложения, вычитания, умножения и деления), для таймеров, для переменных, для сравнения числовых значений (меньше, равно, больше). Присутствуют блоки, отвечающие за звуковые эффекты роботов или за возможность бесконечного повторения установленных действий и за их завершение по определенным событиям. В программе возможно создание своих собственных компонентов, каждый из которых будет являться последовательностью стандартных блоков, объединенных вместе.
Среди основных достоинств среды визуального программирования – наглядность и простота в использовании, позволяющая быстро освоить программное обеспечение без особых усилий. Однако диапазон функциональных возможностей NXT-G весьма ограничен и требует для работы значительных ресурсов персонального компьютера. Последнее в свою очередь является существенной преградой при разработке сложных проектов.
1. РАБОЧЕЕ ПОЛЕ NXT-G
Для создания новой программы для NXT необходимо выполнить команду File – New.
Рабочее пространство разработки программы для NXT выглядит следующим образом:
Создание программы для NXT представляет собой перемещение необходимых блоков (с точки зрения логики работы программы) из основной или расширенной палитры блоков на рабочее поле, а также настройка блоков.
Написание эффективных программ для роботов, принимающих участие в робототехнических соревнованиях, как правило, требует использования расширенной палитры блоков.
2. ГРУППА БЛОКОВ «COMMON»
Блок «Move» - блок управления движением. Используется для программирования синхронной работы двух или трех сервомоторов. Однако, его можно использовать и для управления движением только одного мотора.
Блок «Display» - вывод информации на экран блока NXT.
3. БЛОК ОЖИДАНИЯ СОСТОЯНИЯ – «WAIT»
Параметрами блока «Wait» являются значения датчиков или таймер.
Для соревнований «Hello, robots!» нам понадобится датчик освещённости, датчик цвета (работающий в режиме датчика освещённости), ультразвуковой датчик и кнопка.
Датчик освещённости – Light Sensor
Обратите внимание, что датчик определяет уровень отражённого от объекта (поверхности) света. Чем значение ближе к 100, тем больше света отражено (то есть цвет поверхности ближе к идеальному белому). И наоборот, чем ближе к 0, тем больше света было поглощено (то есть цвет поверхности ближе к идеальному чёрному).
Датчик цвета – Color Sensor
Кроме параметров настройки, датчик цвета в режиме Light Sensor работает точно также, как и датчик Light Sensor.
Ультразвуковой датчик – Ultrasonic Sensor
Ультразвуковой датчик используется для определения расстояния до объектов. Его можно использовать для поиска банок в соревнованиях «Кегельринг» и «Биатлон».
При такой настройке сенсора (как на рисунке выше), предыдущий блок будет выполняться до тех пор, пока расстояние до объекта не окажется меньшем 111 см.
Кнопка – Touch Sensor
В робототехнических соревнованиях часто используют кнопку для старта робота. В других видах соревнований кнопка может быть использована для обнаружения объектов или препятствий.
4. Блок цикла «LOOP»
Цикл «Loop» позволяет обеспечить многократное выполнение одной и той же группы блоков.
В качестве параметра «Control», определяющего число итераций цикла (количество повторений блоков) может выступать одно из следующих значений:
Forever – бесконечное количество итераций цикла (цикл никогда не завершится).
Sensor – работа цикла продолжается до тех пор, пока не будет получено заданное состояние датчика.
Time – цикл работает в течение заданного количества секунд.
Count – реализации цикла со счётчиком – задаётся точное количество итераций цикла.
Logic – в цикл как параметр передаётся логическое значение, в зависимости от которого цикл либо продолжает свою работу, либо завершает. Возможно сравнение логического значения как с истиной, так и с ложью.
5. Блок «SWITCH» - Выбор
Блок «Switch» позволяет реализовать ту или иную группу блоков, в зависимости от значений принятых параметров. В качестве принимаемых параметров могут быть:
Читайте также: