Lego mindstorms nxt 2.0 программы. На все вкусы

1 Января. Раннее Утро. Мой 9 летний сын обнаружил под ёлкой подарок от Деда Мороза. Это оказалась огромная коробка с Lego Mindstorms NXT 2.0.

Распаковка
Размер коробки, как и качество исполнения на высоте. Первое время хочется просто рассматривать коробку. Откидная крышка показывает комплектацию набора и элементы программного обеспечения.

Итак, что мы имеем в коробке:

  • NXT программируемый блок (дальше просто кирпич) - ядро всей системы
  • 4x сенсора:
    • Ультразвуковой сенсор - позволяет роботу измерять расстояние до объекта и реагировать на движение
    • Два сенсора нажатия – позволяют роботу реагировать на прикосновения
    • Сенсор цвета – самый интересный сенсор, включает в себя сразу три функции: Умеет определять 6 цветов цвет - Белый, Черный, Желтый, Красный, Зеленый и Голубой, интенсивность освещения и быть лампой подсветки
  • 3x Интерактивных сервомотора – помимо обеспечения движения, они могут быть использованы как датчики, обеспечивая определение угла поворота колеса.
  • USB кабель для подключения кирпича к компьютеру
  • 7x соединительных кабелей
  • Инструкция
  • Диск с программным обеспечением для Windows и Mac OS
  • Тестовое поле для калибровки сенсоров и тестирования вашего детища
  • 613 различных Lego деталей

Это уже вторая версия набора Mindstorms. И он немного вырос по сравнению со своей первой версии. Добавились детали, появился новый датчик - Сенсор Цвета.

Кирпич может проигрывать заранее записанные звуки и отображать на своем экране подготовленные картинки и текст.

Интересная особенность кирпича это встроенный bluetooth, который можно использовать как для связи с другим кирпичом, так и для управления роботом с помочью телефона. В сети без проблем нашел софт для простых телефонов, Windows Mobile и Android.

Открыв коробку, понимаешь, что набор содержит много мелких деталей. А хранить их в коробке не очень удобно. Пригодился предыдущий опыт с лего. В использование пошла новая пластиковая коробка и пластиковые пакеты на молнии. Хоть коробка и хороша, но функционально ее больше не использовать.

Вот он какой великий и ужасный кирпич.

Инструкция в комплекте на английском языке, но в стиле Лего, все интуитивно понятно и просто. Бумажная инструкция дает пояснения по установке и настройке, заодно позволяет собрать базовый (тестовый) модуль. Остальные схемы доступны через программу Lego Mindstorm NXT.

Инструкцию на русском языке легко найти в сети, например .

Для работы кирпича потребуется 6 пальчиковых батареек AA. Рекомендую запастись аккумуляторами и зарядным устройством. Поискав, на сайте лего, был найден стандартный аккумулятор 54.95$ + блок питания 24.99$.

По мне так дороговато.

К стандартному программному обеспечению NXT-G тоже вопросов нет, все просто работает.

NXT-G это графическая среда программирования разработанная National Instruments для LEGO. Написание NXT-G программ очень похоже на создание блок-схем. Вы «пишете» программу путем перетаскивания блоков, которые описывают различные поведения, например, поворот двигателя. С использованием различных блоков, вы можете контролировать двигатели, определять расстояние до объекта или изменение цвета, а так же воспроизвести звук и выполнить код в зависимости от состояния датчиков и т.д.

Вы пишите программу, подключаете робота (кирпич) к компьютеру, заливаете программу, переносите робота на тестовый полигон и смотрите, как ваше детище начинает исследовать мир.

NXT-G предназначена для детей и взрослых, которые не имеют опыта программирования и по этой причине, она очень проста в использовании. Понятно, что возможности данной программы ограничены, но свои начальные задачи она решает превосходно. В интернете было обнаружено множество сторонних сред, которые позволяют писать непосредственно код. Постараюсь сделать обзор в скором времени.

Дальше пошло все по инструкции по маслу сборка моделей, обкатка программного обеспечения. Благодаря пошаговой инструкции Лего, сын все выполняет сам, я лишь изредка подглядываю и подсказываю правильное направление.

