Роботы LEGO Mindstorms - занимательная робототехника. Код главных классов ПО руки-манипулятора. Чем отличаются интерактивные сервомоторы LEGO® MINDSTORMS® EV3 от интерактивных сервомоторов NXT

В этом разделе представлены различные Лего роботы. Начиная с Mindstorms - робота для продвинутых пользователей и даже профессионалов, заканчивая персонажами легенд: Hero Factory, Ninjago, Chima и др.


Начнём наше повествование с необычной лего игрушки – электронного интерактивного робота на базе процессора NXT 2.0! Его, с помощью инструкции, может собрать даже 10-12-летний ребёнок! LEGO Роботы mindstorms понравится не только детям, но и их родителям, так как он очень функционален и возможности его программирования поистине безграничны! Можно сконструировать свои программируемые модели!

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

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

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

Ваш ребёнок никогда не будет скучать, а учиться навыкам конструирования и программирования в игровой форме, тоже весьма познавательное занятие!

Ещё одна серия – это Фабрика Героев. Герои из серии Hero Factory являются очень колоритными существами, это гибрид человека и робота и название им – киборги! Фигурки роботов имеют подвижные руки и ноги, они держат различное оружие, которое помогает им сражаться с полчищами мутантов, которые прислуживают Огненному Лорду.

Данная серия Hero Factory является аналогом Биониклов, поэтому её с радостью воспримут поклонники мультфильмов про роботов.

Среди персонажей есть как добрые: Стормер, Фурно, Бриз и другие, так и отрицательные герои: Дриллдозер, Джетбаг, Вон Небула, которые подчиняются могущественному и злому Огненному Лорду. Попробуйте собрать всю коллекцию фигурок Фабрика Героев лего роботов и устроить своё сражение за торжество добра и справедливости!

В статье содержится описание опыта использования конструктора Lego Mindstorms EV3 для создания прототипа робота с его последующим программным и ручным управлением при помощи Robot Control Meta Language (RCML).

  • Сборка прототипа робота на базе конструктора Lego Mindstorms EV3
  • Быстрая установка и настройка RCML для Windows
  • Программное управление роботом на базе контроллера EV3
  • Ручное управление периферией робота с помощью клавиатуры и геймпада
Забегая немного вперед, добавлю, что для реализации управления Lego-роботом с помощью клавиатуры требуется создать программу, содержащую всего 3 строки программного кода. Подробней о том, как это сделать написано под катом.

1. Для начала из конструктора Lego Mindstorms EV3 был создан прототип робота, который будет использоваться для программирования и ручного пилотирования.

Описание прототипа робота

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



2. Следующий шаг - подготовка RCML для работы с конструктором Lego Mindstorms EV3.

Следует скачать архивы с исполняемыми файлами и файлами библиотек и .

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

Содержимое каталога после распаковки в него архивов



Далее необходимо создать файл конфигурации config.ini, который необходимо расположить в этом же каталоге. Для реализации возможности управления контроллером EV3 при помощи клавиатуры и геймпада, следует подключить модули lego_ev3, keyboard и gamepad.

Листинг конфигурационного файла config.ini для RCML

Module = lego_ev3 module = keyboard module = gamepad


Далее следует произвести сопряжение контроллера EV3 и адаптера.

Инструкция для сопряжения контролера EV3 и Bluetooth адаптера

Инструкция содержит пример сопряжения контроллера Lego Ev3 и ПК под управлением операционной системы Windows 7.

1. Нужно перейти в раздел настроек контроллера Ev3, далее в пункт меню «Bluetooth».

2. Следует убедиться в правильности установки параметров конфигурации. На против пунктов “Visibility”,” Bluetooth” должны быть установлены галочки.

3. Необходимо перейти в «Панель управления», далее «Устройства и принтеры», далее «Устройства Bluetooth».

4. Необходимо нажать кнопку «Добавление устройства». Откроется окно для выбора доступных Bluetooth устройств.

5. Следует выбрать устройство “EV3” и нажать кнопку «Далее».

6. На экране контроллера EV3 отразится диалоговое окно «Connect?». Нужно выбрать вариант галочки, и подтвердить свой выбор нажатием центральной клавиши.

7. Далее отобразиться диалоговое окно «PASSKEY», в строке ввода должны быть указаны цифры «1234», далее следует подтвердить ключевую фразу для сопряжения устройств, путем нажатия центральной клавиши на позиции с изображением галочки.

8. В мастере сопряжения устройства появится форма для ввода ключа для сопряжения устройств. Нужно ввести код «1234» и нажать клавишу «Далее».

10. На ПК необходимо вернуться в «Панель управления», далее «Устройства и принтеры», далее «Устройства Bluetooth». В списке доступных устройств отобразится устройство, с которым было произведено сопряжение.

11. Следует двойным нажатием зайти в свойства подключения “EV3”.

14. Указанный в свойствах индекс COM-порта, следует использовать в конфигурационном файле config.ini модуля lego_ev3. В примере показаны свойства Bluetooth подключения контроллера Lego EV3 с использованием стандартного последовательного порта COM14.


Дальнейшая конфигурация модуля сводится к тому, что необходимо прописать в конфигурационном файле модуля lego_ev3 адрес COM-порта, через который осуществляется коммуникация с роботом Lego.

Листинг конфигурационного файла config.ini для модуля lego_ev3

Connection = COM14 dynamic_connection = 0


Теперь необходимо произвести настройку модуля keyboard. Модуль находится в каталоге control_modules, далее keyboard. Следует создать конфигурационный файл config.ini рядом с файлом keyboard_module.dll. Перед тем, как создать конфигурационный файл, необходимо определить, какие действия должны быть совершены по нажатию клавиш.

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

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

  • Стрелки вверх/вниз используются для вращения мотора задних колес вперед/назад
  • Стрелки влево/вправо поворачивают колеса влево/вправо
Файл конфигурации модуля keyboard описывает, какие оси доступны программисту, для осуществления взаимодействия с роботом в режиме ручного управления. Таким образом, в примере получилось две управляющих группы – это оси клавиатуры. Для добавления новой оси, следует придерживаться следующих правил описания осей.

Правила описания осей для модуля keyboard

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

Имя_оси = значение_кнопки_клавиатуры_в_HEX_формате
2. Необходимо установить максимальное и минимальное значение, которое может откладываться по данной оси. Для этого необходимо с новой строки добавить секцию в конфигурационном файле config.ini , одноименную с именем оси, и задать свойства upper_value и lower_value , которые соответствуют максимум и минимуму оси соответственно. В общем виде данная секция выглядит следующим образом:

[имя_оси] upper_value = максимальное_значение_оси lower_value = минимальное_значение_оси
3. Далее следует определить, какое значение будет иметь ось в случае нажатия кнопки на клавиатуре, которая ранее была прикреплена к ней. Определение значений происходит посредством создания секции, название которой состоит из имени оси и значения кнопки клавиатуры в HEX формате, разделенные между собой символом нижнего подчеркивания. Для задания значения по умолчанию (в не нажатом) и нажатом состоянии используются свойства unpressed_value и pressed_value соответственно, в которые передаются значения. Общий вид секции в таком случае выглядит следующим образом:

[имя-оси_значение-кнопки-клавиатуры] pressed_value = значение_оси_при_нажатой_клавише unpressed_value = значение_оси_при_отжатой_клавише
Текст спойлера для удобства просмотра скопирован из документации по RCML .


Для реализации управления прототипом робота был создан конфигурационный файл модуля keyboard, который включает в себя оси go и rotate. Ось go используется для задания направления движения робота. При нажатии клавиши “стрелка вверх” ось получит значение 100, при нажатии клавиши “стрелка вниз” ось примет значение -50. Ось rotate используется для установки угла поворота передних колес. При нажатии клавиши “стрелка влево” значение оси будет равно -5, при нажатии «стрелки вправо» ось примет значение 5.

Листинг конфигурационного файла config.ini для модуля keyboard

;Обязательная секция ;название_оси = код_клавиши (в HEX формате) ;Ось go получает значения от стрелки_вверх go = 0x26 ;Ось go получает значения от стрелки_вниз go = 0x28 ;Ось rotate получает значения от стрелки_влево rotate = 0x25 ;Ось rotate получает значения от стрелки_вправо rotate = 0x27 ;Описание оси go, всегда должно иметь оба ключа ;Верхняя граница значений оси go upper_value = -100 ;Нижняя граница значений оси go lower_value = 100 ;Описание оси rotate, всегда должно иметь оба ключа ;Верхняя граница значений оси rotate upper_value = -100 ;Нижняя граница значений оси rotate lower_value = 100 ;Описание поведения оси go для клавиши *стрелка_вверх* (0x26) ;При нажатии клавиши *стрелка_вверх* значение оси задать равным 50 pressed_value = 100 ;При отпускании клавиши *стрелка_вверх* значение оси задать равным 0 unpressed_value = 0 ;Описание поведения оси go для клавиши *стрелка_вниз* (0x28) ;При нажатии клавиши *стрелка_вниз* значение оси задать равным -50 pressed_value = -50 ;При отпускании клавиши *стрелка_вниз* значение оси задать равным 0 unpressed_value = 0 ;Описание поведения оси rotate для клавиши *стрелка_влево* (0x25) ;При нажатии клавиши *стрелка_влево* значение оси задать равным -5 pressed_value = -5 ;При отпускании клавиши *стрелка_влево* значение оси задать равным 0 unpressed_value = 0 ;Описание поведения оси rotate для клавиши *стрелка_вправо* (0x27) ;При нажатии клавиши *стрелка_вправо* значение оси задать равным 5 pressed_value = 5 ;При отпускании клавиши *стрелка_вправо* значение оси задать равным 0 unpressed_value = 0


Далее для реализации управления при помощи геймпада, необходимо настроить модуль gamepad. Конфигурирование модуля включает в себя создание конфигурационного файла config.ini рядом с gamepad_module.dll, находящего в каталоге control_modules, далее gamepad.

Универсальный файл конфигурации модуля для взаимодействия с геймпадом

;Обязательная секция описания используемых осей ;Ось для завершения режима ручного управления Exit = 9 ; 11 бинарных осей, соответствующих кнопкам геймпада B1 = 1 B2 = 2 B3 = 3 B4 = 4 L1 = 7 L2 = 5 R1 = 8 R2 = 6 start = 10 T1 = 11 T2 = 12 ; 4 оси стиков;Правый стик движение вверх/вниз RTUD = 13 ;Правый стик движение влево/вправо RTLR = 16 ;Левый стик движение вверх/вниз LTUD = 15 ;Левый стик движение влево/вправо LTLR = 14 ; 2 оси крестовины;Движение крестовины вверх/вниз arrowsUD = 17 ;Движение крестовины влево/вправо arrowsLR = 18 ;Описание поведения оси B1 ;При нажатии кнопки B1 значение оси задать равным 1 upper_value = 1 ;При отпускании кнопки B1 значение оси задать равным 0 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 ;Описание поведения оси правого стика движение вверх/вниз ;Значение оси при перемещении в максимально возможное верхнее положение upper_value = 0 ;Значение оси при перемещении в максимально возможное нижнее положение lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 ;Описание поведения оси крестовины движение вверх/вниз ;Значение оси при нажатии стрелки вверх upper_value = 1 ;Значение оси при нажатии стрелки вниз lower_value = -1 upper_value = 1 lower_value = -1


Дополнительная информация об особенностях настройки модуля gamepad отображена в справочном руководстве по RCML .

3. Следующий шаг - написание программы на языке RCML.

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

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

@tr = robot_lego_ev3;

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

Алгоритм программы следующий:

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

Листинг программы для Lego робота на языке RCML

function main() { @tr = robot_lego_ev3; //Резервирование робота @tr->setTrackVehicle("B","C",0,0); //Установка синхронизации двигателей @tr->motorMoveTo("D",100,0,0); system.sleep(500); @tr->trackVehicleForward(-100); system.sleep(1000); @tr->motorMoveTo("D",50,-50,0); system.sleep(4000); @tr->motorMoveTo("D",50,50,0); system.sleep(4000); @tr->trackVehicleOff(); system.sleep(1000); }


Для компилирования программы необходимо использовать командную строку window. Сначала следует переместиться в созданный каталог с исполняемыми файлами rcml_compiler.exe и rcml_intepreter.exe. Далее нужно ввести следующие команды.

Команда для компилирования файла hello.rcml:

Rcml_compiler.exe hello.rcml hello.rcml.pc
В результате компилирования, в созданной директории появится новый файл hello.rcml.pc.

Скриншот командой строки после успешного компилирования



Теперь следует убедиться в том, что контроллер EV3 включен, сопряжен с Bluetooth адаптером. Геймпад должен быть подключен к ПК. После этого нужно выполнить команду исполнения программного файла:

Rcml_intepreter.exe hello.rcml

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



Видеоролик демонстрирующий программу движения робота расположен внизу статьи.

4. Следующий шаг – управление роботом в ручном режиме при помощи клавиатуры.

При помощи клавиатуры возможно управление любым двигателем робота. В рамках примера реализовано управление следующими механизмами:

  • Углом поворота передних колес
  • Направлением вращения задних колес

Листинг программы взаимодействия клавиатуры и робота Lego на базе контроллера EV3

function main() { @tr = robot_lego_ev3; //Резервирование робота @tr->setTrackVehicle("B","C",0,0); //Установка синхронизации двигателей system.hand_control(@tr,"keyboard", "straight","go", "speedMotorD","rotate"); }


Далее следует откомпилировать программу и выполнить её. Результат ручного управления Lego роботом при помощи на клавиатуры показан на видео внизу страницы.

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

Листинг программы взаимодействия геймпада и робота Lego

function main() { @tr = robot_lego_ev3; //Резервирование робота @tr->setTrackVehicle("B","C",0,0); //Установка синхронизации двигателей system.hand_control(@tr,"gamepad", "straight"," RTUD", "speedMotorD"," RTLR"); }


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

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

Теги:

  • lego mindstorms
  • робототехника
  • программирование
Добавить метки

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

Различаются они не только производителями, но и способами и возможностями программирования, типами крепежей, а также материалами.

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

LEGO Mindstorms

Конструктор выпускается в двух типах:

  • детский;
  • продвинутый.

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

Стоит заметить, хоть программирование этих роботов возможно, блоков управления в этом наборе не предусмотрено, это означает, что робот будет всегда соединен с компьютером при помощи кабеля USB.

Продвинутый же набор открывает намного больший простор для фантазии. Он существует в нескольких вариантах и поколениях (на данный момент поколений три). Они отличаются количеством деталей, наличием дополнительных микрокомпьютеров, а также различными датчиками и другими приборами. Микрокомпьютеры этой серии оснащены операционной системой Linux. Эти схемы поддерживают не только специальные языки программирования, но и C++, C и даже Python.

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

Лего держит пальму первенства в роботах-конструкторах уже более десяти лет. Устраиваются соревнования по созданию , где главным призом чаще всего оказывается бюджетное место в престижном ВУЗе.

LEGO Mindstorms – один из 17 вариантов сборки

HUNA

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

Узнать больше об увлекательных металлических конструкторах для мальчиков можно .

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

В качестве “мозга” железных комплектов выступает контроллер Arduino, на котором уже стоит специальная прошивка. Среда программирования тут – обычный C-образный язык для Arduino, но для большего удобства его визуализировали.

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

Makeblock

Следующим конструктором в нашем списке является китайский Makeblock. Как и в предыдущем случае, здесь используется электроника Arduino. Количество продаваемых наборов на официальном сайте просто огромное. Вы можете найти как дешевые комплекты обычных машинок, так и достаточно серьёзные наборы, которые позволяют создать своими руками 3D-принтер.

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

Из интересных моделей следует заметить те, которые выполняют рисунки, среди них:

  • mScara – робо-рука, на которую можно вместо маркера поставить лазер;
  • mSpider – он рисует в вертикальных плоскостях, подобно пауку перемещаясь на ниточках;
  • mCar – машинка, которая рисует маркером там, где она ездит.

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

#Структор

Этот конструктор производится в России и отличается от других тем, что его детали выполнены из вспененного ПВХ. Их толщина составляет пять миллиметров, что позволяет создавать небольшие, но достаточно прочные конструкции.

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

Достоинства ПВХ:

  • низкая стоимость;
  • простота обработки – достаточно лишь вооружиться ножом, карандашом и линейкой;
  • высокая прочность;
  • влагоустойчивость;
  • пожаробезопасность – температура возгорания листового ПВХ превышает 400 градусов Цельсия.

Малую прочность конструкции производители предлагают решить двумя способами. Первый – просто склеить детали. Лучше всего для таких целей подойдет специальный клей “Космофен”. Второй способ – объединить #Структор с советским (или аналогичным) железным конструктором.

#Структор от “Амперка”

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

Управление элементами #Структор производится на Arduino. А благодаря универсальности материала, из которого изготовлены элементы конструктора, любой датчик, сервопривод или мотор легко внедряются в конструкцию.

Vex

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

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

Только в наборах корейской компании Vex встречаются коробки передач или колеса Илона.

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

Примечательной особенностью является также наличие ПО VEX Assembler. Это 3D редактор, в котором вы можете придумать и испытать своего робота до того, как начнете его строить вживую.

VEX Robotics by HEXBUG

FischerTechnik

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

Чтобы не было недостатка в деталях и электронных компонентах отдельно можно приобрести наборы расширения, дистанционное управление и многое другое.

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

В продаже имеется два типа контроллеров:

  • Robo TX;
  • Robo TXT.

Высокая цена за них обусловлена тем, что это не просто контроллеры, а настоящие микрокомпьютеры с поддержкой Wi-Fi, Bluetooth и довольно мощной “начинкой” для своих малых размеров. Для повышения производительности эти контроллеры могут быть совмещены в одну сеть.

Программирование происходит на бесплатной программе Robo Pro. Все команды задаются при помощи логических блоков, что позволяет обучить ребенка азам программирования в игровой форме.

ТРИК

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

На данный момент имеется четыре типа наборов:

  • стартовый;
  • образовательный;
  • школьный;
  • соревновательный.

Их различие в количестве деталей и электроники. Во всех наборах вы найдете микроконтроллер, микрофон и видеокамеру или датчики, светодиоды и колеса.

Микроконтроллер ТРИК работает на Linux и имеет на борту процессор с 24 мегагерцами и целые 256 Мбайт оперативной памяти. Также ее можно расширить за счет Flash-карты.

Набор для сборки ТРИКС

Создатели данного конструктора решили не привязывать контроллер к одной среде программирования. Поэтому он поддерживает C, C++, Python и даже Java. Для тех, кто только изучает программирование, имеется специальная среда программирования, предназначенная для контроллера ТРИК.

Так как контроллер поддерживает множество команд, для удобства управления имеется приложение для смартфонов под управлением Android. Команды передаются при помощи Wi-Fi.

MOSS


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

  1. Зеленые – передача электричества от аккумулятора.
  2. Красные – вход данных.
  3. Коричневые грани – выход данных.
  4. Голубые – эти грани передают и электричество и данные. Они нужны для того, чтобы соединять детали при помощи гибкого элемента.

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

Robo Wunderkind от MOSS

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

Вторая же программа направлена на тех, кто хорошо в нем разбирается. Она компилирует ваш код и переносит его в контроллер. Обе эти программы работают на Windows и Mac OS, но не поддерживаются Linux.

Для удаленного правления роботом MOSS существует сразу несколько программ для мобильных устройств. Это и пульты управления, экспорт данных с датчиков, рисование графиков и многое другое. Все программы доступны для iOS, а некоторые и для Android.

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

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

Робот MECCANO, управляемый с помощью смартфона или планшета

Видео

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

Чтобы выбрать конструктор, нужно определиться, для кого он:

  • LEGO Mindstorms лучше всего подойдет ребенку, который увлекается роботами. А так как у большинства детей есть обширная коллекция LEGO, фантазия ребенка будет поистине безграничной.
  • Если вы разыскиваете конструктор для себя, то стоит обратить внимание на ТРИК или #Структор, так как они оба совместимы с советским железным конструктором, а второй к тому же, еще, и выполнен из ПВХ.
  • Но, так или иначе, эти конструкторы очень сильно улучшат способности вашего ребенка к логическому мышлению, а также подготовят его к тому, что будет ждать его в школе или институте.

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

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

Что такое Power Functions?
LEGO Power Functions - новая электрическая система с мощными моторами и дистанционным управлением.

Как работает система Power Functions?
Батарейный отсек дает питание в систему. Если присоединить к разъему мотор, он начнет вращаться в ту или иную сторону, в зависимости от положения выключателя. Светящийся зеленым индикатор говорит о том, что питание включено. Когда выключатель находится в центральном положении, питание выключено.


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


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

Какие элементы питания необходимы?
Батарейный отсек: 6 элементов питания типоразмера AA (пальчиковые) - щелочные, либо перезаряжаемые аккумуляторы

Пульт управления:
3 элемента питания типоразмера AAA

Как установить элементы питания?
Батарейный отсек: Снимите крышки с обеих сторон и вставьте 3 элемента питания AA с каждой стороны, соблюдая полярность, указанную на дне.

Пульт управления:
Открутите винт с задней стороны пульта, снимите крышку и вставьте 3 элемента питания AA с каждой стороны, соблюдая полярность, указанную на дне.

Важно заменять все элементы питания одновременно - не смешивать старые и новые - израсходованные элементы питания могут потечь или нагреться.

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

Пульт управления:
2-3 года

Что говорит о том, что пора заменить элементы питания?
Батарейный отсек:
Моторы вращаются медленнее. Замените элементы питания, если скорость/мощность модели снизилась.

Пульт управления:
Уменьшилось расстояние, с которого возможно управление.

Почему моя модель работала только короткий период времени после того, как я сменил элементы питания?
1. Убедитесь, что вы заменили все 6 элементов питания, а не только 3 с одной стороны.
2. Используйте щелочные, либо перезаряжаемые элементы питания
3. Не забывайте выключать питание батарейного отсека, когда он не используется.

Почему моя модель работает медленно?
Возможны три причины:
1. Убедитесь, что ничто не препятствует нормальной передаче от мотора к движущимся частям, не прокручиваются шестерни, и т.п.
2. Убедитесь, что используются новые элементы питания
3. Слишком много моторов запущено одновременно и под большой нагрузкой.

Как много моторов могут работать одновременно от одного батарейного отсека?
Как правило, можно запускать одновременно 2 XL мотора, либо 4 обычных мотора. Батарейный отсек и инфракрасный приемник защищены от перегрузок, поэтому попытка одновременного запуска большего числа моторов ничему не повредит.

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

Что делать, если моя модель не действует?
1. Убедитесь, что вы используете новые элементы питания в батарейном отсеке и пульте управления.
2. Убедитесь, что все подключено верно.
3. Убедитесь, что зеленый индикатор на батарейном отсеке зажжен.
4. Убедитесь, что зеленый индикатор на инфракрасном приемнике зажжен.
5. Убедитесь, что инфракрасный приемник получает сигналы от пульта управления.
6. Убедитесь, что ничего не препятствует вращению моторов.

Как убедиться, что инфракрасный приемник получает сигналы от пульта управления?
1. Зеленый индикатор на инфракрасном приемнике должен быть зажжен.
2. Зеленый индикатор на пульте управления загорается при отправке сигналов.
3. Убедитесь, что пульт управления и приемник настроены на один канал.
4. Зеленый индикатор на приемнике будет мигать при получении сигналов.

С какого расстояния возможно управление?
Это зависит от многого - в нормальных условиях расстояние может превышать 10 метров.

Доступное расстояние снижают:
. Яркий солнечный свет
. Севшие элементы питания в пульте управления
. Что-то блокирует сигналы на пути их прохождения

Дополнительная информация и комментарии.

  • Рычажки на пульте могут находиться только в трех фиксированных положениях - вперед, назад и нейтральное. Скорость вращения моторов в каждом случае постоянна. Причем это особенность именно пульта - поскольку сами инфракрасные приемники содержат большую функциональность, в том числе и возможность регулировки скорости вращения моторов посредством широтно-импульсной модуляции.
  • Инфракрасные приемники работают только с новыми батарейными отсеками - со старыми через переходник не работают.
  • Несмотря на ограничение в два XL мотора - вполне можно использовать одновременно два XL мотора для приведения в движение, скажем, автомобиля, и при этом периодически «рулить» третьим обычным мотором.
  • XL мотор содержит «технические» отверстия спереди и по бокам для присоединения модели, обычный мотор содержит отверстия спереди и стандартное леговское дно пластины снизу.
  • Скорость вращения ненагруженного обычного мотора - 405 оборотов в в минуту, XL - 220 оборотов в минуту. При использовании перезаряжаемых аккумуляторов (общее напряжение 7.2 вольта) скорость снижается приблизительно в полтора раза.
  • Вполне возможно, что в ближайшем будущем выпустят, по крайней мере, новый пульт управления - с возможностью регулирования скорости вращения моторов - в ИК приемнике такая функциональность уже заложена.
  • Разъемы подключения у Power Functions "сквозные". То есть к одному выходу подключается более одного устройства - просто каждый следующий сверху другого. Таким образом, можно подключить к одному выходу инфракрасного приемника два мотора и включать их одновременно одним рычажком.

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

8.1. Изучаем инфракрасный датчик и инфракрасный маяк

(Рис. 1) в своей работе использует световые волны, невидимые человеку - инфракрасные волны* . Такие же волны используют, например, дистанционные пульты управления различной современной бытовой техникой (телевизорами, видео и музыкальными устройствами). Инфракрасный датчик в режиме "Приближение" самостоятельно посылает инфракрасные волны и, поймав отраженный сигнал, определяет наличие препятствия перед собой. Еще два режима работы инфракрасный датчик реализует в паре с инфракрасным маяком (Рис. 2) . В режиме "Удаленный" инфракрасный датчик умеет определять нажатия кнопок инфракрасного маяка, что позволяет организовать дистанционное управление роботом. В режиме "Маяк" инфракрасный маяк посылает постоянные сигналы, по которым инфракрасный датчик может определять примерное направление и удаленность маяка, что позволяет запрограммировать робота таким образом, чтобы он всегда следовал в сторону инфракрасного маяка. Перед использованием инфракрасного маяка в него необходимо установить две батарейки AAA.

Рис. 1

Рис. 2

8.2. Инфракрасный датчик. Режим "Приближение"

Этот режим работы инфракрасного датчика похож на режим определения расстояния ультразвуковым датчиком. Разница кроется в природе световых волн: если звуковые волны отражаются от большинства материалов практически без затухания, то на отражение световых волн влияют не только материалы, но и цвет поверхности. Темные цвета в отличие от светлых сильнее поглощают световой поток, что влияет на работу инфракрасного датчика. Диапазон работы инфракрасного датчика также отличается от ультразвукового - датчик показывает значения в пределах от 0 (предмет находится очень близко) до 100 (предмет находится далеко или не обнаружен). Еще раз подчеркнем: инфракрасный датчик нельзя использовать для определения точного расстояния до объекта, так как на его показания в режиме "Приближение" оказывает влияние цвет поверхности исследуемого предмета. В свою очередь это свойство можно использовать для различия светлых и темных объектов, находящихся на равном расстоянии до робота. С задачей же определения препятствия перед собой инфракрасный датчик справляется вполне успешно.

Решим практическую задачу, похожую на Задачу №14 Урока №7 , но, чтобы не повторяться, усложним условие дополнительными требованиями.

Задача №17: написать программу прямолинейно движущегося робота, останавливающегося перед стеной или препятствием, отъезжающего немного назад, поворачивающего на 90 градусов и продолжающего движение до следующего препятствия.

У робота, собранного по инструкции small-robot-31313 , впереди по ходу движения установлен инфракрасный датчик. Соединим его кабелем с портом "3" модуля EV3 и приступим к созданию программы.

Рассмотрим программный блок "Ожидание" Оранжевой палитры, переключив его в Режим: - "Сравнение" - "Приближение" (Рис. 3) . В этом режиме программный блок "Ожидание" имеет два входных параметра: "Тип сравнения" и "Пороговое значение" . Настраивать эти параметры мы уже умеем.

Рис. 3

Решение:

  1. Начать прямолинейное движение вперед
  2. Ждать, пока пороговое значение инфракрасного датчика станет меньше 20
  3. Прекратить движение вперед
  4. Отъехать назад на 1 оборот двигателей
  5. Повернуть вправо на 90 градусов (воспользовавшись знаниями Урока №3, рассчитайте необходимый угол поворота моторов)
  6. Продолжить выполнение пунктов 1 - 5 в бесконечном цикле.

Попробуйте решить Задачу № 17 самостоятельно, не подглядывая в решение.

Рис. 4

А теперь для закрепления материала попробуйте адаптировать решение Задачи №15 Урока №7 к использованию инфракрасного датчика! Получилось? Поделитесь впечатлениями в комментарии к уроку...

8.3. Дистанционное управление роботом с помощью инфракрасного маяка

Инфракрасный маяк, входящий в домашнюю версию конструктора Lego mindstorms EV3, в паре с инфракрасным датчиком позволяет реализовать дистанционное управление роботом. Познакомимся с маяком поближе:

  1. Пользуясь инфракрасным маяком, направляйте передатчик сигнала (Рис. 5 поз. 1) в сторону робота. Между маяком и роботом должны отсутствовать любые препятствия! Благодаря широкому углу обзора инфракрасный датчик уверено принимает сигналы, даже если маяк располагается позади робота!
  2. На корпусе маяка расположены 5 серых кнопок (Рис. 5 поз. 2) , нажатия которых распознает инфракрасный датчик, и передает коды нажатий в программу, управляющую роботом.
  3. С помощью специального красного переключателя (Рис. 5 поз. 3) можно выбрать один из четырех каналов для связи маяка и датчика. Сделано это для того, чтобы в непосредственной близости можно было управлять несколькими роботами.

Рис. 5

Задача №18: написать программу дистанционного управления роботом с помощью инфракрасного маяка.

Мы уже знаем, что для реализации возможности выбора выполняющихся блоков необходимо воспользоваться программным блоком "Переключатель" Оранжевой палитры. Установим режим работы блока "Переключатель" в - "Измерение" - "Удалённый" (Рис. 6) .

Рис. 6

Для активации связи между инфракрасным датчиком и маяком необходимо установить правильное значение параметра "Канал" (Рис. 7 поз. 1) в соответствии с выбранным каналом на маяке! Каждому программному контейнеру блока "Переключатель" необходимо сопоставить один из возможных вариантов нажатия серых клавиш (Рис. 7 поз. 2) . Заметьте: некоторые варианты включают одновременное нажатие двух клавиш (нажатые клавиши помечены красным цветом). Всего в программном блоке "Переключатель" в этом режиме можно обрабатывать до 12 различающихся условий (одно из условий должно быть выбрано условием по умолчанию). Добавляются программные контейнеры в блок "Переключатель" нажатием на "+" (Рис. 7 поз.3) .

Рис. 7

Предлагаем реализовать следующий алгоритм управления роботом:

  • Нажатие верхней левой кнопки включает вращение левого мотора, робот поворачивает вправо (Рис. 7 поз. 2 значение: 1)
  • Нажатие верхней правой кнопки включает вращение правого мотора, робот поворачивает влево (Рис. 7 поз. 2 значение: 3)
  • Одновременное нажатие верхних левой и правой кнопок включает одновременное вращение вперед левого и правого мотора, робот двигается вперед прямолинейно (Рис. 7 поз. 2 значение: 5)
  • Одновременное нажатие нижних левой и правой кнопок включает одновременное вращение назад левого и правого мотора, робот двигается назад прямолинейно (Рис. 7 поз. 2 значение: 8)
  • Если не нажата ни одна кнопка маяка - робот останавливается (Рис. 7 поз. 2 значение: 0) .

При разработке алгоритма дистанционного управления вы должны знать следующее: когда нажата одна из комбинаций серых кнопок - инфракрасный маяк непрерывно посылает соответствующий сигнал, если кнопки отпущены, то отправка сигнала прекращается. Исключение составляет отдельная горизонтальная серая кнопка (Рис. 7 поз 2 значение: 9) . Эта кнопка имеет два состояния: "ВКЛ" - "ВЫКЛ" . Во включенном состоянии маяк продолжает посылать сигнал, даже если вы отпустите кнопку (о чём сигнализирует загорающийся зеленый светодиод), чтобы выключить отправку сигнала в этом режиме - нажмите горизонтальную серую кнопку еще раз.

Приступим к реализации программы:

Наш алгоритм дистанционного управления предусматривает 5 вариантов поведения, соответственно наш программный блок "Переключатель" будет состоять из пяти программных контейнеров. Займемся их настройкой.

  1. Вариантом по умолчанию назначим вариант, когда не нажата ни одна кнопка (Рис. 7 поз. 2 значение: 0) . Установим в контейнер программный блок , выключающий моторы "B" и "C" .
  2. В контейнер варианта нажатия верхней левой кнопки (Рис. 7 поз. 2 значение: 1) установим программный блок "Большой мотор" , включающий мотор "B" .
  3. В контейнер варианта нажатия верхней правой кнопки (Рис. 7 поз. 2 значение: 3) установим программный блок "Большой мотор" , включающий мотор "C" .
  4. В контейнер варианта одновременного нажатия верхних левой и правой кнопок (Рис. 7 поз. 2 значение: 5) установим программный блок "Независимое управление моторами" "B" и "C" вперед.
  5. В контейнер варианта одновременного нажатия нижних левой и правой кнопок (Рис. 7 поз. 2 значение: 8) установим программный блок "Независимое управление моторами" , включающий вращение моторов "B" и "C" назад.
  6. Поместим наш настроенный программный блок "Переключатель" внутрь программного блока "Цикл" .

По предложенной схеме попробуйте создать программу самостоятельно, не подглядывая в решение!

Рис. 8

Загрузите получившуюся программу в робота и запустите её на выполнение. Попробуйте управлять роботом с помощью инфракрасного маяка. Всё ли у вас получилось? Понятен ли вам принцип реализации дистанционного управления? Попробуйте реализовать дополнительные варианты управления. Напишите свои впечатления в комментарии к этому уроку.

* Хотите увидеть невидимые волны? Включите режим фотосъемки в мобильном телефоне и поднесите излучающий элемент дистанционного пульта от телевизора к объективу мобильного телефона. Нажимайте кнопки пульта дистанционного управления и на экране телефона наблюдайте свечение инфракрасных волн.