LEGO Mindstorms - Обзор

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

История конструкторов LEGO MINDSTORMS

Компания LEGO производила конструкторы и игрушки с конца 1940-х годов. Поначалу это были деревянные игрушки, затем компания планомерно перешла от использования дерева к использованию пластмассы. К концу 40-х годов у компании было в наличии около 200 различных моделей деревянных и пластиковых игрушек. Впоследствии ассортимент компании постоянно расширялся, и к началу 90-х годов помимо широко известных скрепляемых блоков, компания производила большое количество сугубо технических компонентов: шестерни, моторы, линейные актуаторы, пневматику.

Первый робототехнический конструктор был представлен компанией LEGO в 1998 году. Этот набор получил название LEGO MINDSTORMS: Robotics Invention System (RIS). В набор RIS входил интеллектуальный блок RCX, два мотора с встроенными редукторами, два датчика касания, один датчик освещённости и большое количество деталей. Дополнительно можно было приобрести датчик температуры и датчик вращения, которые не входили в комплектацию основного набора.

Программируемый блок, названный Robotic Control eXplorer (RCX), позволял подключить к нему датчики и моторы, написать программу, тем самым превратив любую конструкцию в самостоятельного робота, умеющего видеть, чувствовать, принимать решения и выполнять определённые действия.

Программируемый контроллер RCX, был построен на 8-битном микроконтроллере Renesas H8/300, работающем на частоте 16 МГц и 16 Кб памяти программ (ППЗУ), 512 байт собственного и 32 Кб внешнего ОЗУ. Блок RCX имел три входа, три выхода, инфракрасный коммуникационный порт для двунаправленной передачи (38,5 кГц, скорость до 2400 бит/с), динамик и символьный 4-х разрядный LCD-дисплей. Также этот блок был оснащён разъёмом для подключения адаптера питания, что позволяло использовать его в лабораторных условиях и не заботиться о периодической подзарядке аккумуляторов или регулярной замене элементов питания.

Для RCX компанией LEGO выпущено пять различных датчиков:

Все эти датчики были разработаны для RCX и подключались к нему двухпроводным кабелем через электрический разъём в виде пластины 2х2 с контактами.

Набор MINDSTORMS NXT, выпущенный компанией LEGO в июле 2006 года является, по сути, полностью переработанной и улучшенной версией RIS. Контроллер получил дополнительный порт для подключения датчиков, память программ была увеличена до 256 Кб, а вместо двигателей в набор были включены сервомоторы с встроенными датчиками оборотов (энкодерами). Для связи с компьютером использован интерфейс USB Full Speed со скоростью передачи данных до 12 Мбит/c.

Новый программируемый блок NXT получил дополнительный входной порт, три интерактивных сервомотора со встроенными датчиками вращения, новые виды датчиков, Bluetooth-модуль, графический ЖК-дисплей с разрешением 100x64 точки, а также USB-интерфейс для связи с компьютером.

Компания LEGO занялась продвижением своего нового продукта в сферу системы образования и в мае 2007 года выпустила LEGO MINDSTORMS Education NXT Base Set – образовательную версию NXT. Набор был упакован пластиковую коробку с лотками для деталей, в него добавили дополнительный датчик касания, а также аккумулятор для контроллера. Диск с программным обеспечением NXT-G в набор не входил (его стали продавать отдельно). Образовательная версия наборов NXT стала активно продвигаться в качестве замены устаревшим как физически, так и морально наборам RIS с RCX. Количества деталей, поставлявшихся в стандартной коробке, явно не хватало для реализации сложных конструкций, поэтому в 2008 году был выпущен ресурсный набор LEGO MINDSTORMS Education Resource Set, содержащий большее количество различных шестерёнок, колёс и других необходимых деталей.

В 2009 году компания LEGO приняла решение обновить комплект NXT, выпустив улучшенную версию – набор LEGO MINDSTORMS NXT 2.0. Кроме незначительных изменений в составе мелких деталей, обновленный набор получил новый датчик цвета взамен монохромного датчика освещённости. Из набора был исключён датчик звука, вместо него был добавлен ещё один датчик касания.