Что же дальше?
Сын собирает модель. Затем мы на тестовом полигоне тестируем различные варианты программ, например на скорость прохождение робота вдоль линии. Так что ближайшие несколько месяцев есть чем заняться. Главное подкидывать задачки.

Для себя скачал книгу “Extreme NXT”, которая дает массу идей по использованию кирпича и инструкцию по созданию и подключению новых датчиков. Так что самое интересное еще впереди.

Ну и на последок Monster Chess - очень большие шахматы с использованием LEGO MINDSTORMS для каждой шахматной фигуры.

Аннотация: Проводится поверхностный обзор робототехнического комплекса, включающего конструктор Lego Mindstorms NXT 2.0 и среду программирования NXT-G. Цель: познакомиться с основными компонентами конструктора Lego Mindstorms NXT 2.0, интерфейсом среды NXT-G и научиться создавать простейшую программу "Hello, world!".

Введение

Изучение робототехники сегодня начинается уже со школьной скамьи. Однако не всем школам так повезло, и тому есть ряд объективных причин. Во-первых, стоимость одного робототехнического комплекса (здесь и далее имеется в виду Lego Mindstorms NXT 2.0) превышает стоимость средней компьютерной системы. Во-вторых, руководить занятиями робототехники должен высококвалифицированный педагог, одинаково хорошо разбирающийся и в техническом конструировании, и в микроэлектронике, и в программировании. Подготовка таких специалистов-педагогов сегодня только начинается. Ну и в-третьих, русскоязычные учебники, вышедшие из печати на сегодняшний день, можно пересчитать, по -видимому, на пальцах одной руки.

Настоящее пособие было подготовлено по результатам работы со студентами, получающими специальность учителя информатики. Авторы ставили перед собой задачу дать начальные понятия программирования роботов Lego Mindstorms NXT 2.0 на языке NXT-G. Кроме того, отдельные главы пособия были использованы на курсах по повышению квалификации и переподготовке учителей информатики на кафедре информатики и методики преподавания информатики Оренбургского государственного педагогического университета.

Не так давно появилась более новая версия робототехнического комплекса LegoMindstorms EV3. Однако имеющийся в российских школах и центрах технического творчества парк роботов Mindstorms NXT 2.0 так велик, что было бы неправильным сбрасывать его со счетов.

Программирование сегодня уже не так привлекательно для школьников как 15-20 лет назад. Это замечают многие школьные и вузовские преподаватели информатики. Нужны новые средства для мотивации учеников в этой области. По нашему мнению, робототехника сегодня как раз и является таким средством. Поэтому в пособии упор делается на алгоритмической составляющей робототехники.

Обращаем внимание студентов на то - и это очень важно! - что при работе с пособием следует не только выполнять задания, но и обязательно набирать и проверять задачи из примеров. Это поможет лучше понять язык и особенности программирования роботов.

Мы рассматриваем программирование роботов в англоязычной версии среды NXT-G, так как она распространяется свободно.

Идеи многих заданий были почерпнуты в [ , , ], авторам которых мы выражаем глубокую признательность.

Состав конструктора Lego Mindstorms NXT 2.0. Технология NXT

В этом разделе приводятся краткие сведения о составе конструктора Lego Mindstorms NXT 2.0 и NXT-технологии, основанные на руководстве пользователя, входящем в комплект 8547. Если у Вас имеется указанное руководство, и Вы уже ознакомились с ним, то можно сразу перейти к разделу 1.2.

NXT является интеллектуальным, управляемым компьютером роботом на базе элементов LEGO и системы MINDSTORMS.

Система 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 :

Если 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 (не забудьте про стандартные порты подключения сенсоров).

Работу с другими пунктами меню будем рассматривать по мере необходимости.

Конструкторы Lego одноимённой датской компании прекрасно известны во всех странах. Их мировая слава и популярность не вызывает сомнений, однако, национальные отличия этой популярности, конечно, имеются.

Обзор робота Lego Mindstorms NXT 2.0: Терминатор из конструктора

