Практикум по основам робототехники. Задачи для Lego mindstorms nxt и ev3. Учебно-методическое пособие
.pdfОбразовательный набор EV3 содержит следующие датчики:
1. Датчики касания (2 датчика). Датчик аналогичен датчику касания предыдущей версии. Он определяет, когда кнопка нажата или отпущена,
также он может подсчитывать одиночные или многократные нажатия.
2.Датчик цвета:
−различает 7 цветов (против 6 цветов в версии NXT 2.0), способен определять различия между белым и черным или цветами: синим, зеленым,
желтым, красным, белым и коричневым;
−определяет отсутствие цвета;
−может работать как датчик освещенности;
−измеряет отраженный красный свет и окружающее освещение;
−частота работы: 1 кГц.
3.Ультразвуковой датчик расстояния:
−может измерять расстояние в диапазоне 3–250 см;
−имеет точность измерений: +/- 1 см;
−обладает дискретностью результата измерений: 0,1 см;
−может быть использован для поиска других активных ультразвуковых датчиков (режим прослушивания);
−имеет красную LED подсветку вокруг «глаз».
Как видно из приведенного описания, помимо определения расстояния как основной функции данного датчика, в EV3 добавилась еще одна функция
– датчик может «слушать» ультразвуковые колебания, испускаемые другими датчиками ультразвука.
4. Гироскопический датчик – измеряет вращательное движение робота и изменение его положения:
−может использоваться для определения текущего направления вращения;
−имеет точность: +/- 3 градуса на 90 градусов оборота (в режиме измерения наклона);
−может определить максимум 440 градусов/c (в режиме гироскопа);
−частота работы: 1 кГц.
11
Вдомашней версии набора ультразвуковой датчик расстояния заменен на многофункциональный инфракрасный. Этот инфракрасный датчик может не только измерять расстояние, но и принимать команды от блока управления.
Вобразовательной версии набора LEGO EV3 два больших (рис. 1.6) и
один средний (рис. 1.7) сервомотор. Средний сервомотор отличается от остальных не только размером, но и техническими характеристиками.
Размеры нового мотора составляют 3×4×9 см., его отличают высокая точность и скорость вращения. И датчики, и моторы сейчас имеют крестообразные отверстия для крепления, т. е. для установки может хватить одной оси.
Большой мотор очень похож на предыдущую версию мотора NXT,
однако корпус мотора стал чуть больше (виртуально он теперь занимает
14×7×5 отверстий против бывших 14×6×5). Также у больших моторов крепление было смещено на одно отверстие относительно оси. Отметим также следующие характеристики:
−скорость вращения – 160–170 об/мин;
−заданный крутящий момент – 40 Н/см;
−реальный крутящий момент – 20 Н/см;
−точность датчика угла поворота мотора – 1 градус.
Средний мотор отлично подойдет для работы под низкими нагрузками и высокими скоростями:
−скорость вращения –240-250 об/мин;
−заданный крутящий момент – 12 Н/см;
−реальный крутящий момент – 8 Н/см;
−точность датчика угла поворота мотора – 1 градус.
NXT датчики, моторы и кабели совместимы с EV3, таким образом все ранее построенные роботы могут управляться новым блоком.
Еще одной особенностью является автоматическое определение датчиков и моторов при их подключении к блоку.
В версии EV3 усовершенствования коснулись и блока:
1. По сравнению с NXT, EV3 имеет более быстрый процессор (300 МГц против 48 МГц ранее), больше оперативной памяти – 64 Мб (против 256 Кб у
12
NXT 2.0). Прошивка блока и программы сохраняются во флеш-памяти.
Внутренне EV3 базируется на свободно распространяемой ОС Linux. EV3-
блок имеет 6 кнопок (против 4 у NXT) и подсветку различных цветов, которая может информировать о процессе выполнения программы.
2.Возможность соединения робота с Интернетом через сеть Wi-Fi.
3.Увеличение разрешения экрана (178×128 пикселов против 100×64
пиксела у NXT 2.0). Экран остался монохромным.
4.Появление порта USB для подключения внешних устройств.
5.Слот для чтения SD карт (поддерживает до 32 Гб памяти).
6.Возможность соединения с семью роботами посредством технологии
Bluetooth (ранее были доступны три подключения)
7. Дополнительный четвертый порт для подключения мотора.
В новой версии сохранено соединение компьютера с блоком через USB-
кабель, так как передача данных при подобном соединении происходит значительно быстрее и экономит заряд батареи. Добавился еще один способ подключения: теперь кроме подключения блока к компьютеру (по USB или
Bluetooth) возможно подключать блоки между собой (по USB). Также доступно подключение по Wi-Fi c помощью USB-адаптера, подключаемого к блоку. Следует отметить, что EV3 с NXT по Bluetooth связать не получится.
Таким образом, сравнивая два поколения конструкторов программируемых роботов LEGO, мы можем отметить, что новое поколение роботов LEGO MINDSTORMS EV3 обладает всеми возможностями предыдущего поколения LEGO MINDSTORMS NXT и по многим параметрам превосходит его. В EV3 более мощный управляющий блок, появились новые датчики, расширились возможности подключения датчиков и сервомоторов.
Такие характеристики позволяют создавать более продвинутых роботов.
Обратной стороной нововведений стало появление специальных ограничений на сборку роботов из комплектов EV3 на соревнованиях по робототехнике,
что делается для выравнивания стартовых позиций соревнующихся команд,
осуществляющих сборку своих роботов на основе конструкторов NXT и EV3.
13
Раздел 2. Среды программирования для конструкторов роботов LEGO MINDSTORMS NXT и LEGO MINDSTORMS EV3
Конструкторы программируемых роботов LEGO позволяют создавать программы для роботов самыми разнообразными способами. Простейшим вариантом является создание программы непосредственно на блоке управления, где можно указать несколько команд, которые должен исполнить робот. Создание более сложных программ требует уже использование компьютера, где в специальной среде описывается алгоритм поведения робота, настраивается чувствительность датчиков, производится отладка.
Получившаяся таким образом программа загружается в блок управления для непосредственного исполнения роботом.
Рассмотрим интерфейс среды NXT-G (рис. 2.1).
Рис. 2.1. Интерфейс среды NXT-G
14
Окно приложения состоит из следующих элементов:
1)рабочая область;
2)основная палитра;
3)полная палитра;
4)пользовательская палитра;
5)самоучитель;
6)верхнее меню;
7)панель инструментов;
8)командный центр.
В основной палитре команд содержатся следующие блоки:
1)управления моторами (блок «Движение»);
2)записи и воспроизведения последовательности действий (блок
«Писать/Играть»);
3)подачи звукового сигнала (блок «Звук»);
4)вывода на экран (блок «Экран»);
5)ожидания наступления события (блок «Ожидание»);
6)циклы;
7)проверки условия (блок «Переключатель»).
Расширенная палитра состоит из следующих групп блоков:
1)основная группа (содержит элементы основной палитры);
2)группа действий (позволяет настраивать обратную связь при управляющем воздействии на учебного робота: вывод информации на экран,
подача звукового сигнала и т.д.);
3)группа датчиков (инструменты получения сведений об окружающей обстановки с помощью датчиков и кнопок блока NXT);
4)группа операторов (ожидание события, переключатель, цикл,
прерывание программы);
5)группа данных (инструменты для выполнения операций с логическими, числовыми и текстовыми переменными);
6)группа дополнений (преобразование типов данных, калибровка
датчиков, работа с файлами, регистрация данных, сброс данных и т.д.).
15
Пользовательская палитра («Моя палитра») предназначена для редактирования собственных блоков пользователя, выполняющих в программе функции подпрограмм. Детально настройки рассмотренных блоков представлены в работах [1; 6; 9]. Процесс написания программы для LEGO-
робота состоит в перемещении блоков из перечисленных выше палитр на рабочую область. Для настройки загрузки программы в блок NXT и ее выполнения используются кнопки командного центра.
С EV3 в комплекте поставляется новая среда разработки на базе
LabView, похожая на NXT-G. Работает она, как и NXT-G, на ОС Windows и Mac OS. Программирование с помощью программного обеспечения EV3
осталось аналогичным предыдущей версии NXT-G и осуществляется путем перетаскивания иконок в рабочее окно с целью формирования команд.
Однако, есть и различия.
Так в EV3 появилось такое понятие, как проект, который содержит программу для робота, документацию и результаты экспериментов. В проект можно добавлять новые и уже существующие программы.
В среде программирования был добавлен инструмент zoom, который позволяет масштабировать программу, чтобы, например, увидеть всю программу целиком.
Новым инструментом стала и специальная страница с подключенным оборудованием, которая позволяет отслеживать статус этого оборудования и получать значения на датчиках в реальном времени (рис 2.2).
Рис. 2.2. Страница отслеживания оборудования
Оборудование автоматически распознается при подключении, т.е. не надо указывать, что к такому-то порту подключен такой-то датчик или мотор.
16
Всреде программирования EV3 появился режим отладки, в котором:
−подсветка места исполнения позволяет определить фрагмент алгоритма, исполняемый программой;
−специальный символ отображается на соответствующем программном блоке, если с заданным портом используется не тот датчик или мотор;
−есть возможность просматривать значения, передаваемые через каналы данных.
Также появились новые возможности программных блоков:
−сцепление блоков друг с другом позволило отказаться от «балки исполнения», на которой располагались блоки в среде NXT-G;
−у блоков нет такого понятия, как панель настройки, – поведение настраивается непосредственно на блоке, что привело к увеличению их размера. Удобство заключается в том, что программу легче читать – сразу видно, на что реагирует датчик или как ведет себя мотор;
−появились блоки «ждать изменения», которые позволяют реагировать просто на изменение, а не на изменение до определенного значения (обычные блоки Ожидания/Wait в NXT-G);
−улучшения в передаче данных от блока к блоку позволяют упростить преобразование типов;
−есть возможность работать с массивами;
−есть блок досрочного выхода из цикла.
Как и в NXT, EV3 программа представляет собой последовательность блоков, определяющих действия робота. Например, для того, чтобы робот проехал вперед, а затем развернулся, можно составить программу из 2 блоков управления моторами – езда прямо и поворот (рис. 2.3).
Рис. 2.3. Выполнение движения вперед и разворота
17
Палитра программирования, на которой расположены все блоки,
переместилась: в NXT она располагалась с левого края, теперь – внизу.
Изменилось не только расположение, была переработана сама структура вкладок. В EV3 решили отказаться от вкладок «Общая палитра», «Расширенная палитра», «Пользовательская палитра» и дублирования блоков внутри них. Палитра EV3 состоит из 6 вкладок:
1.Действие
2.Управление операторами
3.Датчики
4.Операции с данными
5.Дополнения
6.Мои Блоки
Внешний вид вкладок палитры EV3 представлен на рис. 2.4.
Рис. 2.4. Палитра EV3
Палитра представляется более продуманной, вследствие чего выбирать блоки стало быстрее. Дизайн блоков также был сильно изменен. Панель настройки была удалена, и теперь настройка блока производится непосредственно на нем самом. Такое нововведение привело к тому, что все параметры блока видно без его выделения.
Все блоки в EV3 имеют режимы: у блоков управления моторами режимом считается критерий остановки, у блоков датчиков – формат измерения или сравнения показаний. Режим блока задается большой кнопкой в левом нижнем углу
18
Теперь, взглянув на программу, можно полностью понять ее поведение,
и это позволяет быстро находить ошибки. Выпадающего концентратора с входными и выходными параметрами в EV3 нет, шина данных выходит и подключается непосредственно к той секции блока, которая настраивает нужный параметр (рис.2.5).
Рис. 2.5. Передача данных между блоками в EV3
Таким образом, программирование с помощью программного обеспечения EV3 осталось аналогичным предыдущей версии NXT-G и
осуществляется путем перетаскивания иконок в рабочее окно с целью формирования команд. Существенные отличия заключаются в следующем:
появилась возможность отслеживания статуса подключенного оборудования в режиме реального времени и режим отладки; изменение интерфейса блоков;
новые блоки ожидания изменения; новый тип поддерживаемых данных – массивы; блок досрочного выхода из цикла.
19
Раздел 3. Базовые задачи для программирования LEGO-робота
Среды программирования LEGO-роботов содержат различные инструменты для настройки работы с моторами и датчиками робота. Для успешного выполнения заданий на программирование LEGO-роботов необходимо освоить особенности программирования робота на выполнение различных видов поворотов, прямолинейного движения, движения с ускорением, считывания показаний датчиков и т.д. Другими словами,
необходимо освоить особенности управления моторами и датчиками из среды программирования робота.
Управление моторами
Программирование движения происходит посредством блока Move (Движение), который находится в общей и полной палитрах NXT. Настройка блока Move, как и других блоков, производится в нижней части экрана после выбора блока.
Программирование движения в EV3 осуществляется из вкладки
«Действия». Настройки, позволяющие управлять поведением мотора:
−порты моторов, которыми управляет этот блок;
−направление вращения моторов;
−уровень мощности мотора (скорость). Заметим, что реальная скорость робота будет зависеть также и от его конструкции, типа поверхности, наклона поверхности, массы робота и т. п
−параметр длительности движения: без ограничения, в градусах,
оборотах или секундах (рис. 3.1).
Выполнение роботом поворота можно задавать включением как одного,
так и двух моторов. Когда второй двигатель выключен (бегунок Поворот в этот момент недоступен), робот осуществляет плавный медленный поворот
20