К разработке нового поколения LEGO MINDSTORMS было подключено более 800 преподавателей со всего мира. Компания LEGO учла все рекомендации, и в январе 2013 года, продолжая 15-летнюю историю серии MINDSTORMS, представила новую платформу – LEGO MINDSTORMS EV3 (последняя версия конструктора на текущий момент).

Аппаратные возможности управляющего контроллера были существенно расширены. В набор добавлен гироскопический датчик, который позволяет измерять углы поворота робота, а также улавливать изменения в его движении и положении. К новому контроллеру можно подключать уже до 4-х моторов. Количество моторов в наборе осталось прежним, однако один большой мотор заменен на средний мотор, который имеет меньшие размеры, вес и мощность. Средний мотор расширяет возможности конструктора, по задумке разработчиков он используется, когда скорость и быстрота отклика, а также размер робота важнее его грузоподъемности. В остальном средний мотор аналогичен большому мотору и также имеет встроенный датчик угла поворота.

Во многих странах широко распространено обучение в школах и колледжах с использованием наборов LEGO MINDSTORMS. С развитием этого опыта стали популярны соревнования роботов, где каждое учебное учреждение может выставить на соревнования свои команды. В России соревнования по робототехнике стали проводиться примерно с 2000 года. Сначала проходят соревнования в регионах, затем в Иннополисе (где собираются победители всех регионов), а после финалисты едут в другие страны для участия в WRO.

Вот, например, видео с российского этапа Всемирной Олимпиады Роботов 2014 года:

Комплектация набора LEGO MINDSTORMS NXT 2.0

Главное отличие наборов MINDSTORMS от всех остальных серий LEGO заключается в наличии уникальных электронных компонентов, составляющих ядро всей системы. Первым, и самым главным устройством является программируемый контроллер, или, как его называет компания LEGO – интеллектуальный блок. Если быть точным, то слово блок не совсем подходит, так как в оригинале он называется intelligent brick, а применительно к конструкторам LEGO словом brick обозначают прямоугольные строительные кирпичики. По этой причине очень часто в среде русскоязычного сообщества MINDSTORMS контроллеры RCX и NXT называют «кирпич». Однако правильнее называть его программируемый блок или контроллер NXT.

Программируемый контроллер NXT (NXT Brick), считывает данные с датчиков и управляет моторами робота в соответствии с заданной программой. Контроллер имеет четыре входных порта для датчиков, помеченных цифрами от 1 до 4 и три выходных порта для двигателей, помеченных буквами A, B и C (для движения обычно используются B и C, A – для манипулятора). Ниже на рисунке показаны программируемый контроллер NXT и аккумулятор «LEGO» для контроллера NXT (входит только в образовательную версию конструктора).

Основные характеристики программируемого контроллера приведены в таблице ниже.

Параметр Описание
Процессор Основной процессор: 32-разрядный Atmel ARM7 AT91SAM7S256, частота 48 МГц,. Сопроцессор: 8-разрядный Atmel AVR ATmega48, частота 8 МГц
Память 256 Кб ППЗУ (Flash-память), 64 Кб ОЗУ основного процессора, и 4 Кб ППЗУ (Flash-память), 512 байт ОЗУ сопроцессора
Входы 4 входа, 6 контактов на порт, поддержка аналоговых и цифровых интерфейсов. Скорость цифровых интерфейсов 9600 бит/с. 1 высокоскоростной порт (порт 4) с поддержкой промышленных сетей (стандарт IEC 61158 Type 4)
Выходы выхода, 6 контактов на порт
Дисплей Графический жидкокристаллический дисплей (LCD), разрешение 100 x 64 точек, черно-белый. При выводе текста используются символы 8 точек высотой, 8 строк
Звук Встроенный динамик, разрешение 8-бит, частотный диапазон 2-16 КГц
Кнопки 4 кнопки (без подcветки и подписей)
Связь USB 2.0 Full speed, разъём типа USB-B, скорость до 12 Мбит/с. Беспроводной Bluetooth-модуль BlueCore 4 v2.0
Питание 6 элементов питания типоразмера АА или литий-ионный аккумулятор «LEGO» напряжением 7,4 В и емкостью 2200 мАч
Размеры 14 М х 9 М х 5 М