Не секрет, что в Северной Америке существует настоящий культ Lego. Конструкции из пупырчатых кубиков постоянно становятся новостным поводом на сайтах посвященных науке и технике, а среди авторов этих конструкций вы редко когда встретите имена детей или подростков – а всё больше людей взрослых, увлечённых инженеров, программистов, архитекторов… Из деталей конструктора Lego делают модели космических кораблей, известных по популярным кинофильмам, дома и автомобили в натуральную величину, различного рода электронные устройства со сложным программированием и использованием сенсоров…

Lego - не только кубики с креплениями

В России, в отличие от Америки, конструктор Lego по-прежнему воспринимается как детская забава – по крайней мере, большинством. Типичный образ датской игрушки у нас – это либо скромного вида коробочка с парой десятков деталей, либо огромные тематические аттракционы, которые представляются этаким архитектурным феноменом, а не полем для конструкционного творчества.

При должном усердии из Lego можно собрать настоящий компьютер

Меж тем, Lego – конструктор с действительно великими творческими возможностями. Она основаны на двух главных принципах. Во-первых, все детали во всех наборах (кроме детской серии Lego Duplo) совместимы между собой. Во-вторых, под брэндом Lego выпущен огромное количество разнообразных наборов.

На все вкусы

За 60 с лишним лет работы компания Lego выпустила больше сотни различных наборов. Все их можно условно разделить на несколько групп.

Во-первых, это «составные» тематические конструкторы, выпуск которых длится уже много лет. К ним относятся такие наборы, как Town, Space или Castle.

Во-вторых, это тематические конструкторы с определённой идеей. К таким наборам можно отнести Sports, Friends, Fabuland…

Мечтать о джипе можно начать с покупки Lego

В-третьих, это конструкторы, темы которых лицензированы у популярных на момент выхода набора произведений масскульта: книг, комиксов, фильмов, анимационных лент. К этой группе относятся наборы Star Wars, Batman, Harry Potter…

Наконец, в-четвёртых, существует группа «творческих» конструкторов. Они посвящены различным темам, общее в которых – достаточная реалистичность и сложность явления. К таким наборам можно отнести Creator и Architecture, а также Technic – конструктор, позволяющий создавать различные машины и механизмы, использующие моторы.

К «творческим» конструкторам Lego стоит отнести и формально «тематический» набор Mindstorms – наиболее сложное, интересное и разнообразное по возможностям творение Lego.

Персональный робот - норма в XXI веке

История набора Mindstorms началась в 1998 году, когда в ассортименте конструкторов Lego появилась первая его версия. Она стала закономерным итогом сотрудничества компании Lego и компании MIT Media Lab по созданию универсального программируемого блока-процессора, который стал основой для конструктора. Потенциал набора был настолько огромен, что на протяжении десяти лет он оставался актуальной творческой площадкой различных конструкторских экспериментов. В 2008 году вышла вторая версия набора Mindstorms – NXT. А в 2009 – третья: Mindstorms NXT 2.0.

Ничего сложного

Конструктор Lego Mindstorms NXT 2.0 – это набор для создания роботов. Под роботом мы понимаем конструкцию, выполняющую ряд действий в соответствии с заранее написанной программой. Программа может быть как простой, состоящей из ряда последовательностей, так и сложной – имеющей несколько вариантов, которые запускаются в зависимости от наличия внешних факторов.

Всё это разнообразие обеспечивается набором стандартизированных деталей Lego, которые в Mindstorms NXT 2.0 можно разделить на четыре группы.

Коробка с набором Mindstorms NXT 2.0

Во-первых, это детали для сборки конструкции: приводные ремешки, гусеницы, шестерёнки, колёса, балки, кронштейны…

Во-вторых, это электронно-управляемые серводвигатели. В наборе их три штуки. Их вращающиеся головки имеют максимальную скорость 170 оборотов в минуту, а точность равна одному градусу.

В-третьих, разнообразные сенсоры, которые позволяют созданным роботам интерактивно реагировать на изменения условий внешней среды.

Наконец, в четвёртых, это блок-процессор Mindstorms NXT, который представляет собой функцию центра координации всех остальных составляющих конструкции.

Давайте теперь рассмотрим элементы каждой из групп конструктора подробнее.

