Lego mindstorms nxt датчики

Обновлено: 29.04.2024

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

Представленная здесь информация справедлива, в первую очередь, для набора Mindstorms NXT. Для набора EV3 могут быть отличия (назначение сигналов кабелей такое же, а вот возможности драйверов двигателей могут отличаться). Для более детального изучения советую почитать NXT Hardware Developer Kit и EV3 Hardware Developer Kit. Это официальное описание аппаратной части (схемы контроллера, датчиков, моторов и т.д.) конструкторов Mindstorms от компании LEGO.



Внешний вид портов датчиков Внешний вид портов моторов
Плата контроллера, вид с двух сторон
Плата Bluetooth-модуля крупным планом

При внимательном рассмотрении прозрачных разъёмов стандартных соединительных кабелей из комплекта, можно увидеть 6 проводов различных цветов: белый, черный, красный, зелёный, желтый и синий. Разъёмы портов контролера NXT и стандартных кабелей визуально напоминают стандартные телефонные разъёмы типа RJ-12 (на самом деле под обозначением RJ-12 имеются в виду разъёмы типа RJ-25 или 6p6c). Однако при внимательном рассмотрении можно заметить, что замок разъёмов соединительных кабелей из набора «LEGO MINDSTORMS» смещен вправо (если держать разъём замком к себе), а у разъёма типа RJ-12 замок находится ровно посередине. Таким образом, компания «LEGO» принуждает пользователей к использованию оригинальных кабелей во избежание поломок контроллера или других элементов конструктора. В интернете можно найти подробные инструкции по изготовлению разъёмов аналогичных разъёмам оригинальных кабелей из набора, либо сразу купить готовые разъёмы.


Порты датчиков: назначение контактов и описание сигналов

Ниже в таблице указаны номер контакта, цвет и назначение каждого провода при подключении кабеля к входному порту.

Контакт 1 – Белый провод – AN – может использоваться для двух целей: как аналоговый вход или как выход питания 9 В. Контроллер подает напряжение питания на этот контакт в течение 3-х миллисекунд, а затем считывает аналоговое значение в течение 0,1 мс. В режиме аналогового входа данный контакт подключается к аналого-цифровому преобразователю (АЦП). Для исключения повреждения АЦП входной сигнал должен находиться в пределах от 0 до 5 В. АЦП преобразует входной сигнал в цифровое значение от 0 до 1023. Согласно документации частота дискретизации составляет 333 Гц (у EV3 частота уже 1 кГц). На время считывания сигнала контакт «подтягивается» к линии 5 В через резистор номиналом 10 кОм находящийся внутри блока. Наличие данного резистора значительно упрощает схемотехнику большинства датчиков.

При использовании первого контакта в качестве 9-вольтового источника питания для датчиков, необходимо учитывать, что напряжение питания на этом контакте будет равно напряжению источника питания контроллера NXT. Поэтому при использовании никель-металлогидридных (NiMH) аккумуляторов с этого контакта можно получить напряжение около 7,2 В или меньше. Это напряжение используется для питания стандартных и самодельных датчиков, которым недостаточно 5 вольт, в частности, ультразвуковой датчик NXT использует его для увеличения мощности своего передатчика. Все датчики RCX, подключаемые через адаптер (переходник), используют для своей работы именно эту линию.

Поскольку питание на этот контакт подаётся с перерывами, датчику обычно требуется конденсатор, чтобы поддерживать напряжение питания на время чтения данных. Ограничение по току нагрузки на этом контакте составляет примерно 14 мА на каждый порт. Если ток нагрузки превышает это значение, напряжение значительно падает, что может привести к некорректной работе датчика.

Контакты 2 и 3 – Чёрный и красный провода – GND – общая земля. Эти два контакта соединены вместе внутри блока NXT и внутри стандартных сенсоров LEGO. Все сигналы измеряются и формируются относительно этих общих контактов.

Контакт 4 – Зелёный провод – Питание 4.3 В – основная линия питания для стандартных датчиков NXT. Новые цифровые микросхемы, рассчитанные на 5-вольтовую логику, вполне могут быть запитаны от него, но бывают случаи, когда этого напряжения оказывается недостаточно для стабильной работы. В отличие от 9-вольтовой линии питания, этот выход обеспечивает суммарный ток 180 мА для всех входных и выходных портов. Каждый порт может использовать в среднем 25 мА (180 / 7 = 28,71 мА), но вполне допустимо увеличить потребление одного или нескольких портов, если остальные порты потребляют меньше или не задействованы. Стандартные датчики из набора, а также датчики оборотов сервомоторов потребляют в среднем около 20 мА.