Питание осуществляется от 6 элементов питания типоразмера АА (гальванические элементы или Ni-MH аккумуляторы) или от фирменного аккумулятора компании «LEGO», который приобретается отдельно (рис 2.1). Производителем рекомендуется использовать щелочные гальванические элементы, поскольку они имеют большую емкость и работают дольше, чем солевые. Напряжение каждого гальванического элемента составляет 1,5 В, а Ni-MH аккумуляторы имеют напряжение 1,2 В на элемент, поэтому при питании от аккумулятора «LEGO» или набора из 6 Ni-MH аккумуляторов напряжение подаваемое на двигатели, будет меньше, чем от 6 элементов питания. Аккумулятор «LEGO» имеет встроенный контроллер заряда и два светодиода: зелёный для индикации подключения зарядного устройства и красный для индикации процесса заряда. Полная зарядка аккумулятора занимает около 4-х часов. Зарядное устройство для аккумулятора «LEGO» представляет собой источник постоянного тока напряжением 10 В.

Контроллер NXT оснащен графическим жидкокристаллическим дисплеем с возможностью отображения текста и графики, а также динамиком для воспроизведения различных звуков. Для перемещения по разделам меню служат клавиши в виде треугольников, оранжевая клавиша служит для выбора, темно-серая – для отмены. Кнопки также могут использоваться для управления ходом выполнения программы.

Размеры блока в таблице указаны в модулях. Модуль – условная единица измерения, равная 8 мм (5/16 дюйма). Расстояние между центрами отверстий в балках «LEGO Technic» и «LEGO MINDSTORMS» составляет ровно 1 модуль (1 М).

Подключение к контроллеру NXT осуществляется по интерфейсу USB, либо с помощью беспроводного Bluetooth-модуля, который также может использоваться для связи с другими контроллерами NXT. С целью снижения энергопотребления использован передатчик 2-ого класса с дальностью передачи данных около 10 м.

Структурная схема контроллера NXT показана на рисунке ниже Основной процессор AT91SAM7S256 и сопроцессор ATmega48 взаимодействуют по интерфейсу I2C. Данный интерфейс реализован на аппаратном уровне в каждом из процессоров. При обмене информацией основной процессор является ведущим устройством. Скорость обмена данными составляет 380 Кбит/c. Структурная схема контроллера NXT показана на рисунке ниже.

Основными задачами основного процессора являются работа с дисплеем, Bluetooth-модулем, а также реализация интерфейса USB для связи с компьютером. Управление Bluetooth-модулем осуществляется посредством интерфейса SPI, а передача данных идет по интерфейсу UART. Также основной процессор управляет выводом звуковых сигналов и реализует поддержку промышленных сетей (стандарт IEC 61158 Type 4) 4-ым портом ввода. Сопроцессор отвечает за управление питанием (в частности контроль напряжения питания), генерацию ШИМ сигналов для управления двигателями, обработку нажатий кнопок, а также аналого-цифровое преобразование показаний некоторых датчиков.

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

Сервомоторы подключаются к портам A, B и C интеллектуального блока, и могут работать как каждый отдельно, так и в синхронизированном режиме. Этот режим позволяет обеспечить одинаковую скорость вращения моторов, даже при различной нагрузке на каждый из них. Синхронизированный режим лучше всего работает для двух моторов, подключенных к портам B и C, это связано с некоторыми аппаратными особенностями выходных портов.