Вокруг компьютера

В базовый набор Mindstorms NXT 2.0 входит более 600 деталей для сборки конструкции робота. Как уже было сказано, это шестерёнки и втулки, пластиковые балки различного размера, крепления, кронштейны, колёса, фиксаторы, пластины и так далее. Все они принципиально совместимы с деталями из других конструкторов Lego и могут использоваться совместно. Кроме того, в продаже имеются дополнительные наборы деталей – предназначенные для сборки особо сложных роботов.

Визуальный перечень деталей

Блок-процессор Mindstorms NXT позволяет подключить к себе три электродвигателя – именно столько их и входит в поставку конструктора. Двигатель Mindstorms NXT 2.0 – это сборное устройство, состоящее из оснащённого редукторами двигателя с датчиком угловых перемещений. В конструкции двигателя имеются ступицы колеса с отверстием под ось. Как уже было сказано выше, угловой датчик мотора имеет точность в 1 градус, а максимальная скорость вращения двигателя составляет 170 оборотов в минуту.

Фирменные сенсоры и мотор

Интеллектуальное поведение роботов, построенных с помощью конструктора Mindstorms NXT 2.0, обеспечивается сенсорами, входящими в состав набора и так же, как и моторы, подключаемыми к блокe-процессору. В базовый набор конструктора Mindstorms NXT 2.0 входят четыре сенсора – ровно столько, сколько позволяют подключить к блоку-процессору его порты ввода. Среди этих сенсоров два датчика нажатия, один ультразвуковой датчик для замера расстояний и дистанционного обнаружения препятствий и один датчик света (может быть использован как элемент подсветки). Кроме базовых сенсоров к набору Mindstorms NXT 2.0 также выпускаются датчики звука (микрофон с интерфейсом, совместимым с блок-процессором Mindstorms NXT. Наконец, по лицензии Lego дополнительные сенсоры выпускают компании Mindsensors и HiTechnic. Среди их продукции можно найти видеокамеры, таймеры, компасы, датчики давления, инфракрасные датчики, датчики ускорения (от 2 до 5 плоскостей), датчики наклона и гироскопы.

Небольшая часть сенсоров, производимых Mindsensors

Блок-процессор Mindstorms NXT, идущий в поставке конструктора Mindstorms NXT 2.0 в единичном экземпляре, представляет собой специализированный микрокомпьютер, основанный на двух микроконтроллерах с флэш-памятью. Его габариты составляют 14,5 на 9,6 и на 6,1 сантиметр, а масса (без батареек и аккумуляторов) равно 235 граммам. На корпусе блока-процессора выделяются четыре кнопки управления и монохромный жидкокристаллический дисплей с разрешением 100 на 60 точек. Задняя сторона блока представляет собой крышку батарейного отсека для установки 6 элементов питания размера AA. Верхнюю и нижнюю грань корпуса занимают порты ввода и вывода для подключения сенсоров и электромоторов. Также на корпусе имеется порт USB 2.0 для подключения устройства к компьютеру. Более универсальный тип подключения предоставляет встроенный адаптер Bluetooth, с помощью которого Mindstorms NXT может взаимодействовать с блоками других наборов Mindstorms NXT 2.0, с ноутбуками, планшетными компьютерами и смартфонами. Наконец, в корпусе Mindstorms NXT нашлось место и для динамика, позволяющего воспроизводить звуки с качеством в 8 бит и 16 килогерц.

Блок-процессор Mindstorms NXT

Как уже было сказано, вычислительной основой Mindstorms NXT являются два микроконтроллера. Оба они произведены компанией Atmel. Первый из них - AT91SAM7S256 – использует 32-битный процессор ARM7TDMI с частотой ядра 48 мегагерц. Микроконтроллер имеет 64 килобайта ПЗУ и использует в качестве ОЗУ Flash-память объёмом 256 килобайт.

Второй микроконтроллер ATmega48 на 8-битном AVR-процессоре с частотой 8 мегагерц. Объём его ПЗУ составляет 512 байт, а ОЗУ – 4 килобайта. Как и в случае с AT91SAM7S256, речь идёт о Flash-памяти.

Чистое творчество

Несмотря на всю свою впечатляющую техническую базу, конструктор Mindstorms NXT 2.0, возможно, не приобрёл бы столь огромную популярность, если бы не два обстоятельства.

Первое – это фактическое существование блока-процессора Mindstorms NXT в статусе Open Source. Lego давно открыла всю схемотехнику устройства, не забыв выложить в открытый доступ код фирменных прошивок. Любому желающему сейчас доступны Software Developer Kit, Hardware Developer Kit (HDK) и Bluetooth Developer Kit. Последний документирует и описывает протоколы обмена информации через встроенный адаптер Bluetooth.

С графической средой программирования NXT-G разберётся каждый

Второе обстоятельство – это богатый выбор языков программирования и инструментария для программирования Mindstorms NXT.

Основным языком программирования для Mindstorms NXT являются код RСX. Кроме того, Lego официально поддерживает пакеты графической разработки NXT-G и Robolab. Все остальные варианты считаются «сторонними».

Среди них есть языки, подобные Java, C, Visual Basic, Ada, Forth… Инструментарий для работы с ним широко представлен в сети и совместим со всеми современными операционными системами: Windows, MacOS и Unix.

Но слишком сложные программы в ней не нарисовать

Фактически, при должном уровне знаний и фантазии программные среды, совместимые с Mindstorms NXT вкупе с набором Mindstorms NXT 2.0 способны стать достаточной основой для реализации проекта любой сложности. Не даром же этот конструктор Lego стал базой для обучения программированию и конструированию во многих учебных заведениях мира. Он же – конструктор Mindstorms NXT 2.0 официально разрешён для использования в соревновании роботов World Robot Olympiad. Чтобы не быть голословными, в заключительной части материала мы рассмотрим несколько примеров удивительных конструкторских решений, созданных с помощью Mindstorms NXT 2.0.

Праздник начинается!

Хотя традиционным началом знакомства с конструктором Mindstorms NXT 2.0 становится сборка какого-нибудь интеллектуально-управляемого трактора или человекоподобного робота (первое – из-за наличия в деталях колёс, второе – по ассоциации с самими словом «робот»), некоторые умудряются быть достаточно оригинальными. В таком случае многие (в основном, конечно, взрослые владельцы набора) собирают робот-конвейер по открытию бутылок. Это могут быть пластиковые полуторалитровые фляжки или пивные бутылки американского образца (с винтовой крышкой) – главное, чтобы модуль-открывашка конвейера мог зацепиться за пробку по окружности и произвести вращательное движение.

Собираем вместе

Как уже было сказано в статье, блок-процессор весьма охотно соединяется со многими электронными устройствами через порт USB. Вариантов использования данной возможности масса: синхронизация действий с другими роботами Mindstorms NXT 2.0, управление роботом со смартфона как с дистанционного управления, создание сложных комплексов, где основную вычислительную задачу решает не блок-процессор, а устройство с большей мощностью. Последнее показалось актуальным группе конструкторов, объединивших робота-сборщика Mindstorms NXT 2.0 и смартфон Nokia N95 для решения задачи по сборке профессиональной (4 на 4 на 4) версии кубика Рубика.

Распределение заданий было таково: Nokia N95 с помощью своей фотокамеры фотографирует все грани кубика (который любезно переворачивается роботом сборщиком), анализирует получившуюся развёртку и формирует алгоритм сборки. По этому алгоритму создаётся алгоритм для блока-процессора Mindstorms NXT, который, в свою очередь, руководит механизмом робота сборщика. Среднее время сборки кубика в итоге составляет около получаса.

Проверка интеллекта

Впрочем, будем откровенны и скажем, что реальной вычислительной мощности блока-процессора Mindstorms NXT хватает и без сторонней помощи смартфонов для любых интеллектуальных задач. Группа конструктора Ханса Андерссона смогла это продемонстрировать с помощью решения их роботом традиционной японской головоломки судоку.

Важно отметить, что робот всё делал сам: анализировал таблицы судоку, решал их, составлял алгоритм движения и вписывал в пустые клеточки недостающие цифры.

Устройство предоставлено компанией re:Store.

Базовый набор Mindstorms NXT подходит для начинающих исследователей Мира Роботов в возрасте от 8-ми лет. В основе - база LEGO Techniс.
На ней «построены» развивающие технологические конструкторы для юных физиков, механиков и инженеров.
При помощи Mindstorms NXT 2.0 ребенок сможет:

  • соберёт первых программируемых роботов
  • с помощью электромоторов сделает их подвижными
  • научится управлению через датчики
  • через компьютер запрограммирует «мозг» робота
  • сможет изучать сложные науки в игровой форме

Конструктор «LEGO Mindstorms NXT 2.0 - умный друг для юных техников, которые уже освоили Education WeDo!
В образовательную версию конструктора входит:

  • 413 элементов Lego Technic
  • программируемый блок
  • 3 мотора
  • 5 датчиков (освещённости, расстояния, 2 — касания) и микрофон
  • аккумуляторная батарея
  • коробка под элементы и детали

Характеристики:

Производитель: LEGO Education
Артикул: 9797
Страна: Дания
Вес: 3 кг.
Тип: Конструктор
Возраст: 8+








  • LEGO Mindstorms Education NXT 2.0
  • LEGO Mindstorms Education NXT 2.0
  • LEGO Mindstorms Education NXT 2.0
  • LEGO Mindstorms Education NXT 2.0
  • LEGO Mindstorms Education NXT 2.0
  • LEGO Mindstorms Education NXT 2.0
  • LEGO Mindstorms Education NXT 2.0

Датчики и моторы

Этот датчик напоминает кнопку любого устройства – телефона, пульта или клавиатуры. Датчик способен определить, когда кнопка нажата или отпущена, также он может подсчитывать одиночные и многократные нажатия.

Он позволяет роботу различать яркость объектов и определять освещенность помещения.
Способен работать в 2 режимах – измерение отраженного света и окружающего освещения
В режиме определения яркости можно различать цвета – например, у желтого цвета яркость ниже, чем у синего

Датчик звука (микрофон) позволяет определить уровень шума.
Может измерять шум в dB (децибелах) и dBA

С помощью этого датчика робот может «видеть» предметы перед собой и определять расстояние до них.
Может измерять расстояние в диапазоне 3 — 250 см.
Дискретность результата измерений: +/- 1 см.

Все три мотора в наборе одинаковые. Стоит отметить, что в каждом моторе присутствует датчик оборотов – энкодер. Он позволяет контролировать движение мотора с высокой точностью. Характеристики мотора:
Максимальные обороты — 160- 170 об/мин.
Крутящий момент — 20 Н/см
Встроенный датчик угла поворота (энкодер) мотора с точностью 1 градус
NXT датчики, моторы и кабели совместимы с EV3, поэтому оба набора – NXT и EV3 можно комбинировать.

Программируемый блок NXT представляет собой «мозг» робота. К «мозгу» можно подключить 3 мотора и 4 сенсора, и именно в нем хранятся программы робота. Когда программа запущена блок NXT читает программу и в соответствии с ней дает команды моторам и сенсорам. Робота можно подключить к компьютеру через USB или Bluetooth. Между собой роботы могут «общаться» по Bluetooth

Xарактеристики программируемого блока NXT:

  • Процессор — Atmel 32-Bit ARM 48 MHz, 256 KB Flash RAM, 64 KB RAM
  • Со-процессор — Atmel 8-Bit AVR 8 MHz, 4 KB Flash RAM, 512 Byte RAM
  • 4 порта ввода для датчиков. Поддерживаются аналоговые и цифровые датчики. Скорость передачи данных: 9600 бит/с (I2C)
  • 3 порта вывода для моторов
  • Монохромный LCD экран, 100 * 64 пикселей
  • Взаимодействие — USB 2.0, Bluetooth

С NXT поставляется графическая среда разработки на базе LabView — NXT-G. Поддерживаемые операционные системы — Windows и Mac. Среда разработки NXT очень простая и рассчитана на ребят, не обладающих специальными знаниями по информатике и не знакомых с программированием.

В среде NXT-G каждая команда роботу представлена в виде графического блока. Пример команды для мотора – включить мотор на 3 секунды или включить мотор на 4 оборота. Команда для сенсора зависит от типа сенсора. Например, для датчика освещенности команда может звучать так – скажи, какова освещенность комнаты, а для датчика расстояния – скажи, какое расстояние до препятствия. Составив последовательность таких блоков, можно создать программу – запрограммировать робота.

Базовые роботы
В образовательный набор включена инструкция для сборки базового робота.
Для NXT набора был выпущен ресурсный набор, позволяющий собирать другие модели, используя новые детали.
Робототехнические конструкторы NXT и EV3 являются отличным средством для изучения информатики, физики, математики, программирования.

  • Tutorial

Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера 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) файлы нету.