Контакты 5 и 6 – Жёлтый и синий провода – DIGAI0 и DIGAI1 – данные линии используются для передачи данных. Контакты используют цифровые сигналы уровня 3,3 В и непосредственно подключены к микропроцессору контроллера NXT. В основном они используются для связи по протоколу I2C (DIGAI0 как SCL и DIGAI1 как SDA), но также могут использоваться как обычные сигнальные линии. При использовании линий как входов контроллер NXT ограничивает ток для защиты линий микропроцессора от повреждений. Защита реализована через последовательно включенные ограничительные резисторы номиналом 4,7 кОм. В режиме выхода уровень напряжения на контактах не должен превышать 3,3 В. При работе с данными контактами необходимо соблюдать осторожность, поскольку ошибка может привести к повреждению линий микропроцессора внутри контроллера NXT.

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

Порты моторов: назначение контактов и описание сигналов

Ниже в таблице указаны номер контакта, цвет и назначение каждого провода при подключении кабеля к выходному порту.

Контакты 1 и 2 – Белый и чёрный провода – MA1 и MA2 – линии питания сервомотора. Максимальное напряжение равно напряжению источника питания контроллера. Для управления питанием двигателей робота необходимо устройство, которое бы преобразовывало управляющие сигналы малой мощности в токи, достаточные для управления моторами. Такие устройства называют драйверами двигателей, они изготавливаются в виде микросхем разной мощности.

Схемотехнически драйвер, управляющий питанием двигателей, представляет собой H-мост – это электронная схема, которая позволяющая приложить напряжение к нагрузке в разных направлениях. Термин Н-мост появился благодаря графическому изображению этой схемы, напоминающей букву Н.

Н-мост собирается из 4 транзисторов (реле, переключателей). В зависимости от управляющих сигналов открывается та или иная пара транзисторов, при этом два других транзистора закрыты. На рисунке ниже показана электрическая схема H-моста, а также указано направление вращения двигателя для двух различных состояний управляющих сигналов. Схема имеет два управляющих входа, обозначенных буквами A и B. Исходя из того, что H-мост управляется цифровыми сигналами (ноль или единица), возможны 4 состояния входных сигналов.


При значениях A = 1 и B = 0 (левая схема на рисунке выше) транзисторы VT1 и VT3 открываются, по двигателю начинает протекать ток, что приводит к вращению двигателя вперёд (forward). Если поменять значения входных сигналов на противоположные и подать на схему значения A = 0 и B = 1 (правая схема на рисунке выше)), то это приведет к закрытию транзисторов VT1, VT3 и открытию транзисторов VT2, VT4. Направления протекания электрического тока поменяется, следовательно, изменится и направление вращения двигателя – он станет вращаться в обратном (reverse) направлении.

Также Н-мост позволяет электрически тормозить двигатель, накоротко замыкая его выводы (brake). Для этого необходимо подать сигнал высокого уровня на оба входа (A = 1 и B = 1). А если на оба входа подать сигнал низкого уровня (A = 0 и B = 0), то двигатель можно будет свободно вращать (coasting), как и при отключенном питании.

При использовании H-моста с двигателями постоянного тока в схему включают защитные (ограничительные) диоды (VD-VD4 на рисунке выше). Необходимость в диодах вызвана наличием токов при остановке двигателя, вследствие уменьшения электромагнитного поля внутри его обмоток.

В контроллере NXT используются две различных микросхемы H-моста. Для управления портом A задействована микросхема одноканального H-моста LB1930M, а порты B и C управляются микросхемой двухканального H-моста LB1836M. Допустимый выходной ток составляет примерно 800 мА для порта A и 500 мА для портов B и C. Пиковый ток может достигать тока в 1 А. Микросхемы имеет тепловую защиту, которая ограничивает ток при перегрузках или перегреве. Поскольку порт A допускает больший выходной ток, по сравнению с портами B и C, то зачастую он используется для управления манипулятором робота, а порты B и C – для управления движением робота.

В таблице ниже приведены уровни напряжений на выходе драйверов двигателей контроллера NXT для различных состояний входных сигналов, для входных сигналов за единицу принят сигнал высокого уровня, за ноль – низкого.

Проанализировав представленную таблицу можно сделать следующий вывод об особенности порта A: если к двигателю приложено напряжение и при этом двигатель в режиме торможения, то на линиях 1 и 2 будет сохраняться высокий уровень напряжения (9 В или 7,2 В в зависимости от типа источника питания).

