Изучение робототехники сегодня начинается уже со школьной скамьи. Однако не всем школам так повезло, и тому есть ряд объективных причин. Во-первых, стоимость одного робототехнического комплекса (здесь и далее имеется в виду Lego Mindstorms NXT 2.0) превышает стоимость средней компьютерной системы. Во-вторых, руководить занятиями робототехники должен высококвалифицированный педагог, одинаково хорошо разбирающийся и в техническом конструировании, и в микроэлектронике, и в программировании. Подготовка таких специалистов-педагогов сегодня только начинается. Ну и в-третьих, русскоязычные учебники, вышедшие из печати на сегодняшний день, можно пересчитать, по-видимому, на пальцах одной руки.
Настоящее пособие было подготовлено по результатам работы со студентами, получающими специальность учителя информатики. Авторы ставили перед собой задачу дать начальные понятия программирования роботов Lego Mindstorms NXT 2.0 на языке NXT-G. Кроме того, отдельные главы пособия были использованы на курсах по повышению квалификации и переподготовке учителей информатики на кафедре информатики и методики преподавания информатики Оренбургского государственного педагогического университета.
Не так давно появилась более новая версия робототехнического комплекса LegoMindstorms EV3. Однако имеющийся в российских школах и центрах технического творчества парк роботов Mindstorms NXT 2.0 так велик, что было бы неправильным сбрасывать его со счетов.
Программирование сегодня уже не так привлекательно для школьников как 15-20 лет назад. Это замечают многие школьные и вузовские преподаватели информатики. Нужны новые средства для мотивации учеников в этой области. По нашему мнению, робототехника сегодня как раз и является таким средством. Поэтому в пособии упор делается на алгоритмической составляющей робототехники.
Обращаем внимание студентов на то - и это очень важно! - что при работе с пособием следует не только выполнять задания, но и обязательно набирать и проверять задачи из примеров. Это поможет лучше понять язык и особенности программирования роботов.
Мы рассматриваем программирование роботов в англоязычной версии среды NXT-G, так как она распространяется свободно.
Идеи многих заданий были почерпнуты в [1, 4, 6], авторам которых мы выражаем глубокую признательность.
В этом разделе приводятся краткие сведения о составе конструктора Lego Mindstorms NXT 2.0 и NXT-технологии, основанные на руководстве пользователя, входящем в комплект 8547. Если у Вас имеется указанное руководство, и Вы уже ознакомились с ним, то можно сразу перейти к разделу 1.2.
NXT является интеллектуальным, управляемым компьютером роботом на базе элементов LEGO и системы MINDSTORMS.
Основа конструктора Lego Mindstorms NXT 2.0 - программируемый блок NXT (его ещё называют "кирпичом"), интерактивные сервомоторы и несколько датчиков. В состав комплекта 8547 входят:
В образовательной версии конструктора имеется также датчик звука, который измеряет уровень громкости звука, а вместо RGB-датчика присутствует датчик освещённости. Существуют и другие датчики, которые выпускаются отдельно от комплекта, например, для измерения температуры, pH среды, гироскопический датчик, компас и др.
Все датчики и моторы подсоединяются к NXT-блоку через порты входа и выхода посредством чёрных шестипроводных кабелей. Сенсоры подключаются к входным портам под номерами 1 - 4, а моторы - к выходным портам, имеющим на блоке NXT названия A, B, C.
Производитель рекомендует для подключения сенсоров и моторов использовать стандартные порты:
(рис 1.1) Внешний вид блока NXT и его разъёмы
В нашем учебном курсе мы придерживаемся этих рекомендаций. На самом деле можно подключать сенсоры в произвольные порты. Соблюдать стандартные порты обязательно при работе с меню Try Me (см. ниже).
Блок NXT работает от шести батарей типа AA. В образовательную версию набора входит аккумуляторная батарея.
Работа с меню NXT происходит при помощи четырёх кнопок (Рис. 1.1):
Turn off?, после чего для подтверждения выключения нажмите оранжевую кнопку. Также можно нажать и удерживать тёмно-серую кнопку до полного выключения NXT.
(рис 1.2) Экран отключения блока NXT
Задание 1.1. Научитесь включать и выключать свой NXT. Попробуйте выключить NXT двумя способами, описанными выше.
Вся информация на дисплее NXT отображается на английском языке. При включении экран NXT выглядит как на Рис. 1.3:
(рис 1.3) Экран блока NXT после включения
![]() | Bluetooth включен, но NXT не определяется другими устройствами Bluetooth. |
![]() | Bluetooth включен, и NXT определяется другими устройствами Bluetooth. |
![]() | Bluetooth включен, и NXT подключен к устройству Bluetooth. |
![]() | USB подключен и работает нормально. |
![]() | USB подключен, но имеются неполадки. |
Если NXT работает нормально, то иконка рабочего состояния крутится. Если вращение иконки прекратилось, значит NXT завис и требует перезагрузки.
По умолчанию роботу присвоено имя NXT. Имя можно изменить. Как это сделать см. в п. 1.2.
Задание 1.2. Включите NXT. Изучите информацию, которая отображается на экране NXT. Перемещайтесь по главному меню NXT при помощи стрелок. Выключите NXT.
Рассмотрим структуру меню NXT.
Пример 1.1. Настроим NXT так, чтобы он автоматически выключался через две минуты простоя. Для этого выберем из главного меню Settings\Sleep. Затем при помощи стрелок выбираем нужное значение (текущее значение отображается на экране) и нажимаем на ввод (оранжевая кнопка). Если теперь не работать с NXT в течении двух минут, то он выключится сам. Обратите внимание на вариант Never (Никогда): в этом режиме NXT не будет выключен, пока Вы сами этого не сделаете. Но это может привести к более быстрому разряду батарей.
Пример 1.2. Попробуем проиграть звуковые файлы на блоке NXT. Главное меню\My Files\Sound files\Good Job. В окне отображается имя выбранного файла и варианты работы с ним, которые можно пролистать при помощи стрелок:
Running, а по завершению - Done.
Delete - удалить выбранный файл (иконка корзины). Если выбрать этот вариант, появится предупреждающее сообщение Are you sure? (Вы уверены?). Вариант по умолчанию - иконка в форме креста (Нет). В случае, если выбранный файл всё же нужно удалить, то при помощи стрелки следует выбрать иконку с галочкой (Да).
Send - переслать (иконка письма). Для того, чтобы переслать файл другим устройствам, следует вначале настроить канал связи Bluetooth.Задание 1.3. Установите максимальную громкость динамиков. Проверьте громкость, проиграв произвольный звуковой файл NXT. Установите комфортную для себя громкость.
Задание 1.4. Изучите различные варианты автоотключения NXT. Установите таймер автоотключения на 10 минут.
Задание 1.5. Протестируйте датчики касания, ультразвука, мотор при помощи меню Try Me (не забудьте про стандартные порты подключения сенсоров).
Работу с другими пунктами меню будем рассматривать по мере необходимости.
Запустите программное обеспечение Mindstorms NXT 2.0. В открывшемся окне (Рис. 1.4) можно просмотреть видео "Getting Started Guide" (Руководство к быстрому старту) и "Software Overview" (Обзор программного обеспечения).
(рис 1.4) Окно среды программирования NXT-G после запуска
Если при разработке программ на NXT-G один компьютер используется несколькими пользователями, то удобно создать для каждого разработчика свой уникальный профиль, в котором будут храниться программы только этого разработчика. После установки Lego Mindstorms NXT 2.0 автоматически создаётся один профиль с именем Default (по умолчанию) (Рис. 1.5).
(рис 1.5) Профиль по умолчанию
Пример 1.3. Создадим новый профиль Student. Для этого выберем пункт меню Edit\Manage Profiles. В появившемся окне (Рис. 1.6) последовательно нажимаем на кнопку Create (по умолчанию для нового профиля будет предложено имя Profile-1), заполняем поле Name и нажимаем кнопку Close.
(рис 1.6) Создание собственного профиля
Теперь можно выбрать свой уникальный профиль из списка (Рис. 1.7):
(рис 1.7) Выбор собственного профиля
Задание 1.6. Удалите профиль Student и создайте профиль со своим именем. Перед дальнейшей работой выберите свой профиль.
Пользовательский интерфейс среды по умолчанию устанавливает для первой новой программы имя Untitled-1 (Безымянная-1). В дальнейшем номер каждой новой создаваемой Вами программы автоматически увеличивается на единицу. Однако более целесообразно использовать для своих программ уникальные "говорящие" имена.
В поле Create new program (Создать новую программу) введите Hello! и нажмите кнопку Go (Вперёд).
(рис 1.8) Создание или открытие программы
Внимание! Экран NXT отображает текст только на английском языке, поэтому символы кириллицы в имени файла недопустимы.
В дальнейшем открыть уже созданную программу можно, выбрав её из списка в поле Open recent program (Открыть существующую программу) (Рис. 1.8).
Для создания и открытия файлов можно использовать и стандартные средства - комбинации клавиш Ctrl+N и Ctrl+O соответственно или воспользоваться меню File.
Вкладки в левой верхней части окна среды позволяют открыть Robo Center и My Portal (Рис. 1.9). Эти возможности мы оставляем за рамками настоящего пособия и рекомендуем читателю самостоятельно с ними ознакомиться. Просто нажмите на крестик, чтобы увеличить область программирования.
(рис 1.9) Доступ к Robo Center и My Portal
При необходимости эти вкладки всегда можно включить.
В NXT-G реализован визуальный способ проектирования программ, что очень удобно для обучения. Программа составляется из блоков. Каждый блок представляет различные типы действий. Блоки можно настраивать. Все блоки организованы и представлены в трёх палитрах программирования (Рис. 1.10) - "Common" (Общая), "Complete" (Полная) и "Custom" (Пользовательская). Одновременно можно работать только с одной палитрой.
Блоки имеют различную окраску, которая зависит от функционального назначения блока. Блоки, функциональное назначение которых, похоже, окрашены одинаково. Например, все блоки, которые отвечают за выполнение некоторого действия (Action), окрашены зелёным цветом, а блоки, которые отображают текущие значения датчиков - жёлтым цветом. Цветовая окраска позволяет легко находить нужные блоки в палитре.
(рис 1.10) Палитры блоков NXT-G
Блоки, которые используются наиболее часто, сгруппированы в палитре "Common". Каждая иконка этой палитры является отдельным программным блоком, кроме иконки Wait, которая показывает шесть вариантов этого блока (Рис. 1.11):
(рис 1.11) Выпадающий список вариантов блока Wait
Любой из вариантов блока Wait можно получить путём настроек блока.
Задание 1.7. Изучите всплывающие подсказки блоков палитры "Common", наводя на них указатель мыши.
Полная палитра открывает доступ к 39 блокам, организованным в шесть категорий. Самая первая категория повторяет общую палитру. С остальными категориями мы познакомимся позднее на конкретных примерах.
Пользовательская палитра содержит блоки, которые Вы загрузили и создали самостоятельно. Работу с этой палитрой мы будем изучать в теме 6.
Продолжим создание программы Hello! и тем самым завершим обзор интерфейса среды NXT-G.
Правее палитры программирования находится большая область программирования. Блоки перетаскиваются мышью из палитры на специальную направляющую в виде балки Lego, которая увеличивается с очередным добавленным блоком.
(рис 1.12) Исходный узел для построения программы на NXT-G
Пример 1.4. Создадим классическую для вхождения в язык программирования программу, которая будет выводить на экран сообщение: Hello, world!
Добавьте на лист программы блок Display из общей палитры. В нижней части окна отображается панель настроек текущего (выделенного) блока. По умолчанию блок настроен на отображение изображений (Action: Image), а именно, улыбающегося смайлика. Смена картинки возможна в свойстве File. Свойство Display позволяет очищать экран (Clear) перед выводом нового изображения.
Нам нужно вывести на экран текст, поэтому изменим свойство Action на Text (Рис. 1.12), заменим текст по умолчанию на Hello, world! и выберем позицию отображения Line - 5 (можно просто щёлкнуть мышью в нужном месте свойства Position или задать необходимые координаты).
(рис 1.13) Настройки блока Display
Наша программа получилась очень компактной, она полностью умещается на экране. В дальнейшем мы встретимся с более длинным (в прямом смысле этого слова) кодом. Для того, чтобы увидеть код, который не поместился на экране, можно воспользоваться курсорными стрелками. Кроме этого можно щёлкать мышкой по области кода в правом нижнем углу экрана (становится доступной, если щёлкнуть по вкладке с изображением лупы).
Для загрузки и запуска программ на блок NXT в среде NXT-G используются управляющие кнопки или, по-другому, контроллер (Рис. 1.14):
(рис 1.14) Контроллер NXT-G
Подключите робот шнуром USB к компьютеру. Включите робот нажатием на оранжевую кнопку. Запустите программу на выполнение при помощи центральной кнопки контроллера. Что Вы увидели? На экране мелькнула надпись Hello! и затем сразу Done. Это означает, что программа Hello! уже завершила свою работу, а Вы этого так и не увидели. Обратите внимание, что сейчас на экране NXT отображается меню Software files.
Для того, чтобы успеть увидеть текст на экране NXT до завершения программы, нужно использовать задержку времени. Добавим в программу новый блок Wait и настроим его на отсчёт двух секунд (Рис. 1.15):
(рис 1.15) Настройки блока Wait
Ещё раз запустите программу на выполнение при помощи центральной кнопки контроллера. Теперь текст остаётся на экране в течение двух секунд. Поскольку сейчас на экране NXT активна надпись Run, то можно повторить выполнение программы нажатием на оранжевую кнопку ввода.
Задание 1.8. Создайте новую программу Eyes, в которой на экране NXT будут изображены глаза, смотрящие налево-направо. Используйте файлы Looking left и Looking right для имитации взгляда налево/направо. Смена направления взгляда должна происходить четыре раза.
Завершим тему присваиванием нового имени Вашему NXT-блоку.
Пример 1.5. Изменение имени NXT. Нажмите на кнопку NXT window контроллера. В результате откроется окно, правая часть которого NXT Data содержит следующую информацию (Рис. 1.16):
Введите в поле Name новое имя Вашего NXT и нажмите на кнопку ввода рядом с этим полем. На экране NXT автоматически отобразится новое имя.
(рис 1.16) Окно NXT
Вкладки Communications и Memory рассмотрим позднее.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.