Сервомоторы NXT включают в себя электродвигатель, шестерёнчатый редуктор и датчик оборотов вращения (энкодер), объединенные в одном корпусе. Энкодер определяет угол поворота вала двигателя в градусах, один полный оборот составляет 360 градусов. Благодаря энкодерам контроллер точно определяет, на какой угол повернулся вал двигателя.

Малогабаритные двигатели постоянного тока обычно вращаются слишком быстро и при этом имеют не очень большую мощность на валу, поэтому нет особого смысла подключать их напрямую к колёсам или другим механизмам. Для понижения скорости вращения и одновременного увеличения вращающего момента, используют редукторы. Редуктор сервомотора NXT содержит восемь шестерёнок, суммарное передаточное отношение редуктора – 1:48.

Сервомоторы выполнены неразборными. Однако, благодаря фотографиям энтузиаста Даниэля Бенедеттелли (Daniele Benedettelli) можно изучить их внутреннее устройство.

Сервомотор NXT в разобранном виде
Редуктор сервомотора NXT крупным планом

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

Встроенный в сервомотор энкодер представляет собой оптико-механический датчик оборотов вращения и состоит из оптической пары (светодиод и фототранзистор) и зубчатого колеса с секторными отверстиями, соединённого непосредственно с первой шестерней на валу двигателя (рисунок ниже). На правой фотографии хорошо видна оптическая пара, чёрный прямоугольник – это светодиод, а полупрозрачный прямоугольник напротив него – фототранзистор. Разрешающей способности этого датчика достаточно, чтобы определять положение выходного вала сервомотора с точностью в 1 градус. Ранее подобный принцип использовался в шариковых компьютерных мышах. Принцип работы у датчиков в компьютерной мыши и в сервомоторе совершенно одинаков – при вращении колесо с отверстиями пересекает луч света, испускаемый светодиодом, а фототранзистор определяет наличие или отсутствие света.

Вал мотора, шестерня и датчик оборотов вращения (слева) и оптическая пара светодиод-фототранзистор (справа)

При внимательном рассмотрении можно обнаружить, что на ведущем валу электромотора установлена шестерня с 10 зубьями, а зубчатое колесо энкодера имеет 32 зуба и 12 отверстий. Можно посчитать, что за один оборот выходного вала датчик успевает просмотреть 48*10/32*12 = 180 отверстий, что ровно в два раза меньше, чем заявленная величина (1 оборот = 360 градусов). Однако, если учесть, что на каждом отверстии срабатывание датчика происходит дважды (переход от перемычки к отверстию и от отверстия к перемычке), то всё становится на свои места. Таким образом, разрешающая способность датчика вращения в 1 градус подтверждается его механическими характеристиками.

Не стоит забывать, что мощность сервомоторов NXT весьма значительна, поэтому при постройке моделей с повышающими редукторами нужно соблюдать осторожность. Так, при передаточном числе более 10:1 мотор вполне способен сломать неудачно закреплённые и заклинившие балки, штифты, оси, или срезать зубья последней ведомой шестерни. Несмотря на наличие в сервомоторе электронной защиты от перегрузки, такой режим работы может привести к сокращению ресурса работы сервомотора. Также длительная работа с перегрузками приводит к быстрому износу редуктора и появлению заметного люфта на выходном валу, который и на совершенно новом сервомоторе составляет несколько градусов.

Максимальная скорость вращения выходного вала без нагрузки – 160 оборотов в минуту при напряжении питания 9 В (при использовании 6 новых элементов питания) и 130 оборотов в минуту при 7,2 В (фирменный аккумулятор «LEGO» или 6 Ni-MH аккумуляторов). Максимально возможная скорость вращения выходного вала с нагрузкой при включенной регулировке мощности – 120 оборотов в минуту при напряжении питания 9 В, и 90 оборотов в минуту при 7,2 В.