Зависимость между скоростью вращения мотора и приложенным напряжением линейна. Поэтому для регулирования скорости вращения двигателя используется способ широтно-импульсной модуляции (PWM – pulse width modulation). Идея данного способа заключается в получении изменяющегося аналогового значения напряжения посредством особого алгоритма управления транзисторными ключами. ШИМ-сигнал моделирует напряжение между максимальным и минимальным значениями напряжения. Частота импульсов при этом остается постоянной, изменяется только коэффициент заполнения D – величина, отражающая процентное соотношение длительности времени включения максимального напряжения τ к длительности периода сигнала T. На рисунке ниже показаны графики ШИМ-сигнала для различных коэффициентов заполнения.


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

Длительность периода ШИМ для стандартной прошивки составляет 128 нс, что соответствует частоте 7,8 кГц, которая находится в слышимом диапазоне. Поэтому иногда можно услышать писк, исходящий от мотора. Это происходит, когда к двигателю приложено напряжение, а его вал не может провернуться. Например, если манипулятор робота достиг крайнего положения, а питание все еще подается.

Контакт 3 – Красный провод – GND – общий «земляной» контакт. Контакты 2 и 3 соединены между собой в датчиках, но не в моторах. Если датчик будет случайно подключен к порту мотора, питание мотора будет закорочено на землю. К счастью, в блоке есть защита на этот случай, но лучше лишний раз не ошибаться.

Контакт 4 – Зелёный провод – Питание 4.3 В – данный контакт подключен к линии питания 4,3 В, общей для всех портов блока. Питание с этого контакта используется тахометром сервомотора.

Контакты 5 и 6 – Жёлтый и синий провода – DIGAI0 и DIGAI1 – данные линии используются для получения сигналов от встроенного в сервомотор NXT оптического тахометра. Датчик оборотов генерирует прямоугольные импульсы, которые позволяют контроллеру NXT определить скорость и направление вращения мотора. Два импульса сдвинуты относительно друг друга на четверть периода сигнала. На рисунках ниже показаны графики сигналов, генерируемых датчиком оборотов при вращении мотора вперёд и назад соответственно. Частота импульсов зависит от скорости вращения мотора. Один полупериод сигнала соответствует одному градусу поворота мотора.

Импульсы при вращении мотора вперёд Импульсы при вращении мотора назад


Схема подключения датчиков






Подключение своих устройств по I2C

К контроллеру NXT можно подключить различные устройства, работающие по протоколу I2C. Данная опция позволяет расширить функциональные возможности конструктора. Одним из простых примеров, описанных в книге Extreme NXT, является подключение I2C расширителя портов PCF8574 (документация). Данная микросхема имеет 8 линий и позволяет как вводить, так и выводить данные. То есть можно подключить к одному из портов плату с PCF8574, а к ней светодиоды или кнопки, общим количеством до 8 штук. Ниже показан пример подключения платы со светодиодами.


Для экспериментов были спроектированы два типа плат : первая только со светодиодами, вторая включала и кнопки. Ниже представлены схемы и внешний вид плат. Платы проектировались в САПР Diptrace.

Ниже показана уже готовая для экспериментов плата. Для подключения платы необходимо разрезать один кабель, напаять на каждый провод ответную часть (BLS) штыревого контакта (PLS) и натянуть термоусадку. Получается довольно удобно. Термоусадку лучше брать по цвету провода. Разрезать лучше самые длинные кабели. По опыту использования они реже пригождаются. Из одного кабеля можно изготовить два новых кабеля для экспериментов.



Внешний вид платы и переделанного кабеля NXT Плата с PCF8574 крупным планом

Программная часть писалась в RobotC. Описание функций для работы с I2C из RobotC приведено в вики на сайте разработчика. Также советую почитать материалы от Storming Robots (раз и два). Ниже представлены два примера программ.

Первая программа реализует поочередное мигание светодиодов. Сначала загораются светодиоды одного цвета (нечётные по порядку), а затем другого цвета (чётные по порядку).

При старте программы указывается тип датчика, подключённого к порту (значение sensorI2CCustom указывает, что используется I2C), размер массива передаваемых данных и адрес устройства. В нашем случае адрес равен 0x40. Общий вид адреса в двоичном виде 0b0100-A2-A1-A0-0, линии А0, А1 и А2 (пины 1, 2 и 3 микросхемы) определяют значение соответствующих битов адреса. На приведённой выше схеме все три линии подтянуты к земле (нулю), поэтому адрес равен 0b01000000 = 0x40. Одновременно можно подключить до 8 устройств.

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

Вторая программа реализует постоянный опрос кнопок на плате. На экран выводится значение, прочитанное из PCF8574.

