Сравнение робототехнических конструкторов: LEGO, Huna, Arduino, ТРИК и другие
Почему война против LEGO уже проиграна? Какие конструкторы являются политически правильными, а какие дают больше возможностей? Надо ли заниматься программированием в детском саду? Сравниваем Mindstorms с Arduino, WeDo с Huna-Роботрек, ТРИК с Lego и современные наборы с теми, что были 10 лет назад.
В разговоре принимают участие Андрей Гурьев, Сергей Косаченко и Лия Султанова — практики образовательной робототехники из Москвы, Томска и Казани с большим опытом и педагогической, и организационной деятельности. Закадровые вопросы задает Динара Гагарина. Съемка не планировалась, поэтому приносим извинения за качество видео. Оно в конце и именно его надо смотреть, но приведем несколько цитат.
Это был неформальный разговор во время олимпиады в Иннополисе, он проходил в приятной домашней обстановке:
Лия Султанова и Сергей Косаченко
LEGO как система
Андрей Гурьев:
Система обучения LEGO — она действительно система, по сравнению с остальными продуктами — у LEGO все сбалансировано. У них железо разрабатывают люди из науки, методики пишут методисты, локализуют по каждой стране профессионалы. Я был в группе локализации физических экспериментов EV3, там серьезно проверяли все и даже сводили все с учебником Перышкина — в каком параграфе какой пункт.
Робототехника в детском саду: LEGO WeDo или Huna-Роботрек?
Андрей Гурьев поставил под сомнение полезность набора WeDo 2.0, который был анонсирован в начале 2016 года:
WeDo 1 — первый робототехнический набор для ребенка, WeDo 2 — еще в 13 году было понятно, что робототехника там будет постольку поскольку.
Сергей Косаченко считает, что самый популярный робонабор для малышей не является оптимальным для детского сада:
Почему WeDo не нравится? Примитивная механика, примитивное программирование. Для маленького ребенка оптимально Scratch и все, что с ним связано. Да, Scratch есть для WeDo, но само WeDo — почему в детсаду эта тема очень туго идет (я про WeDo первое говорю) — без ноутбука эта штука не работает, потому что питается через USB. Я не представляю детский садик, в котором в группе у каждого ребенка по ноутбуку, чтобы WeDo питалось.
Последние пару лет на рынок активно выходят робототехнические наборы Huna-Роботрек. Сергей Косаченко говорит, почему Huna для детского сада лучше, чем WeDo:
Huna имеет упрощение, и датчики все видны — они прикручиваются, и двигатели все видны. Да, контроллер запрограммирован на 4 программы, но зато сама суть, из каких элементов состоит робот, детсадовскому ребенку видна.
Далее участники встречи обсуждали, нужно ли программировать в детском саду. Сергей уверен, что да, Андрей выразил сомнения, а Лия рассказала об интересных решениях для дошкольников.
Сергей Косаченко:
Как только ребенок начинает читать, лучше Scratch я пока ничего не видел.
Arduino или LEGO?
Андрей Гурьев описал разницу между Arduino и LEGO на понятном всем языке:
На уровне LEGO: берешь контроллер — уже кирпич готовый: экранчик, кнопочки, порты, подключил провод — двигатель заработал. А Arduino — это та же самая плата, но экранчик отдельно, кнопочки отдельно, целая куча всего и разнообразие гораздо больше. Плюс платформа открытая. И мировое сообщество проектов на Arduino может даже поспорить с леговским сообществом.
ТРИК или LEGO?
Тема импортозамещения актуальна и для конструкторов. Что важнее в продвижении на рынок? Можно ли сделать российский LEGO?
Андрей Гурьев:
ТРИК — политически правильно, потому что наша разработка.
Почему же тогда большинство занимаются на LEGO?
Андрей Гурьев:
LEGO — это система, где есть все-все-все. Что такое ТРИК? Это супер-пупер-мега контроллер, железная начинка, двигатели и прочее в коробочке. Возникает первый вопрос — программное обеспечение. Которое апгрейдится с такой скоростью, что не уследишь. Тут возникает вопрос методик, вопрос подготовки кадров. У LEGO есть четкие методики, уже вшитые в программное обеспечение, есть LEGO-академия, есть штат, который устраивает мастер-классы. Тут вопрос в системе. Да, ТРИК — хороший конструктор, действительно можно собрать серьезные вещи.
Андрей Гурьев пояснил, что для детей 3-6 класса ТРИК не подходит ввиду его сложности. Для большинства оптимально LEGO, только единицы выходят на уровень ТРИК и Arduino.
— возражает Лия Султанова.
Лия предположила, что LEGO является лидером, в первую очередь благодаря хорошему менеджменту:
Забрось LEGO-менеджера в Россию, он сделает классный робототехнический проект. Это вопрос менеджмента.
И все-таки, есть ли шанс у других платформ?
Андрей Гурьев:
Если LEGO Education вообще не будет заниматься маркетингом и прочим, то все равно в ближайшие 5 лет точно у них никаких конкурентов не будет.
Именно с этой фразы начинается видео:
>> Читайте результаты сравнительного анализа и обзора робототехнических конструкторов, который провел Центр педагогического мастерства Москвы. В обзор вошли наборы от таких производителей как LEGO, Fischertechnik, VEX, ТРИК, ScratchDuino, Huna-MRT, RoboRobo и Амперки.
Замени мозги в Lego Mindstorms. Полный аналог микроконтроллера EV3
Идея заменить микрокомпьютер в конструкторе Lego Mindstorms на Raspberry Pi, Beaglebone, Arduino или другой не является новой. Но с выходом EV3 стало возможным не только получить 100%-ый аналог, но и повысить производительность вашего легоробота.
Lego — самый популярный образовательный конструктор. Но самый дорогой. Причин использовать неоригинальный микрокомпьютер вместе со стандартными деталями, двигателями и датчиками конструктора Lego может быть несколько.
- Аналог стоит дешевле.
- Необходимость купить отдельно микрокомпьютер, если, например, оригинальный из набора сломался, а прочие легодетали остались. Купить оригинальный EV3 отдельно может оказаться дорого или не так просто и быстро.
- Для проекта требуется несколько программируемых блоков, в том числе если не хватает стандартного количества портов на NXT и EV3.
- Расширение возможностей. Может быть, необходимо подключить какие-нибудь не Lego датчики, объединить в один несколько проектов, созданных на разных платформах, «подружить» Raspberry Pi и Lego.
- Требуется бОльшая производительность по сравнению со стандартными NXT и EV3.
- Наконец, это просто интересно,весело и круто.
Замена блока LEGO Mindstroms NXT
Для обмена данными между цифровыми устройствами и микроконтроллером NXT используется прокол I2C. Этот интерфейс популярен и используется во многих микропроцессорных устройствах. Поэтому, в принципе, технически возможно как подключить датчики сторонних производителей к блоку NXT, так и наоборот датчики и моторы Lego к другим микроконтроллерам. Чтобы не резать провода, лучше воспользоваться специально для этого разработанными адаптерами. Например, адаптер для соединения Lego и Arduino выпускает компания Dexter Industries.
Адаптер для подключения Lego и Arduino. Фото dexterindustries.com.
Но, конечно, недостаточно просто подключить устройства через адаптер. Нужно еще программное обеспечение для обмена данными. Примеры программ и для Arduino, и для блока NXT есть на сайте производителя.
Также Dexter Industries выпустила систему BriсkPi, позволяющую подключать датчики и двигатели Lego к одноплатному компьютеру Raspberry Pi. Система состоит из платы расширения (шилд) и корпуса.
Плата расширения (шилд) BrickPi, Raspberry Pi и корпус для них. Фото dexterindustries.com
Плата расширения имеет микроконтроллер — аналог Arduino. Проект с открытым исходным кодом — на сайте производителя выложено и программное обеспечение, и схема аппаратной части.
Вот пример робота, построенного с BrickPi:
Робот-рука из Lego и BrickPi
Видео-презентация BriсkPi:
Таким образом, замена блока NXT на Arduino, Raspberry Pi или другой одноплатный компьютер — интересная для энтузиастов идея, но 100%-ого аналога блока NXT так не получить, и придется работать в программной среде, отличной от Lego.
Замена микроконтроллера LEGO Mindstroms EV3
В начале 2013 года новая версия конструктора Lego Mindstorms EV3 получила операционную систему Linux. Поэтому стало возможным реализовать идею замены программируемого блока в конструкторе Lego на другие одноплатные компьютеры c Linux, и достигнуть при этом полной совместимости! В голову сразу приходит мысль попробовать Raspberry Pi и похожие — Beaglebone, Arduino Yun или Intel Galileo.
Мы обнаружили проект на Kickstarter, в котором блок EV3 заменили на одноплатный компьютер Beaglebone Black и достигли 100% совместимости как в аппаратной, так и программной части.
Авторы проекта — makerstudio.cc. Они создали плату расширения к BeagleBone Black для Lego Mindstorms и назвали ее EVB. К плате сделали корпус и экран, вообщем, сделали готовый продукт — аналог блока 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 имеет открытое описание всего программного обеспечения и аппаратных средств!
Исходный код Lego Mindstorms EV3 на GitHub .
Для примера, собран и продемонстрирован известный робот-сборщик кубика рубика. Только вместо EV3 установили разработанный EVB. Предлагаем посмотреть видео:
Авторы проекта уже выпускают и продают EVB. Существенно расширить производство планируют к концу апреля 2015. Кроме того, они разработали и производят несколько совместимых датчиков.
Почитать подробнее, а также поддержать проект можно на Kickstarter.
Спасибо Lego за открытый исходный код!
Авторы позитивны и открыты. Они честно признались, что самый главный в их команде вот этот кот.
Фото со страницы проекта на Kikstarter
Наиболее привлекательные цены на платы BeagleBone Black и Raspberry Pi на сайтах китайских магазинов AliExpress и DealExtreme . Действуют постоянные спецпредложения и бесплатная доставка в РФ. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазин Амперка.
Робот из LEGO и Arduino, обходящий препятствия
Мы обожаем LEGO и Crazy Circuits [LEGO-совместимая электроника / прим. перев.], поэтому решили скомбинировать их в простого и интересного робота, умеющего обходить препятствия. Мы покажем, как собрать такого робота и подробно опишем этот процесс. Ваша версия робота может не полностью совпадать с нашей.
Приводим список необходимой электроники и деталек LEGO. Не бойтесь экспериментировать с ними.
Комплектующие
Электроника
- 1 x плата Robotics Board от Crazy Circuits
- 2 x совместимый с LEGO сервомотор полного вращения
- 1 x ультразвуковой датчик расстояния HC-SR04
- 4 x джампер-кабеля «мама-мама»
- 1 x внешний источник питания с USB
Для нашего проекта мы подобрали небольшой внешний источник питания, уютно вписывающийся в нашего робота. Вам, возможно, придётся сконструировать свой вариант для своего внешнего источника питания, или для комплекта батареек.
Мы использовали различные детальки, а вам рекомендуем сделать так, как вы считаете нужным, и из того, что есть у вас на руках. Важно, чтобы у вас был способ приделать сервомоторы снизу, ультразвуковой датчик – так, чтобы он смотрел вперёд, и каким-то образом закрепить плату и источник питания. Для этого можно использовать двусторонний скотч, резинки, липучку. Приводим ссылки на наши детальки в магазине BrickOwl, однако вы можете купить их где угодно, где продаётся LEGO и совместимые наборы.
Шаг 1: строим шасси из LEGO
Мы начали с пластинки LEGO 6×12, это был минимальный размер, который нас устроил. Можно использовать более крупную, однако мельче уже будет сложнее.
Ширина робота определялась имеющимся у нас в наличии внешним источником питания, поскольку нам была нужна возможность вставлять его на место. Для аккумулятора большего размера потребуется робот большего размера.
Шасси должно быть достаточно высоким, чтобы на нём разместилась и батарея, и плата сверху.
Шаг 2: добавляем колёса
Каждый сервомотор нужно разместить снизу шасси. В итоге нам понадобились следующие комплектующие:
- Ось 4 LEGO со стопором (87083)
- Втулка LEGO (32123 / 42136)
- Круглый кирпичик LEGO 2 x 2 (3941 / 6143)
Для закрепления двух моторов нужно по 4 штуки каждой из комплектующих. После их закрепления добавляем колесо: LEGO Wedge Belt Wheel (4185 / 49750).
Как и с другими модельками LEGO, вариантов тут масса! У нас получилось с теми комплектующими, что мы перечислили, а вы можете попробовать что-нибудь другое.
Шаг 3: добавляем ролик
Наш ролик позволяет роботу кататься по плоскости на двух моторизованных колёсах, играя роль третьего колеса – так роботу легче поворачивать и двигаться.
Для его закрепления потребовались следующие детали:
- LEGO EV3 Technic Ball Pivots Set 5003245
- LEGO Technic Cross Block Beam 3 with Four Pins (48989 / 65489)
- LEGO Technic Brick 1 x 6 with Holes (3894)
В предыдущей версии мы использовали просто круглые детали LEGO в качестве «ноги», и на гладкой поверхности это работало нормально. Но не работало на ковре или не гладком полу. Если у вас нет ролика, рассмотрите вариант с такой «ногой».
Шаг 4: добавляем датчик расстояния
Ультразвуковой датчик расстояния нужно закрепить на передней части робота, чтобы он «видел», куда едет, и понимал, когда нужно остановиться, чтобы не столкнуться с препятствием.
Для датчика мы распечатали совместимый с LEGO корпус на 3D-принтере. Модель выложена на сайте Thingiverse: www.thingiverse.com/thing:3171004
Если 3D-принтера у вас нет, придумайте, как удержать датчик при помощи деталек LEGO, клейкой ленты, резинок, хомутов и т.п. Важно, чтобы он смотрел прямо – туда, куда едет робот, когда движется вперёд.
Шаг 5: добавляем плату
Плата – мозг всей операции. Она размещается наверху кубиков LEGO, поэтому её крепить легко.
Обычно плата Robotics Board используется совместно с проводящей плёнкой, позволяющей мастерить электрические цепи прямо поверх LEGO, но поскольку у нас тут всего лишь два мотора и датчик расстояния, их можно подключить напрямую к штырькам на плате.
Плату размещаем так, чтобы USB-кабель питания было легко воткнуть. Нам повезло найти в коробке с кабелями очень короткий USB-кабель.
Теперь можно подключать датчик и моторы!
По датчику: разъём echo нужно подключить к контакту 3 на плате, разъём trigger – к контакту 5, VCC – к 5 В, Gnd – к GND. Таким образом датчик будет получать питание и общаться с платой.
Затем нужно подключить каждый из моторов. Это сделать легко – коричневые провода на GND, красные – на 5 В, оранжевые – к контакту D6 для левого мотора и D9 для правого.
Шаг 6: программируем Robotics Board
Перед тем, как робот сможет работать, нужно загрузить код в микроконтроллер. Перед этим убедитесь, что у вас на компьютере установлена последняя версия Arduino IDE.
Свой код мы выложили в репозиторий на GitHub:
Код простой, в нём много комментариев, чтобы было понятно, что за что отвечает.
Вам также потребуется библиотека NewPing
Шаг 7: пускаем робота погулять
Построив робота и загрузив в него код, можно переходить к испытаниям!
Проще всего подключить внешний источник питания и дать роботу возможность ехать вперёд. Если выставить перед ним руку, он должен отодвинуться назад, повернуться и снова поехать вперёд (смотрите, чтобы он не съехал со стола!)
Мы построили простую шестиугольную «арену» из картона, чтобы роботу было где поездить. Не бойтесь экспериментировать с тем, что есть у вас.
Шаг 8: дальнейшее развитие
Если вам интересно развивать этот проект, вот вам вопросы:
— что вы узнали, собирая робота?
— что повлияло на ваш выбор деталей?
— поедет ли робот быстрее, если увеличить ему колёса?
В коде есть две переменных, исправив которые, вы измените время отката робота назад при обнаружении препятствия, и время, которое он будет поворачиваться. Попробуйте поменять goBackwardTime и turnRightTime и посмотреть, как это повлияет на поведение робота.