Сила тока, потребляемого моторами, линейно зависит от нагрузки на валу. Минимальный ток составляет 60 мА (без нагрузки). При питании от 9 В максимальный ток достигает 800 мА (при нагрузке 25 H•см), а при питании от 7,2 В – 650 мА (при нагрузке 25 H•см). Указанные значения максимального тока и нагрузки допустимы только кратковременно, поскольку ведут к ухудшению параметров и срока службы сервомотора. Более подробные сведения о характеристиках сервомоторов приведены на сайте Филиппе Харбейна (Philippe Hurbain).

Датчик освещённости позволяет роботу различать яркость объектов, освещённость помещения, а также определять цвета предметов. Датчик содержит в себе красный светодиод и фототранзистор, измеряющий яркость попадающего на него света. Интенсивность отражённого света зависит от цвета поверхности предмета, что делает возможным определение цветов с помощью датчика. Встроенный светодиод позволяет повысить чувствительность датчика. При измерении с выключенной подсветкой соседние градации цветов будут сливаться в один цвет, поскольку окружающий свет не имеет достаточной интенсивности. Кроме того, неравномерность окружающего освещения приводила бы к разным результатам для одного и того же предмета. Поэтому использование дополнительной подсветки – наиболее частый вариант при управлении роботом с помощью датчика освещённости.

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

Фототранзистор в датчике освещённости более чувствителен к инфракрасному излучению, чем к обычному видимому спектру света. Поэтому горячие источники света датчик считает гораздо более яркими.

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

Кнопка датчика касания имеет крестообразное отверстие, что позволяет соединять кнопку непосредственно с другими частями конструкции и обеспечивать более точный момент срабатывания. Для предотвращения короткого замыкания в случае подключения к выходному порту, последовательно с кнопкой включен ограничительный резистор номиналом 2,2 кОм. В остальном этот датчик ничем не примечателен.

Ультразвуковой датчик расстояния (дальномер) – один из самых интересных и полезных датчиков. Наиболее частая задача, которая возникает при постройке и программировании робота – научить его определять расстояния до предметов, например, чтобы не натыкаться на них во время движения, или наоборот, находить предметы, расположенные вокруг. Благодаря ультразвуковому датчику эта задача решается намного проще. Также датчик может использоваться для обнаружения движения.

Датчик работает по принципу сонара, посылая короткий импульс на частоте 40 кГц. Затем он измеряет время, за которое звук дошёл до объекта, отразился от него и вернулся назад. Для этого в датчик встроен собственный микропроцессор, занимающийся обработкой данных. Если перед роботом располагается один большой объект, например стена, то результат измерений будет достаточно точен. Однако если на пути робота присутствует множество различных мелких объектов, то точность измерений будет заметно хуже. В отличие от летучей мыши, которая пользуется такой же технологией, но при этом «видит» все предметы вокруг себя, ультразвуковой датчик может видеть только в одном направлении – перед собой (каждый ультразвуковой датчик характеризуется диаграммой направленности). Поэтому, чтобы сориентироваться в пространстве и измерить расстояние до разных окружающих объектов, робот должен перед каждым сканированием поворачивать датчик в нужную сторону.

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

Также при работе с датчиком следует помнить об особенностях отражения ультразвуковых волн от поверхностей различных предметов. Крупные объекты с твердыми поверхностями отражают ультразвук лучше, чем объекты из мягких материалов (например, ткани). Кроме того, расстояние до объектов с округлой формой (мячи, банки) может определяться некорректно.

Датчик измеряет расстояние в дюймах и сантиметрах. Минимальное расстояние, которое датчик способен корректно измерить – 4-5 см. Расстояние измеряется от тыльной стороны датчика, а не от передней. Максимальное расстояние равно 255 см или 100 дюймов, и ограничено программно. При измерении на пределе дальности точность очень сильно зависит от угла, под которым находится объект, и от его размеров. Точность измерения достаточно высока, погрешность в среднем не превышает 5%.

Датчик звука позволяет роботу реагировать на звуки разной громкости. Датчик позволяет измерять как абсолютную громкость звука (DB-режим), так и уровень звука, приравненный к чувствительности человеческого уха (DBA-режим).

Громкость звука, или уровень звукового давления (Sound Pressure Level, SPL) измеряется в единицах, называемых децибелами (дБ). В отличие от абсолютной величины, такой как люксы, децибелы показывают, насколько громкость звука больше или меньше относительно другого звука. В данном случае, 0 дБ – это самый тихий звук на пределе слышимости среднестатистического человека.

Звуковая чувствительность человеческого уха сильно зависит от частоты звука. Пик чувствительности приходится на значение 3-5 кГц, а значения ниже 20 Гц и выше 20 кГц находятся уже за пределами физических возможностей. Звуки с низкой и высокой частотой кажутся тише, чем среднечастотные той же интенсивности. С учётом этого, неравномерную чувствительность человеческого уха к звукам разных частот модулируют с помощью специального электронного частотного фильтра, получая в результате нормирования измерений, так называемый эквивалентный уровень звука с размерностью дБА.

Все датчики, кроме ультразвукового, имеют практически одинаковые размеры корпуса: 5,5 М в длину, 3 М в ширину и 4 М в высоту. Снизу расположена планка размером 1х3 М для крепления датчика.

Также в комплект входит 7 соединительных кабелей для датчиков и моторов (2 длинных, 4 средних и 1 короткий) и USB-кабель подключения контроллера к компьютеру. В отличие от RCX, который использовал двухпроводную схему подключения датчиков и моторов, контроллер NXT использует 6-проводные кабели. Кабели различаются только длиной, поэтому каждый из соединительных кабелей может использоваться как для подключения датчиков, так и моторов.

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

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

Интерфейс программируемого контроллера NXT

Рассмотрим интерфейс контроллера NXT. На рисунке ниже показано назначение и описание иконок на экране контроллера

На экране контроллера отображаются следующие иконки:

Ниже в таблице приведено описание иконок индикаторов связи

Иконка Описание
Bluetooth-модуль включен, но контроллер не видим для других Bluetooth-устройств.
Bluetooth-модуль включен, и контроллер виден для других Bluetooth-устройств.
Bluetooth-модуль включен, и контроллер подключен к какому-либо Bluetooth-устройству.
Контроллер подключен по USB и работает нормально.
Контроллер подключен по USB, но имеются неполадки.

Все текстовые сообщения на экране контроллера отображаются на английском языке. Перемещение по пунктам меню осуществляется с помощью стрелок. Текущий выбранный пункт выделяется рамкой. Основное меню содержит 6 пунктов (разделов), описание которых приведено в таблице ниже.

Пункт меню Иконка Описание
My Files Подменю «Мои файлы» позволяет просматривать все программы, а также графические и звуковые файлы, загруженные в память контроллера NXT.
Try Me Подменю «Попробуй» позволяет ознакомиться с работой датчиков и моторов.
View Подменю «Обзор» позволяет провести быстрое тестирование датчиков и сервомоторов, а также получить данные с каждого устройства.
NXT Program Встроенная программа для графического программирования контроллера без компьютера.
Bluetooth Подменю «Bluetooth» позволяет задать настройки беспроводного модуля, а также создать канал связи между контроллером NXT и другими устройствами.
Settings Подменю «Установки» позволяет провести настройку контроллера NXT (громкость звука, автоматическое отключение и т.д.).

Встроенная оболочка контроллера NXT включает программу NXT Program, позволяющую составлять простые программы без компьютера. Робота можно запрограммировать на движение вперёд/назад, а работу с датчиками. При использовании NXT Program каждый датчик должен подключаться к заданному порту. При входе в пункт меню NXT Program отображается схема подключения датчиков. По умолчанию в NXT Program для датчиков используются следующие порты: 1 – датчик касания, 2 – датчик звука, 3 – датчик освещённости, 4 – датчик расстояния.

Сервомоторы могут подключаться к любому выходному порту без каких-либо ограничений, левый двигатель подключается к порту B, а правый к порту C. В некоторых версиях встроенной оболочки требуется обязательное подключение двух сервомоторов (то есть нельзя подключить двигатель только к порту B или C). В противном случае подключенный двигатель будет работать прерывисто. Использование порта A в NXT Program невозможно.

