Lego Mindstorms NXT 2.0. Обзор
Введение
Изучение робототехники сегодня начинается уже со школьной скамьи. Однако не всем школам так повезло, и тому есть ряд объективных причин. Во-первых, стоимость одного робототехнического комплекса (здесь и далее имеется в виду 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
В этом разделе приводятся краткие сведения о составе конструктора Lego Mindstorms NXT 2.0 и NXT-технологии, основанные на руководстве пользователя, входящем в комплект 8547. Если у Вас имеется указанное руководство, и Вы уже ознакомились с ним, то можно сразу перейти к разделу 1.2.
NXT является интеллектуальным, управляемым компьютером роботом на базе элементов LEGO и системы MINDSTORMS.
Основа конструктора Lego Mindstorms NXT 2.0 - программируемый блок NXT (его ещё называют "кирпичом"), интерактивные сервомоторы и несколько датчиков. В состав комплекта 8547 входят:
- два датчика нажатия - кнопки;
- датчик цвета - RGB-датчик, позволяющий роботу различать цвета и измерять яркость окружающего света;
- ультразвуковой датчик - "глаза" робота, позволяющие ему измерять расстояние до объекта.
В образовательной версии конструктора имеется также датчик звука, который измеряет уровень громкости звука, а вместо RGB-датчика присутствует датчик освещённости. Существуют и другие датчики, которые выпускаются отдельно от комплекта, например, для измерения температуры, pH среды, гироскопический датчик, компас и др.
Все датчики и моторы подсоединяются к NXT-блоку через порты входа и выхода посредством чёрных шестипроводных кабелей. Сенсоры подключаются к входным портам под номерами 1 - 4, а моторы - к выходным портам, имеющим на блоке NXT названия A, B, C.
Производитель рекомендует для подключения сенсоров и моторов использовать стандартные порты:
- Порт 1: Датчик касания
- Порт 2: Датчик касания
- Порт 3: Датчик цвета
- Порт 4: Ультразвуковой сенсор
- Порт A: Мотор для дополнительных функций
- Порт B: Мотор для движения
- Порт C: Мотор для движения
В нашем учебном курсе мы придерживаемся этих рекомендаций. На самом деле можно подключать сенсоры в произвольные порты. Соблюдать стандартные порты обязательно при работе с меню Try Me (см. ниже).
Блок NXT работает от шести батарей типа AA. В образовательную версию набора входит аккумуляторная батарея.
Работа с меню NXT происходит при помощи четырёх кнопок (Рис. 1.1):
- Серые треугольники - кнопки "вперёд" (вправо) и "назад" (влево) - позволяют перемещаться внутри меню до нужного пункта;
- Оранжевый квадрат соответствует клавише ввода; она же используется для включения робота;
- Тёмно-серый прямоугольник - "отмена" или переход назад к предыдущему пункту. Эта же кнопка используется для выключения робота. Для выключения NXT нажимайте кнопку до тех пор, пока на экране не появится надпись Turn off?, после чего для подтверждения выключения нажмите оранжевую кнопку. Также можно нажать и удерживать тёмно-серую кнопку до полного выключения NXT.
Задание 1.1. Научитесь включать и выключать свой NXT. Попробуйте выключить NXT двумя способами, описанными выше.
Вся информация на дисплее NXT отображается на английском языке. При включении экран NXT выглядит как на Рис. 1.3:
Bluetooth включен, но NXT не определяется другими устройствами Bluetooth. | |
Bluetooth включен, и NXT определяется другими устройствами Bluetooth. | |
Bluetooth включен, и NXT подключен к устройству Bluetooth. |
Если NXT работает нормально, то иконка рабочего состояния крутится. Если вращение иконки прекратилось, значит NXT завис и требует перезагрузки.
По умолчанию роботу присвоено имя NXT. Имя можно изменить. Как это сделать см. в п. 1.2.
Задание 1.2. Включите NXT. Изучите информацию, которая отображается на экране NXT. Перемещайтесь по главному меню NXT при помощи стрелок. Выключите NXT.
Рассмотрим структуру меню NXT.
- My Files (Мои Файлы). Здесь хранятся все файлы NXT.
- Software files (Файлы программ). Здесь хранятся скомпилированные файлы программ, загруженных пользователем. Отсюда происходит запуск программ на выполнение.
- NXT files (Файлы NXT). Служебные файлы NXT.
- Sound files (Звуковые файлы). Здесь содержатся различные звуковые файлы, как встроенные, так и записанные пользователем. Вы можете записать собственные звуки, чтобы затем использовать их в программах.
- Datalog files (Файлы данных). Содержит данные, собранные NXT при помощи меню NXT Datalog. Данные можно считывать во время работы программы или передавать по Bluetooth другим устройствам.
- NXT Program (Программа NXT). Этот раздел позволяет программировать NXT прямо на блоке, без помощи компьютера. Можно создавать короткие программы из не более чем пяти команд. Подходит для начального знакомства с возможностями NXT. Однако сколько-нибудь сложные задачи здесь не решаются.
- NXT Datalog (Данные NXT). Получает, отображает на экране и записывает данные с внешних устройств (датчиков) в файлы, которые затем хранятся в меню Datalog files.
- View (Обзор). Позволяет отображать на экране данные, полученные с внешних устройств. Но, в отличие от NXT Datalog, не записывает эти данные в файлы. Может использоваться для тестирования и калибровки датчиков.
- Bluetooth. Позволяет создать канал беспроводной связи между NXT и другими устройствами с поддержкой Bluetooth. Служит для загрузки программ без помощи USB-кабеля, обмена программами с другими NXT, дистанционного управления другими NXT (не более трёх) или управления NXT при помощи других устройств, например, с телефона.
- Settings (Настройки). Настройка различных параметров блока NXT.
- Volume (Громкость). Устанавливает громкость динамиков.
- Sleep (Сон). Настраивает параметры автоматического отключения при простое.
- NXT Version. Позволяет узнать текущие версии программных и аппаратных средств.
- Delete files (Удаление файлов). Служит для удаления файлов. Будьте осторожны: удаляет все файлы из выбранного каталога!
- Try Me (Попробуй). Подключив датчики и моторы к соответствующим портам, можно выполнить несколько готовых программ и познакомиться с возможностями конструктора.
Пример 1.1. Настроим NXT так, чтобы он автоматически выключался через две минуты простоя. Для этого выберем из главного меню Settings\Sleep. Затем при помощи стрелок выбираем нужное значение (текущее значение отображается на экране) и нажимаем на ввод (оранжевая кнопка). Если теперь не работать с NXT в течении двух минут, то он выключится сам. Обратите внимание на вариант Never (Никогда): в этом режиме NXT не будет выключен, пока Вы сами этого не сделаете. Но это может привести к более быстрому разряду батарей.
Пример 1.2. Попробуем проиграть звуковые файлы на блоке NXT. Главное меню\My Files\Sound files\Good Job. В окне отображается имя выбранного файла и варианты работы с ним, которые можно пролистать при помощи стрелок:
- Run - запустить выбранный файл на выполнение (иконка рабочего состояния). Если выбрать этот вариант, звуковой файл будет воспроизведён. В процессе работы файла на экран будет выведено сообщение Running, а по завершению - Done.
- Delete - удалить выбранный файл (иконка корзины). Если выбрать этот вариант, появится предупреждающее сообщение Are you sure? (Вы уверены?). Вариант по умолчанию - иконка в форме креста (Нет). В случае, если выбранный файл всё же нужно удалить, то при помощи стрелки следует выбрать иконку с галочкой (Да).
- Send - переслать (иконка письма). Для того, чтобы переслать файл другим устройствам, следует вначале настроить канал связи Bluetooth.
Задание 1.3. Установите максимальную громкость динамиков. Проверьте громкость, проиграв произвольный звуковой файл NXT. Установите комфортную для себя громкость.
Задание 1.4. Изучите различные варианты автоотключения NXT. Установите таймер автоотключения на 10 минут.
Задание 1.5. Протестируйте датчики касания, ультразвука, мотор при помощи меню Try Me (не забудьте про стандартные порты подключения сенсоров).
Работу с другими пунктами меню будем рассматривать по мере необходимости.