LEGO Mindstorms EV3: тест-драйв игрового робота
Первый набор LEGO Mindstorms, появившийся в 1998 году при непосредственном участии МIT, моментально вырос в нечто большее, чем просто игрушка. Конструктор, позволяющий за считанные минуты собирать весьма сложные механические системы и наделять их интеллектом без знания даже азов программирования, стал излюбленным средством быстрого прототипирования для изобретателей-любителей, студентов-технарей и даже профессионалов-промышленников.
Конструктор поколения EV3, поступивший в продажу с 1 сентября этого года и попавший к нам на тест, — уже четвертая генерация Mindstorms. Как и у прежних версий, его успех зиждется на трех китах — конструктивных элементах серии Lego Technics, разнообразных электрических компонентах, включая мощные сервомоторы, датчики и контроллер, и уникальном программном обеспечении — фактически мощном языке программирования с дружелюбным графическим интерфейсом Drag & Drop.
Рецепт идеального изобретательского коктейля для детей и взрослых остался прежним. А чтобы распробовать тончайшие нюансы вкуса новой версии, мы решили выйти за рамки инструкции по сборке и предложить конструктору нестандартную задачу.
Принцип домино
Слышали ли вы о Дне домино? Энтузиасты выстраивают колоссальные последовательности из миллионов костяшек домино, поставленных на ребро. Они образуют причудливые узоры, фантастические ландшафты, сказочные картины. Последовательность должна быть выстроена таким образом, чтобы первая упавшая костяшка по принципу домино заставила упасть все остальные. Побеждает команда, которой удалось задействовать в принципе домино наибольшее количество костяшек. Текущий мировой рекорд составляет 4 491 863 штуки.
Конечно, рекордные конструкции из домино кропотливо выстраиваются вручную. Но мы решили схитрить и построить робота, который сможет выставить костяшки за нас, следуя начерченной на полу линии. Взаимодействие с предметами, которые не входят в состав конструктора, — вот и первая непростая задача для набора. Ширина стандартной костяшки — 25 мм. Ширина планки LEGO Technics — 7,5 мм. В хранилище шириной в три планки костяшка не помещается, в четырехпланочном отсеке ей слишком свободно. Тем не менее выход из положения нашелся: в наборе есть небольшое количество тонких деталей, которых оказалось достаточно, чтобы выйти на нужную ширину. Из этого можно сделать вывод, что конструктивный набор Technics достаточно универсален, чтобы строить из него машины для самых разных задач.
Принцип действия робота хорошо понятен из фотографий: машина волочит по поверхности батарею костяшек, отпуская их по одной. Рычажный механизм захвата для крайней костяшки — отличный пример точности механики LEGO. В нем использована червячная передача, два вида шестерен, шатуны и тяги. Для создания сложных кинематических схем в набор Mindstorms входит множество зубчатых колес, угловые передачи, поворотные столы, разнообразные рычаги и оси, гусеницы, которые можно использовать в качестве цепного привода. Кроме того, конструктор полностью совместим с любыми наборами LEGO серии Technics. Набор содержит очень много разных деталей, и это скорее минус, чем плюс. Вместо универсальных модулей, делающих честь любому конструктору, для каждой задачи нужно искать некий уникальный уголок, переходник, соединительный элемент. Чтобы прочувствовать логику конструирования, нужно обязательно посвятить несколько часов сборке моделей по инструкции. Кроме того, детали легко соединяются между собой, но разъединяются с большим трудом. Хотя, пожалуй, это расплата за прочность сборных конструкций. Существуют аналоги, к примеру немецкий Fischertechnik, которые позволяют собирать более универсальные и жесткие конструкции из меньшего количества элементов. Однако именно LEGO остается чемпионом по гибкости подвижных механических схем. А электронный модуль EV3 и вовсе делает новый Mindstorms уникальным.
Умный кирпич
Контроллер с красноречивым названием LEGO Intelligent Brick («умный кирпичик») — вот что делает EV3 действительно всемогущим. Это миниатюрный компьютер на базе Linux с 80 МБ памяти на борту и слотом для 32-гигабайтной SD-карты для хранения программ. К настольному ПК он может подключаться и с помощью USB-кабеля, и по Bluetooth, и с помощью опционального Wi-Fi-модуля.
Важное новшество EV3 — простой редактор программ прямо на борту «умного кирпичика». Даже не имея под рукой компьютера, можно программировать робота, управлять моторами, контролировать показания датчиков и даже вести журнал значений. Причем и программы, и журналы впоследствии могут быть перенесены на ПК для редактирования и анализа. В наш комплект входило два больших и два средних сервомотора. Каждый из них развивает достаточную мощность, чтобы робот мог без труда поднять собственный вес или волочить по поверхности стандартный набор из 28 костяшек домино, сделанных из искусственного камня.
В базовый комплект входят датчики касания, датчик угла наклона, датчик цвета, ультразвуковой дальномер. Дополнительно для EV3 доступны инфракрасный датчик и маячок, датчик температуры. Многие компоненты могут выполнять несколько различных функций. К примеру, датчик цвета способен также измерять общий уровень освещенности, а сервомотор — служить датчиком угла поворота.
Интерфейс программирования LEGO Mindstorms — удивительная вещь. С одной стороны, он предельно прост и дружелюбен. Бывает, программисты сперва рисуют блок-схемы алгоритмов для будущих программ, а затем пишут по ним код. Графический интерфейс позволяет обойтись без второй стадии и сопутствующих ей трудностей: изучения команд и операторов, поиска ошибок, оптимизации кода. Программа Mindstorms — это алгоритм в чистом виде. Нужно лишь брать кубики из панели инструментов и выстраивать их друг за другом.
Но по мере возникновения все более сложных задач вдруг выясняется, что «детский» программный интерфейс таит в себе взрослые возможности. Хотите выполнять математические операции, работать с массивами данных? К вашим услугам соответствующие «кубики». Хотите оперировать переменными? Вместо классических X и Y их работу более наглядно выполнят стрелки из той же блок-схемы, проведенные от одних параметров к другим.
В нашем примере робот следует вдоль прочерченной по поверхности линии, точнее вдоль ее края. Для этого используется датчик освещенности: если линия уходит влево, в поле зрения датчика попадает больше светлой поверхности, если же вправо — доминирует черный цвет линии. Числовое значение освещенности трансформируется в поправку значения мощности правого или левого колесного двигателя. Причем поправка вводится не дискретно, а постоянно, плавно, пропорционально уровню освещенности, обеспечивая точное и непрерывное следование заданной траектории.
Выкладывание костяшек на поверхности — напротив, процесс дискретный. Зафиксировав крайнюю костяшку, робот проходит 2,5 см — это расстояние оптимально для того, чтобы принцип домино работал надежно и выглядел эффектно. Затем, отпустив костяшку, робот проходит ровно 10 мм (ширина костяшки), чтобы схватить следующую. Этот процесс требует серьезной точности движений, и конструктор LEGO готов ее предложить.
«Поженить» в одной программе непрерывный процесс слежения за траекторией и дискретное выкладывание домино — вполне серьезная задача для начинающего программиста. Она требует внимания, творческого мышления и соответствующих возможностей программного инструментария.
Страшно мощная игрушка
Честно говоря, робот, выписывающий узоры из домино, — сущие пустяки для LEGO Mindstorms EV3. Помните сюжет «Терминатора»? В один прекрасный момент машины всея планеты объединились под командованием военного компьютера «Скайнет» и поработили человечество. Как думаете, какой из ныне существующих компьютеров на это способен? Вы будете смеяться, но у EV3 на руках все карты.
Загибайте пальцы. К «кирпичику» EV3 можно подключить всего четыре сервомотора и четыре датчика (если не использовать специальные хабы, которые тоже доступны). Но с помощью USB-кабелей можно объединить четыре модуля под руководством одной программы, доведя количество и моторов, и датчиков до 16.
Модули EV3 могут управлять друг другом на расстоянии. В руководстве есть инструкция по сборке пульта управления на основе EV3 для движущихся моделей, собранных также на основе EV3. Фактически «кирпичики» можно объединить в распределенную вычислительную сеть. Профессионалы вполне могут это проверить: ведь помимо графического интерфейса EV3 понимает множество «взрослых» языков программирования.
EV3 способен работать как встраиваемая система, то есть служить посредником между полноценным ПК и сервомоторами или датчиками. Так что при желании коварные «кирпичики» могут привлечь на свою сторону более мощных собратьев.
Наконец, в руководстве вы найдете инструкции по сборке моделей производственных линий для изготовления конструкций из деталей LEGO. То есть машины, собранные из Mindstorms EV3, способны строить другие машины и воспроизводить сами себя.
Надеемся, наш мрачный поток сознания не станет причиной ваших ночных кошмаров. Ведь пока что все, что за последние 15 лет произвели роботы LEGO Mindstorms, — это бесценный опыт, вдохновение и вера в собственные силы для целой армии юных изобретателей, программистов и инженеров.