В 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 и т.д.).

LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) - это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments (более подробно в статье Википедии). LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степени ориентирована на решение задач не столько в области АСУ ТП (автоматизированные системы управления технологическим процессом), сколько в области АСНИ (автоматизированных систем научных исследований). Графический язык программирования «G», используемый в LabVIEW, основан на архитектуре потоков данных. Последовательность выполнения операторов в таких языках определяется не порядком их следования (как в императивных языках программирования), а наличием данных на входах этих операторов. Операторы, не связанные по данным, выполняются параллельно в произвольном порядке. Программа LabVIEW называется и является виртуальным прибором (англ. Virtual Instrument) и состоит из двух частей:

  • блочной диаграммы, описывающей логику работы виртуального прибора;
  • лицевой панели, описывающей интерфейс пользователя виртуального прибора.

Краткий обзор набора LEGO NXT Mindstorms 2.0.

Комплект NXT состоит из управляющего блока, четырех датчиков и трех сервоприводов. Управляющий блок содержит в себе:
  • 32-битный микроконтроллер AVR 7 с 256 КБайт FLASH памяти и 64 КБайт RAM памяти;
  • 8-битный микроконтроллер AVR c 4 Кбайт FLASH памяти и 512 Байт RAM памяти;
  • радиомодуль Bluetooth V 2.0;
  • USB-порт;
  • 3 разъема для подключения сервоприводов;
  • 4 разъема для подключения датчиков;
  • LCD дисплей разрешением 99x63 пикселей;
  • динамик;
  • разъем для 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 основных окон:
  1. Basic Activities – содержит базовые блоки, которые реализуют такие операторы как константа, переменная, условие и т.д.;
  2. Services – содержит блоки, предоставляющие доступ к функционалу платформы MRDS, например блоки для взаимодействия с какой-либо аппаратной составляющей робота, или блоки для вызова диалогового окна;
  3. Project – объединяет диаграммы входящие в проект, а так же различные конфигурационные файлы;
  4. Properties – содержит свойства выделенного блока;
  5. Diagrams window – содержит, непосредственно, диаграмму (исходный код) приложения.

Рисунок 3 - Среда программирования VPL

Выполним следующую последовательность действий:

2. Платформа NI LabVIEW.
На данной платформе все реализуется, практически, идентично. Запустим среду LabVIEW. Перед нами появиться два окна, первое - Front Panel, предназначено для реализации интерфейса пользователя (внешнего вида виртуального прибора), второе - Block Diagram, для реализации логики программы.


Рисунок 8 - Окна среды LabVIEW

Мы будем использовать окно Block Diagram. Выполним следующие шаги:

Резюме

  • Мы сделали обзор программных платформ для разработки приложений микрокомпьютера NXT.
  • Мы рассмотрели основные принципы разработки приложений в платформах MRDS 4 и NI LabVIEW.
  • Познакомились с интерфейсом сред.
В следующих статьях мы будем заниматься непосредственно программированием NXT. По среде LabVIEW в сети есть много учебных материалов, по VPL гораздо меньше. Очень рекомендую изучить справочное руководство обеих платформ (необходимо знание английского), в данных руководствах очень много примеров которые можно реализовать и не имея NXT, а так же следующие книги:
  • Программируем микрокомпьютер NXT в LabVIEW - Лидия Белиовская, Александр Белиовский,
Добавить метки
Статьи по теме: