Если вам также как и нам не хватает возможностей стандартных датчиков EV3, не достаточно 4-х портов для датчиков в ваших роботах или вы хотите подключить к своему роботу какую-нибудь экзотическую периферию - эта статья для вас. Поверьте, самодельный датчик для EV3 - это проще чем кажется. "Крутилка громкости" из старого радиоприемника или пара гвоздей, воткнутых в землю в цветочном горшке в качестве датчика влажности почвы - отлично подойдут для эксперимента.

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


Странно, но красный провод - это земля (GND), зеленый - плюс питания 4,3В. Синий провод - одновременно SDA для шины I2C и TX для протокола UART. Кроме этого синий провод - вход аналогово-цифрового преобразователя для EV3. Желтый провод - одновременно SCL для шины I2C и RX для протокола UART. Белый провод - вход аналогово-цифрового преобразователя для датчиков NXT. Черный - цифровой вход, для датчиков, совместимых с NXT - он дублирует GND. Непросто, не так ли? Давайте по порядку.

Аналоговый вход EV3

В каждом порту датчика есть канал аналогово-цифрового преобразователя. Он используется для таких датчиков, как Touch Sensor (кнопка), датчиков NXT Light Sensor и Color Sensor в режиме измерения отраженного света и внешней освещенности, NXT датчика звука и NXT-термометра.

Сопротивление в 910 Ом, подключенное согласно схеме сообщает контроллеру, что данный порт необходимо переключить в режим аналогового входа. В таком режиме к EV3 можно подключить любой аналоговый датчик, например от Arduino. Скорость обмена с таким датчикаом при этом может достигать нескольких тысяч опросов в секунду, это самый быстродействующий тип датчиков.

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

Термометр

Датчик влажности почвы

Также можно подключить: микрофон, кнопку, ИК дальномер и многие другие распространенные сенсоры. Если для датчика не достаточно питания в 4,3В, можно запитать его от 5В от разъема USB-порта, расположенного на боковой стороне контроллера EV3.

Упомянутая выше "крутилка громкости" (она же переменный резистор или потенциометр) является отличным примером аналогового датчика - ее можно подключить вот так:

Для чтения значений с такого датчика в стандартной среде программирования LEGO необходимо использовать синий блок RAW

Протокол I2C

Это цифровой протокол, по нему работает например ультразвуковой датчик NXT, многие датчики Hitechnic, такие как IR Seeker или Color Sensor V2. Для иных платформ, например для Arduino, есть масса i2c-датчиков их вы тоже сможете подключить. Схема следующая:

Сопротивление 82 Ом рекомендованы LEGO Group, однако в разных источниках встречаются упоминания о 43 Ом и менее. На самом деле мы попробовли вообще отказаться от этих сопротивлений и все работает, по крайней мере "на столе". В реальном роботе, работающем в условиях различного рода помех, линии SCL и SDA стоит все же притянуть к питанию через сопротивления, как это указано на схеме выше. Скорость работы i2c в EV3 довольно невелика, примерно 10000 кбит/с, именно поэтому всеми любимый Hitechnic Color Sensor V2 такой тормозной:)

К сожалению для стандартного EV3-G от LEGO не существует полноценного блока для двухсторонней связи с i2c датчиком, но используя сторонние среды программирования, такие как RobotC, LeJOS или EV3 Basic можно взаимодействовать практически с любыми i2c датчиками.

Способность EV3 работать по i2c протоколу открывает интересную возможность для подключения нескольких датчиков к одному порту. I2C протокол позволяет поключить к одной шине до 127 подчиненных устройств. Представляете? По 127 датчиков к каждому из портов EV3:) Более того, часто кучу i2c датчиков совмещают в одном устройстве, например на фото ниже датчик 10 в 1 (содержит компас, гироскоп, акселерометр, барометр и т.д.)

UART

Почти все стандартыне EV3-датчики, за исключением Touch Sensor, работают по протоколу UART и именно поэтому они не совместимы с контроллером NXT, который хоть и имеет такие же разъемы, но на портах датчиков у него UART не реализован. Взгляните на схему, она немного проще, чем в предыдущих случаях:

UART-датчики автоматически согласовывают с EV3 скорость своей работы. Первоначально соединившись на скорости 2400 кбит/с они договариваются о режимах работы и скорости обмена, переходя затем на повышенную скорость. Типичные скорости обмена для разных датчиков 38400 и 115200 кбит/с.
LEGO реализовала в своих UART-датчиках довольно замысловатый протокол, поэтому сторонних датчиков, предназначенных изначально не для этой платформы, но совместимых с ней, не существует. Тем не менее этот протокол очень удобен для подключения "самодельных"
датчиков, на базе микроконтроллеров.
Для Arduino существует замечательная библиотека EV3UARTEmulation , написанная известным LeJOS-разработчиком Lawrie Griffiths, которая позволяет этой плате притвориться UART-LEGO-совместимым датчиком. В его блоге LeJOS News есть масса примеров подключения датчиков газа, IMU-сенсора и цифрового компаса с использованием данной библиотеки.

Ниже на видео - пример использования самодельного датчика. У нас нет достаточного числа оригинальных датчиков расстояния LEGO, поэтому один из датчиков на роботе мы используем самодельный:


Задача робота - стартовать с зеленой клетки, найти выход из лабиринта (красная клетка) и вернуться на место старта кратчайшим путем, не заезжая в тупики.

Подключение USB

LEGO Mindstorms EV3 может подключаться к ПК или другому EV3 посредством USB-соединения. Скорость соединения и стабильность в данном случае лучше, чем при любом другом способе, включая Bluetooth.

LEGO Mindstorms EV3 имеет два порта USB.

Связь между LEGO EV3 и другими блоками LEGO EV3 в режиме подключения шлейфом.

Режим подключения шлейфом служит для соединения двух и более блоков LEGO EV3.

Данный режим:

  • предназначен для подключения более одного LEGO Mindstorms EV3;
  • служит для подключения большего количества датчиков, моторов и других устройств;
  • позволяет осуществить связь между несколькими LEGO Mindstorms EV3 (до 4), что даёт нам до 16 внешних портов и такое же количество внутренних портов;
  • даёт возможность управлять всей цепочкой с главной LEGO Mindstorms EV3;
  • не может функционировать при активном подключении Wi-Fi или Bluetooth.

Для включения режима подключения шлейфом перейдем в окно настройки проекта и поставим галочку.

Когда выбран этот режим, то для любого мотора мы можем выбрать блок EV3, который будет задействован, и необходимые датчики.

В таблице приведены варианты применения блоков EV3:

Действие

Средний мотор

Большой мотор

Рулевое управление

Независимое управление

Гироскопический

Инфракрасный

Ультразвуковой

Вращения мотора

Температуры

Счетчик энергии

Звуковой

Подключение через Bluetooth

Bluetooth позволяет LEGO Mindstorms EV3 подключиться к ПК, другому LEGO Mindstorms EV3, смартфонам и другим Bluetooth-устройствам. Дальность связи по каналу Bluetooth – до 25 м.

К одному LEGO Mindstorms EV3 можно подключить до 7 блоков. Главный блок EV3 позволяет отправлять и получать сообщения для каждого подчинённого EV3. Подчинённые EV3 могут только отправлять сообщения на главный блок EV3, но не между собой.

Последовательность соединения EV3 через Bluetooth

Для того чтобы соединить два и более блоков EV3 между собой по Bluetooth, нужно выполнить следующие действия:

1. Открыть вкладку Настройка .

2. Выберите Bluetooth и нажмите центральную кнопку.

3. Ставим Флажок видимости Bluetooth.

4. Проверьте, что знак Bluetooth ("<") виден на верхней левой стороне.

5. Сделайте упомянутую выше процедуру для нужного количества блоков EV3.

6. Войдите во кладку Подключение (Connection):

7. Нажмите на кнопку Поиск (Search):

8. Выберите EV3, которое вы хотите подключить (или к которому вы хотите подключиться) и нажмите центральную кнопку.

9. Соединяем между собой один и второй блок с ключом доступа.

Если сделать всё правильно, то в верхнем левом углу появится значок "<>", аналогично выполняется подключение других блоков EV3, если их больше двух.

Если вы выключили LEGO EV3, то связь пропадет и вам все пункты необходимо будет повторить.

Важно: для каждого блока должна быть написана своя программа.

Пример программы:

Первый блок: при нажатии датчика касания первый блок EV3 передает текст на второй блок с задержкой 3 секунды (главный блок).

Пример программы для 2 блока:

Второй блок ожидает принятия текста с первого блока, и как только он его получил, выведет на экран слово (в нашем примере это слово "Hello") в течение 10 секунд (подчинённый блок).

Подключение через Wi-Fi

Более дальняя связь возможна при подключении Wi-Fi Dongle к порту USB на EV3.

Чтобы использовать Wi-Fi, нужно установить на блок EV3 специальный модуль, используя USB-разъем (Wi-Fi адаптер (Netgear N150 Wireless Adapter (WNA1100), а также можно подключить Wi-Fi Dongle.

Описание презентации по отдельным слайдам:

1 слайд

Описание слайда:

2 слайд

Описание слайда:

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

3 слайд

Описание слайда:

Интерфейс: Меню EV3 имеет меню, которое состоит из 4-ех частей: Недавние программы (Recent Programs) Менеджер файлов (File Navigation) Программы Блока Управления (Brick Applications) Настройки Блока Управления (Brick Settings)

4 слайд

Описание слайда:

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

5 слайд

Описание слайда:

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

6 слайд

Описание слайда:

Приложения Блока Управления EV3 имеет 4 предустановленных приложений: А. Представление порта. Б. Управление моторами. В. ИК управление. Г. Среда программирования модуля.

7 слайд

Описание слайда:

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

8 слайд

Описание слайда:

Б. Управление мотором Управляйте прямым или обратным движением любого мотора, подключенного к одному из четырех портов вывода. Существует два различных режима. В одном режиме вы сможете управлять моторами, подключенными к порту А (с помощью кнопок «Вверх» и «Вниз») и к порту D (с помощью кнопок «Влево» и «Вправо»). В другом режиме вы управляете моторами, подключенными к порту B (с помощью кнопок «Вверх» и «Вниз») и к порту С (с помощью кнопок «Влево» и «Вправо»). Переключение между этими двумя режимами осуществляется с помощью центральной кнопки. Для возврата к основному окну приложений модуля нажмите кнопку «Назад».

9 слайд

Описание слайда:

ИК-управление Управляйте прямым или обратным движением любого мотора, подключенного к одному из четырех портов вывода, используя удаленный инфракрасный маяк в качестве дистанционного управления и инфракрасный датчик в качестве приемника (инфракрасный датчик должен быть подключен к порту 4 в модуле EV3). Существует два различных режима. В одном режиме вы будете использовать каналы 1 и 2 на удаленном инфракрасном маяке. На канале 1 вы сможете управлять моторами, подключенными к порту В (используя кнопки 1 и 2 на удаленном инфракрасном маяке) и к порту С (используя кнопки 3 и 4 на удаленном инфракрасном маяке). На канале 2 вы сможете управлять моторами, подключенными к порту А (используя кнопки 1 и 2) и к порту D (используя кнопки 3 и 4). В другом режиме вы можете управлять моторами точно так же, вместо этого используя каналы 3 и 4 на удаленном инфракрасном маяке. Переключение между этими двумя режимами осуществляется с помощью центральной кнопки. Для возврата к основному окну приложений модуля нажмите кнопку «Назад».

10 слайд

Описание слайда:

Среда программирования модуля Модуль EV3 поставляется с установленным на нем программным. Приложением аналогично программному обеспечению, установленному на вашем компьютере. Данные инструкции содержат основную информацию, которая понадобиться вам для начала работы.

11 слайд

Описание слайда:

Настройки Модуля EV3 Это окно позволяет просматривать и корректировать различные общие настройки в модуле EV3.

12 слайд

Описание слайда:

Настройка громкости Вы можете увеличивать и уменьшать Громкость (Volume) во вкладке Настройки (Settings) в EV3.

13 слайд

Идея заменить микрокомпьютер в конструкторе на , Beaglebone , или другой не является новой. Но с выходом EV3 стало возможным не только получить 100%-ый аналог, но и повысить производительность вашего легоробота.

Видео-презентация проекта:

E VB полностью поддерживает Lego Mindstorms Ev3 систему как на аппаратном, так и на программном уровне, 100% совместим со всеми Lego-датчиками и моторами. Блок работает также как и блок Lego Mindstorms EV3:

BeagleBone Black — одноплатный Linux-компьютер. Является конкурентом Raspberry Pi. Имеет мощный процессор процессором AM335x 720MHz ARM®, большое количество входов/выходов, возможности могут быть расширены дополнительными платами.

Lego Mindstorms EV3 имеет процессор ARM9 (TI Sitara AM180x) 300MHz, поэтому переход на процессор ARM Cortex-A8 (TI Sitara AM335x) 1GHz BeagleBone Black повышает производительность , плюс появляется возможность подключения дополнительных плат расширения!

Самое главное, что Lego Mindstorms EV3 имеет открытое описание всего программного обеспечения и аппаратных средств!

Для примера, собран и продемонстрирован известный робот-сборщик кубика рубика. Только вместо EV3 установили разработанный EVB. Предлагаем посмотреть видео:

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