Определить номер нажатой кнопки можно с помощью битовых операций. При использовании описанной платы выводится следующее:

  • 243 – нет нажатых кнопок
  • 247 – нажата только первая кнопка (SB1, подключена к 6-ому выводу PCF8574)
  • 251 – нажата только вторая кнопка (SB2, подключена к 7-ому выводу PCF8574)
  • 255 – нажаты обе кнопки

Таким образом, на базе миксросхемы PCF8574 можно собрать простой расширитель портов, способный работать как на вывод, так и на ввод данных. Например, можно к контроллеру подключить Arduino и передавать данные размером более 1 байта (показания датчиков, различные команды и так далее).

Кроме описанной микросхемы PCF8574, можно использовать и другие микросхемы с интерфейсом I2C. Например, PCF8591 – универсальный аналогово-цифровой и цифро-аналоговый преобразователь (документация). Микросхема PCF8591 обладает следующими возможностями:

Как оказалось, шустрые китайцы уже давно выпускают модуль для Arduino на данной микросхеме. Модуль скорее предназначен для обучения или экспериментов, а не для конкретных устройств. К аналоговым входам PCF8591 подключены фоторезистор, терморезистор и переменный резистор, а на выход ЦАП подключен светодиод. Внешний вид и схема модуля показаны ниже.

ПервоРобот LEGO Mindstorms NXT - Обзор конструктора

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

Краткую информацию о линейке конструкторов LEGO Mindstorms, а также сравнение NXT и EV3 наборов можно найти в статье, посвященной EV3.