Программы в NXT Program составляются из отдельных блоков аналогично блок-схемам (рис 4.1). Каждая программа состоит из 5 блоков (квадратных ячеек), в которых необходимо разместить выбранные команды. NXT Program содержит большое количество базовых команд: управление моторами (движение вперед/назад, повороты вправо/влево), опрос датчиков (ждать нажатия кнопки, ждать появления объекта перед роботом и т.д.), ожидания, звуковых сигналов. Подробное описание команд, а также примеры их использования приведены в книге С.А. Филиппова «Робототехника для детей и родителей». Созданные программы при необходимости можно сохранить в памяти контроллера, а затем вызвать из подпункта NXT Files в пункте меню My Files.

Дополнительные элементы для LEGO MINDSTORMS

Помимо компонентов, входящих в наборы LEGO MINDSTORMS NXT, существует множество различных датчиков и других модулей как от компании «LEGO», так и от сторонних производителей (HiTechnic, MindSensors, TETRIX, Vernier, Dexter Industries). Продукция сторонних производителей сертифицируется компанией «LEGO», что подтверждает полную совместимость с конструктором, а также высокие стандарты качества и безопасности. С помощью дополнительных элементов можно значительно расширить функциональные возможности робота. Ниже рассмотрены лишь некоторые из них.

Датчик температуры LEGO. Датчик предназначен для контактного измерения температуры различных объектов. Температура может быть измерена в двух различных температурных шкалах: в градусах по Цельсию и по Фаренгейту (от -20° С до +120° С / от -4 F до +248 F).

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

Датчик цвета LEGO. Датчик цвета является одним из двух сенсоров, которые заменяют роботу зрение. Фактически датчик цвета выполняет три различных функции. Он может работать как датчик цвета, измеряя цветовую интенсивность окрашенных поверхностей (распознаётся 6 цветов), работать как датчик освещённости, определяя интенсивность света в помещении, а также выполнять функции цветной лампы красного, зеленого или синего цветов.

Датчик цвета был добавлен в набор «LEGO MINDSTORMS NXT 2.0», который вышел в 2009 году. Датчик включает трехцветный RGB-светодиод и фотодиод. Последовательно излучая, красный, зелёный и синий цвета, датчик одновременно анализирует отражённый свет, который попадает в фотодиод. По результатам обработки измерений датчик определяет ближайшее значение цвета.

Датчик может работать в одном из в трёх режимов:

  1. различает шесть цветов (стандартные цвета деталей из конструкторов «LEGO»), или раскладывает принятый цвет на три цвета режима RGB (красный, зелёный, синий);
  2. фиксирует внешнее освещение и выдает результат в условных единицах;
  3. фиксирует отражённый свет, созданный собственным излучателем, и выдает результат в условных единицах.

При использовании только одного из трёх цветов, датчик работает аналогично стандартному датчику освещённости из набора NXT, выдавая результат в условных единицах по шкале от 0 до 100. Таким образом, помимо своей основной задачи – различать цвета, этот датчик полностью дублирует функции датчика освещённости.

Дополнительно датчик можно использовать в виде светодиодной лампы с тремя различными цветами. Возможно включение одного из трех цветов, или всех одновременно. Произвольное сочетание цветов, а также регулировка яркости не предусмотрены.

Максимальная эффективная дальность, на которой датчик цвета безошибочно определяет цвета объектов, составляет не более 1,5 см. Для корректного определения цвета необходимо держать датчик под прямым углом к поверхности. В ходе экспериментов удалось установить, что датчик корректно работает при частоте опроса до 100 Гц. Согласно результатам экспериментов Филиппе Харбейна (Philippe Hurbain) для одного корректного измерения датчику требуется около 2,5 мс, что теоретически позволяет опрашивать датчик цвета с частотой до 400 Гц.

Copyright © 2014-2018 Design by Skyer