Информация о материале Категория: Первые шаги Просмотров: 195132
Введение:
Задача данного курса — познакомить вас с конструктором Lego mindstorms. Научить собирать базовые конструкции роботов, программировать их под определенные задачи, разобрать с вами базовые решения наиболее распространенных задач-соревнований.
Курс рассчитан на делающих первые шаги в мир робототехники с помощью конструктора Lego mindstorms. Хотя все примеры роботов в этом курсе сделаны с помощью конструктора Lego mindstorms EV3, программирование роботов объясняется на примере среды разработки Lego mindstorms EV3, тем не менее, владельцы Lego mindstorms NXT тоже могут присоединиться к изучению данного курса, и, надеемся, найдут для себя тоже полезное.
LEGO Mindstorm EV3: Programming Tutorial
Урок №2 — Программирование движения робота
Информация о материале Категория: Первые шаги Просмотров: 310105
Источник: robot-help.ru
Программирование микрокомпьютера LEGO NXT Mindstorms 2.0. Введение
Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера 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).
Как написать программу для Робота Сумо MEGA-BOT .LEGO EV3 MINDSTORMS.
Да кому вообще нужны эти ваши уроки, в сети и так куча проектов по робототехнике! С использованием данной связки (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 и т.д.).
- блочной диаграммы, описывающей логику работы виртуального прибора;
- лицевой панели, описывающей интерфейс пользователя виртуального прибора.
Краткий обзор набора LEGO NXT Mindstorms 2.0.
- 32-битный микроконтроллер AVR7 с 256 КБайт FLASH памяти и 64 КБайт RAM памяти;
- 8-битный микроконтроллер AVR c 4 Кбайт FLASH памяти и 512 Байт RAM памяти;
- радиомодуль Bluetooth V 2.0;
- USB-порт;
- 3 разъема для подключения сервоприводов;
- 4 разъема для подключения датчиков;
- LCD дисплей разрешением 99×63 пикселей;
- динамик;
- разъем для 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 основных окон:
- 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
Начало программирование в LEGO Mindstorms EV3 с использованием языка Java
В настоящее время для программирования в Lego Mindstorms EV3 используется графический язык программирования LabVIEW, который позволяет создавать простые программы.
Набор LEGO Mindstorms EV3 позволяет придумывать различные изобретения, которые работают с помощью набора моторов, модульных датчиков и включают в себя интеллектуальный компьютер, который управляет системой. Комплекты содержат программное и аппаратное обеспечение для создания управляемых роботов Lego.
Lego Mindstorms EV3 может работать с прошивкой leJOS, тогда в роботе может запускаться Java-приложение. Специально для этого компания Oracle выпустила и поддерживает отдельную версию полноценной Java SE [1].
LeJOS – это замена прошивки для программируемых устройств Lego Mindstorms. Она в настоящее время поддерживает такие устройства, как LEGO RCX, Lejos NXJ, NXT, EV3. Также включает в себя виртуальную машину Java, что позволяет Lego Mindstorms запрограммировать роботов на языке программирования Java [2].
В LeJOS программировать легко и удобно. Во-первых, используется объектно-ориентированный язык, поэтому сложные программы пишутся легче, чем на простом графическом языке программирования LabVIEW.
Преимущества программирования в Lego Mindstorms, используя прошивку leJOS [2]:
• Использование объектно-ориентированного языка Java.
• Можно создавать приложения, работающие не только в модуле EV3, но и приложения для смартфонов, планшетов и компьютеров для удаленного взаимодействия с роботом.
• Веб-камера, подключенная к модулю EV3, отображает изображение, видео на дисплее или удаленно передает их на компьютер. Камеру можно использовать, например, вместо датчика цвета.
• Массивы можно выбрать одномерные или многомерные.
• Можно использовать множество классов Java.
Итак, приведем и разберем пошагово пример написания простой программы. Для этого, во-первых, начинаем с выражения «Hello world»:
Рис. 1. Код «Hello world»
« ПерваяПредыдущая1 2 3СледующаяПоследняя »
Публикация научной статьи. Пошаговая инструкция
Есть вопрос? Задайте его Вашему персональному менеджеру. Служба поддержки призвана помочь пользователям в решении любых проблем, связанных с вопросами публикации своих работ и другими аспектами работы издательства «Проблемы науки».
Источник: scienceproblems.ru