Сразу перейдем к содержимому набора LEGO Mindstorms NXT 2.0. Вот что входит в образовательную версию набора:

  • 1 программируемый блок
  • 3 мотора:
  • 5 датчиков:
    • 2 датчика касания
    • 1 датчик освещенности
    • 1 ультразвуковой датчик расстояния
    • 1 микрофон

    9797_713x380_MainProduct.jpg

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

    Рассмотрим основные возможности и характеристики моторов и датчиков:

    lego-mindstorms-nxt-touch-sensor.jpg

    Датчик касания

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

    light.jpg

    Датчик освещенности

    Он позволяет роботу различать яркость объектов и определять освещенность помещения.

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

    lego-mindstorms-nxt-sound-sensor.jpg

    Датчик звука

    Датчик звука (микрофон) позволяет определить уровень шума.

    lego-mindstorms-nxt-ultrasonic-sensor.jpg

    Ультразвуковой датчик расстояния

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

    • Может измерять расстояние в диапазоне 3 - 250 см.
    • Дискретность результата измерений: +/- 1 см.

    M076274P01WL.jpg

    Все три мотора в наборе одинаковые. Стоит отметить, что в каждом моторе присутствует датчик оборотов – энкодер. Он позволяет контролировать движение мотора с высокой точностью. Характеристики мотора:

    • Максимальные обороты - 160- 170 об/мин.
    • Крутящий момент - 20 Н/см
    • Встроенный датчик угла поворота (энкодер) мотора с точностью 1 градус

    NXT датчики, моторы и кабели совместимы с EV3, поэтому оба набора – NXT и EV3 можно комбинировать.

    Программируемый блок NXT

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

    9841.jpg

    Ниже представлены характеристики программируемого блока NXT:

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

    NXT-G.jpg

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

    В образовательный набор включена инструкция для сборки базового робота.

    Для NXT набора был выпущен ресурсный набор, позволяющий собирать другие модели, используя новые детали.

    mindstorms-education-resource-set-rover-model-9695.PNG

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


    Всё на русском языке о роботах LEGO MINDSTORMS EV3 и NXT: различные инструкции к конструкторам разных версий, информация о версиях, скриншоты готовых моделей, фото и видео занятий по робототехнике. Также мы выкладываем пошаговые инструкции по созданию и программированию разных видов роботов лего из конструктора версии 8547. У нас можно скачать поурочное планирование факультатива робототехники для учеников 6-8 классов. Планируем добавить всю необходимую для роботехника-любителя информацию. Всё будет доступно всегда и бесплатно!


    Робот Томас и Три Закона Робототехники

    Роборыбка – искусственный исследователь морей

    Роборыбка – искусственный исследователь морей

    Полимерный состав позволяет придать устройству подвижность и защитить электронные схемы. Оригинальная разработка уходит корнями в 1994 год, когда в прототипе использовало.

    Рубрика: Инструкции к роботу LEGO MINDSTORMS NXT 2.0

    робототехника для начинающих

    Внимание! Юные робототехники! Для Вас мы подготовили страницу с простыми и понятными инструкциями к нашему любому конструктору NXT!

    Скачивайте и собирайте модели роботов из конструктора версии 8547 (robot lego mindstorms nxt 2.0).

    Внешний вид коробки и руководство пользователя к конструкторам LEGO Mindstorm NXT версий 8527, 8547 и 9797 (выпускались до 2013 года):

    Пошаговые инструкции для сборки разных моделей лего роботов (для конструктора версии mindstorm 8547)

    Инструкция по сборке
    робота АЛЬФАРЕКСа (артикул набора 8547)


    Время сборки 4 часа (2 человека в группе).
    Рекомендуемый возраст для занятия робототехникой детям - 12-14 лет
    Робот крокодил


    Робот - крокодил (робогатор)
    Робот пятиминутка
    робот пятиминутка
    Бот-внедорожник
    робот внедорожник из лего
    Трёхколёсный бот
    3-[ колёссный робот лего
    Конструируем робота "Пятиминутку" за 5 минут ;-) Собираем и программируем Бот-внедорожник. Это уже более серьёзная модель, использующая датчик касания. Создаём и тестируем Трёхколёсного бота. У этого робота ещё нет датчиков, но уже можно писать средние по сложности программы для управления двумя серводвигателями.
    Линейный ползун
    робот - линейный ползун
    Исследователь
    робот - исследователь
    Нападающий коготь
    робот - нападающий коготь
    Добавляем к "роботу пятиминутке" датчик цвета и получаем из него настоящего "Линейного ползуна" и получаем робот с ИИ начального уровня! Всем хорош "Бот-внедорожник": манёвренный, бронированный, умный. Ему бы ещё ультра-зрение бы добавить. Добавляем! Встречайте: Исследователь - вот вам бот с искусственным интеллектом среднего уровня! Хищный атакующий робот, содержащий коготь, которым он может ударить в цель. Собираем, тестируем!
    МАНТИ - застенчивый богомол
    робот - богомол
    Шарикопульт
    робот - шарикопульт
    Робот-база с тремя двигателями
    бот с тремя двигателями
    Удивительное существо: робот-богомол. Постройте, загрузите базовую программу, порадутесь и погрустите вместе с МАНТИ! Интересный миниробот под названием "Шарикопульт" очень простой, но может быть использован как дополнение к любому другому роботу. Базовый робот с тремя двигателями может пригодиться для получения навыков строительства собственных блоков. Так как в базовом роботе нет ни датчиков, ни спец.механизмов. Вы все это можете сделать сами!
    Двух кнопочный пульт ДУ
    пульт дистанционного управления из лего
    Продвинутый Молот-автобот
    молот - автобот
    Простой светомер из лего
    светометр из лего
    В данном уроке можно научиться собирать двух кнопочный пульт дистанционного управления любым роботом, собранным из конструктора лего миндстормз! Новенький проект "Молот-автобот"- это сложный в сборке и программировании робот. Но итоговая модель автомобиля-робота с молотом позволяет использовать 3 двигателя и 2 датчика! Эксперименты с данным светомером позволят научиться использовать датчик света в своих роботах.
    Робот СЕГВЭЙ с наездником
    робот - сегвэй
    Измеряем растояние длиномером
    длиномер
    автобот: гоночная машина из лего
    гоночная машина из лего
    Даже робота СЕГВЭЙ (SEGWAY) можно построить из набора 8547. Инструкция доступна при клике на картинку. Простейшее дополнение к роботу позволяет измерять пройденное им растояние. В статье описано как создать очень удобного робота-длиномера из робота пятиминутки. Замечательная разработка! Автомобиль, да ещё какой! Есть возможность и удалённого управления, и "мозги", позволяющие принимать решения, считывая цветные линии на полу! Можно скачать - это АВТОБОТ!
    Пятикнопочный пульт ДУ
    пульт дистанционного управления
    Супер пульт ДУ
    пульт ДУ
    Миниавто с 3-х пультом ДУ
    миниавто
    Пульт ДУ можно использовать практически в любом своём проекте. Единственное требование - наличие двух конструкторов lego mindstorms nxt 2.0 Супер пульт ДУ то уже мега-навороченный вариант для управления гоночным автомобилием или любым другим роботом MINDSTORMS NXT! Забавная игрушка - миниавтомобильчик с трёх кнопочным пультом дистанционного управления

    Комплект из 9-и инструкций по лего роботам (robot lego mindstorms nxt 8547) под общим названием:


    Мультибот . Кликните на картинку или просмотрите конструкции, приведённые ниже:


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


    Гусеничное транспортное средство
    Собирается после того как вы собрали транспортное средство. Робот подходит для соревнований на силовое перетягивание каната.


    Гольфкар с лункой
    Собирается на базе гусеничного транспортного средства путём небольшой модернизации.


    • Лама - забавное животное (бонусная модель для конструктора 8547)
    • Трансформер-морф - сложная модель робота!
    • "Кучерявый танк" - забавный гусеничный танкообразный робот
    • Стреляющая рыба - робот, подобный рыбе, которая выстреливает струйкой воды, чтобы оглушить противника
    • Супер сортировщик - мегапуперсупер навороченный сортировщик шариков

      Растение, которое нападает на человека (в комплекте инструкция и программа)

      Ищу партнеров » Ищу / Куплю / Продам

    Испытали роботизированный 130-тонный самосвал » Автоматизированные робототехнические устройства

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


    Осторожно! Публикация может вызвать непреодолимое желание завести сына.

    Урок истории

    Компания LEGO (название произошло от датской фразы «leg godt», «Играй с удовольствием») не нуждается в представлении – она была основана в далёком 1932 году, хотя первые знакомые всем пластиковые кубики появились значительно позже, в 1947. Примечательно, что кубики LEGO, выпускаемые в те годы, полностью совместимы с теми, что выпускаются сейчас.

    История создания компании, выпущенная компанией Pixar к 80-летнему юбилею LEGO:

    Сейчас компания производит около 20 миллиардов деталек в год, то есть более 630 штук в секунду. В текущем модельном ряду более 600 различных конструкторов и так уж получилось, что серия Mindstorms является своего рода вершиной технической мысли, самым-самым навороченным конструктором. Если вкратце, то она позволяет делать вполне себе полноценных роботов.

    Как гласит википедия, серия LEGO Mindstorms была впервые представлена в 1998 году. Через 8 лет (в 2006) на свет появился набор LEGO Mindstorms NXT 1.0, а уже в 2009 — набор LEGO Mindstorms NXT 2.0. Сегодня речь пойдёт о LEGO Mindstorms EV3 – последнем (третьем) поколении терминатора конструктора, который был представлен почти год назад, 4 января 2013 года (в продаже появился только спустя полгода).

    Отличия EV3 от NXT 2.0

    В принципе, главная идея осталась прежней – серия предназначена для сборки программируемых роботов. Поэтому первым встаёт вопрос, а что же поменялось с момента выхода предыдущего конструктора и стоит ли покупать новый? Основное отличие заключается в обновленных датчиках/моторах и, самое главное, в интеллектуальном блоке EV3 (EV означает EVolution):

    EV3 NXT
    Дисплей Монохромный LCD, 178x128 Монохромный LCD, 100x64
    Процессор 300 МГц
    Texas Instruments
    Sitara AM1808 (ARM9)
    48 МГц Atmel
    AT91SAM7S256
    (ARM7TDMI)
    Память 64 Мб RAM
    16 Мб Flash
    Слот microSDHC (до 32 Гб)
    64 Кб RAM
    256 Кб Flash
    USB-хост Есть Нет
    Wi-Fi Опционально, через USB-донгл Нет
    Bluetooth Есть Есть
    Поддержка Apple-устройств Есть Нет
    Как видите, разница довольно существенна – было бы странным, если бы за 4 года поменяли только разрешение экрана и набор наклеек.

    Ещё одно отличие заключается в том, что серия NXT продавалась в нескольких версиях (в разные годы) и представляла собой разные наборы, базовые и ресурсные. У нового EV3 с этим попроще – пока он продаётся в основном варианте – 31313 (601 деталь), из которого можно наделать кучу всего. Но при желании можно докупить базовый набор 45544 (541 деталь) с дополнительными сенсорами и детальками (использовать детали от обычных конструкторов также никто не мешает). Кстати, обратите внимание на пятизначные артикулы – на такую нумерацию компания перешла в 2013 году.

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

    Внутри коробки

    Ещё когда я сам был маленький и ездил с родителями в центральный Детский Мир (когда он ещё был), на Лубянку – уже тогда я не мог оторвать глаз от коробок с LEGO. Тогда не было ни Гиктаймс, ни даже Хабра, но с тех пор коробки остались всё такими же яркими и сочными, даже во взрослом возрасте активируют процесс слюновыделения ) В этом плане другим производителям есть чему поучиться.


    Часть коробки, на самом деле, представляет собой (если её разрезать) трассу с различными цветовыми зонами, которую можно использовать для роботов с сенсорами цвета.

    Все детальки аккуратно разложены по пакетикам, в комплекте – инструкция и набор наклеек. Давайте вкратце пройдёмся по тому, что положили в комплект.



    Сам EV3, он же интеллектуальный блок, он же сердце системы, он же «кирпичик» или «кубик». Служит центром управления и энергетической станцией для вашего робота и имеет следующие функциональные элементы:


    – Многофункциональный монохромный дисплей с разрешением 178х128
    – Шестикнопочный интерфейс управления с функцией изменения подсветки (3 цвета) для индикации режима работы
    – 4 порта ввода (1, 2, 3, 4) для подключения датчиков
    – 4 порта вывода (A, B, C, D) для выполнения команд
    – 1 разъём miniUSB для подключения EV3 к компьютеру
    – 1 порт USB–хост (для соединения нескольких EV3 в одну цепь, например)
    – 1 слот для карт памяти формата microSD (до 32Гб) – для увеличения объёма доступной памяти EV3
    – Встроенный динамик




    Кубик EV3 также поддерживает Bluetooth, WiFi (через USB-адаптер NETGEAR WNA1100 Wireless-N 150), для связи с компьютерами имеет программный интерфейс, позволяющий создавать программы и настраивать регистрации данных непосредственно на микрокомпьютере EV3.

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


    – Встроенный датчик вращения с точностью измерений до 1 град
    – Максимальные обороты до 160-170 об/мин
    – Максимальный крутящий момент в 40 Нсм
    – Автоматическая идентификация программным обеспечением EV3

    » Средний EV3-сервомотор. Идеален для задач, когда скорость и быстрота отклика, а также размер робота важнее его грузоподъёмности.


    – Встроенный датчик вращения с точностью измерений до 1 градуса
    – Максимальные обороты до 240-250 об/мин
    – Максимальный крутящий момент в 12 Нсм
    – Автоматическая идентификация программным обеспечением EV3

    » Датчик цвета (EV3). Способен определить 8 различных цветов, хотя также может использоваться как датчик освещённости.


    – Измеряет отраженный красный свет и внешнее рассеянное освещение, от полной темноты до яркого солнечного света
    – Фиксирует и определяет 8 цветов
    – Частота опроса до 1 кГц
    – Автоматическая идентификация программным обеспечением EV3

    » Датчик касания (EV3). Позволяет роботу реагировать на касания, распознает три ситуации: прикосновение, щелчок и освобождение. Также способен определить количество нажатий, как одиночных, так и множественных.

    » Цифровой ИК-датчик (EV3). Для определения приближения робота. Также способен улавливать ИК-сигналы от ИК-маяка, позволяя создавать дистанционно управляемых роботов, навигационные системы для преодоления препятствий.


    – Измерения приближения/удаления в радиусе 50-70 см
    – Радиус улавливания ИК-сигналов до 2 метров
    – До 4 индивидуальных каналов приёма сигнала
    – Получение удаленных ИК-команд управления
    – Автоматическая идентификация программным обеспечением EV3

    » Удалённый инфракрасный маяк. Разработан для использования с ИК-датчиком EV3. Маяк излучает ИК-сигнал, улавливаемый датчиком – может использоваться в качестве пульта дистанционного управления микрокомпьютера EV3, передавая сигналы на ИК-датчик.

    – До 4 индивидуальных каналов передачи сигнала (переключатель прямо на корпусе)
    – Имеет кнопку и тумблер для включения/выключения
    – При работе ИК-маяка горит зелёный светодиод
    – Автоматическое отключение при простое более 1 часа
    – Радиус действия до 2 метров

    В отдельном пакетике смотаны провода для подключения датчиков и моторов к кубику, а также USB-шнур для подключения кубика к компьютеру.


    Стоит отметить два важных момента. Во-первых, существуют другие датчики Lego, такие как:

    » Гироскопический датчик (EV3). Цифровой гироскопический датчик EV3 позволяет измерять движение вращения робота, а также улавливать изменения в его движении и положении. Режим измерения углов с точностью до ± 3 градуса; встроенный гироскоп улавливает вращения с моментом до 440 град/с; частота опроса до 1 кГц.

    » Ультразвуковой датчик (EV3). Генерирует звуковые волны и фиксируюет их отражения от объектов, тем самым измеряя расстояние до объектов. Также может использоваться в режиме сонара, испуская одиночные волны. Может улавливать звуковые волны, которые будут являться триггерами для запуска программ. Измеряет расстояния в пределах от 1 до 250 см, а точность измерений составляет ± 1 см.

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


    В общем, как вы уже поняли, LEGO – это для реальных пацанов!

    Первая модель

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


    Сначала я удивился, ведь даже в самых простых наборах (серии типа LEGO Creator) всегда идёт несколько инструкций, а тут вдруг бумаги пожалели или места в коробке не нашли. Оказалось… что только на официальном сайте из набора деталей предлагается собрать 17 разных роботов! Поэтому 17 инструкций в коробке были бы действительно лишними (и для логистики, и для лесов природы). Вот названия роботов: EV3RSTORM, GRIPP3R, R3PTAR, SPIK3R, and TRACK3R. ROBODOZ3R, BANNER PRINT3R, EV3MEG, BOBB3, MR-B3AM, RAC3 TRUCK, KRAZ3, EV3D4, EL3CTRIC GUITAR, DINOR3X, WACK3M, и EV3GAME – инструкции для них придётся качать из инета, равно как и софт для подключения EV3 к компьютеру.


    Инструкция наиподробнейшая, накосячить сложно. Сын сказал , что детали в пакетиках расфасованы не очень удачно – на первой же странице может потребоваться вскрыть 3 разных пакета, но это тоже мелочи.


    Кубик EV3 необходимо запитать, для чего можно использовать аккумулятор (нет в комплекте) или 6 пальчиковых батареек. Забегая вперёд – ещё 2 батарейки (но уже мизинчиковых) понадобятся для питания ИК-маяка (он же пульт ДУ).


    Первую модель ребёнок (7 лет) собрал примерно минут за 30.


    Процесс оказался не таким увлекательным, как, например, сборка моделей LEGO Technics – в инструкции предлагается собрать далеко не самого интересного робота: в нём лишь крупные детали, среди которых были практически все датчики и двигатели – видимо, чтобы продемонстрировать работу каждого из них.



    Но вот результат превзошёл все детские ожидания – впервые он собрал модель, которая могла двигаться сама: вперёд-назад, поворот, разворот на месте, крутила щупальцами…



    Запуск осуществляется с кубика EV3, для чего следует нажать пару кнопок на лицевой панели. Некоторые действия можно запрограммировать прямо на кубике: выбрать количество итераций, настроить подачу звукового сигнала и так далее – в одной статье всего не рассказать, курите мануалы.



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

    Ребёнку проще всего будет начать с предлагаемого производителем софта, который есть как под Windows, так и под OS X. Во втором случае дистрибутив весит 666 Мб, а установленное приложение займёт гигабайт. Оно называется LEGO Mindstorms EV3 Home Edition и разработано совместно с небезызвестной компанией LabView. На сайте LEGO довольно много обучающих программированию материалов.

    Сразу после запуска перед нами возникает интерактивный «гараж» из роботов, которых можно собрать из набора:


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




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

    Нельзя ещё раз не отметить, что кубиком EV3 можно управлять со смартфона на операционных системах Android или iOS, для чего есть отдельные приложения.

    Если всего этого оказалось мало, можете повысить градус хардкора. Для кубика EV3 существуют различные прошивки, которые позволяют расширить его возможности, скорость работы и т.д. Вот, например, альтернативная прошивка leJOS EV3 – прошивка с jvm, позволяющая программировать EV3 на языке Java. Хотите на другом языке? Окей, гугл – в вашем распоряжении почти 60 вариантов на выбор: ASM/C/C++/Perl/Python/Ruby/VB/Haskell/Lisp/Matlab/LabVIEW и многое-многое другое.

    Более подробно об этом я рассказывать не буду по нескольким причинам: во-первых, программист из меня полный false (все надежды на сына), во-вторых, пока мы успели собрать только одну модель (и на выходных возьмёмся за вторую), а в-третьих – вы уже и так оформили заказ на этот конструктор и скоро сами всё узнаете ;) Ну а если серьёзно, то статья и так уже огромная – вот лучше две ссылочки изучите: раз и два.

    Ну и ещё большой плюс – это LEGO-сообщества, которых полно по всему миру. Можете быть уверены, что на любом из этапов экспериментов с роботами вы всегда сможете найти единомышленников и тех, кто сможет помочь с решением проблемы. Помимо дружелюбных сообществ, на просторах сети выложено огромное множество различных инструкций, моделей, исходников, видеороликов и обучающих материалов. Всё это означает одно: с Mindstorms вы не соскучитесь.

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

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

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


    Рисунок 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

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

    1. добавим блоки Data (из окна Basic Activities) и блок сервиса Simple Dialog (из окна Services),
    2. в блок Data введем “Hello, World!” (без кавычек) и выберем тип данных String,
    3. соединим блок Data с блоком Simple Dialog, появиться диалоговое окно,
    4. далее, все выполняем как на рисунках


    Рисунок 4 — Окно Connections


    Рисунок 5 — Окно Data Connections


    Рисунок 6 — Законченный вид диаграммы


    2. Платформа NI LabVIEW.

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


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

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

    1. в окне Block Diagram вызовем контекстное меню, нажатием правой кнопкой мыши,
    2. в появившемся окне перейдем по вкладкам, как на рисунке и выберем String Constant,

    Читайте также: