Под катом мы попытались как-то обобщить и систематизировать наш опыт по выбору платформы для занятий с детьми. Если вы организуете кружок робототехники, возможно, вам это будет полезно.
К прошлой серии было много справедливых замечаний, по такому случаю я полностью переработал материал.
Введение
Платформы для создания роботов, как правило, включают в себя следующие компоненты:
- механика;
- периферийная электроника;
- управляющий модуль;
- софт (среда разработки).
Платформы бывают закрытыми (Lego, Fishertechnic) и открытыми (Arduino, Multiplo), можно так же выделить промежуточные варианты (Huna). Свойством закрытых является то, что их компоненты плохо совместимы с другими платформами, и очень редко находятся любители, например, подцеплять к Лего какие-то отдельные датчики; поэтому закрытые платформы имеет смысл рассматривать целиком, для открытых мы каждый из четырех перечисленных выше компонентов рассмотрим отдельно.
Лего
Сначала лирическое отступление.
В свое время я был одним из самых счастливых детей в Екатеринбурге, потому что отец привез мне из Германии целый чемодан Лего (тогда в России его еще совсем мало было). И я думаю, это очень здорово повлияло на мое умственное развитие — мелкая моторика, пространственное
Итак, главное достоинство леговской механики — это скорость сборки. Наверно, раз в десять выше, чем на винтах, раза в два выше, чем на заклепках. По большому счету главный соединительный элемент Lego Technic — это та же заклепка, которую не нужно зажимать, раскрывается сама за счет упругости:
Второй элемент — ось с крестообразным сечением:
По сути это заменитель винта, только “гайки” на ней не закручиваются, а держатся за счет продольного трения.
Плюс к этому в Лего есть специальные детали для сборки некоторых специфичных узлов, например, дифференциала. Все это позволяет быстро собирать очень сложные механизмы, и для детей это действительно здорово. Жаль только, что не навсегда мы остаемся детьми, и вот тогда возникает проблема: во взрослой жизни такие соединения нигде не используются, и плавный переход с Лего на что-то другое, насколько мне известно, еще никому не удавалось реализовать. Кроме того, возникает еще одна неприятность, с которой я сам при взрослении столкнулся: в Лего все из коробки подогнано идеально, до микронов, ребенок к этому привыкает, принимает как данность. В реальности для такой точности нужно прикладывать огромные усилия, и я этому уже в студенчестве долго учился, кажется, до сих пор толком не научился.
Управляющий модуль у Лего скучный.
С одной стороны, он очень прочный, почти не ломается, с другой имеет всего 8 разъемов и туда не влезает ничего, кроме кроме фирменных леговских проводов (кстати, насколько я знаю, самая ломкая часть). Разумеется, штатно с ним работают только леговские датчики и моторы.
С точки зрения преподавателя Леговская электроника самая малохлопотная: все легко подключается, почти никогда ничего не ломается, однако и простора для творчества очень мало.
Поскольку Лего — это большая компания, об инфраструктуре она позаботилась: подавляющее число соревнований по робототехнике имеют ограничение — только Лего.
Кроме того проводится множество разных конференций и мероприятий для преподавателей.
Резюме следующее: вещь невероятно классная, это действительно так, однако, как и для всех игрушек, чем раньше ребенок с нее соскочит, тем лучше, по нашему опыту седьмой класс — в самый раз. Так же Лего — единственный конструктор, который не требует от преподавателя серьезной технической подготовки. Ну а еще по идеологии своей он очень похож на Майкрософт, некоторые Майкрософт не любят.
Fishertechnic
habrahabr.ru/company/neuronspace/blog/243929/
Если я правильно понимаю, история с этим конструктором произошла следующая: Лего очень удачно запатентовало свои соединения и Алану Фишеру не оставалось ничего, кроме как использовать какое-то не слишком подходящее для этих целей соединение (кажется, “ласточкин хвост” оно называется).
По этой причине какие-то простые механизмы на Fishertechnic делать не очень удобно, но зато там есть множество специальных элементов, с которыми можно делать совершенно невероятные вещи: пневмоприводы, хемотроника, ионисторы, электрохимические суперконденсаторы и др. (подробнее см. ссылку выше). Кроме того, есть специализированные наборы, моделирующие то или иное производство.
В целом идеология Fishertechnic повторяет идеологию Лего, все-таки это игрушка, но очень технически продвинутая.
Кроссплатформенные управляющие модули
Сначала немного терминологии. Вся переферийная электроника для взрослой робототехники имеет стандартные разъемы, работает по стандартным протоколам. Fishertechnic, Лего и другие закрытые продукты создает искусственные препятствия для подключения через эти разъемы и протоколы. Продукты по-проще, например, Raspberry, хотя и не являются опенсорсными, но все стандарты поддерживают. Вообще по нашему опыту в данном случае опенсорсность железа не имеет столь большого значения: все разъемы стандартны, среды разработки тоже стандартны и, как правило, опенсорсны, и железная прокладка между ними существенной роли не играет, переход на другую железку никаких проблем не вызовет. Здесь еще можно по-рассуждать о нашей миссии по развитию опенсорсного железа, но для краткости опустим это, к теме не очень относится.
Итак, управляющие модули можно разделить на 2 категории: ардуино-подобные (с простым контроллером) и Rapberry-подобные (с полноценным Линуксом на борту).
Преимущества ардуино:
- Низкая цена.
- Быстрый старт: воткнул USB-провод, открыл среду разработки, загрузил пример, поехали. С Raspberry придется еще помучиться: образ на карточку загрузить, подключиться, настроить автозапуск скриптов и т.д.
- Большее удобство подключение периферии (например, на плате уже есть аналоговые входы, к Raspberry АЦП подключить сложно), большое количество разнообразных шилдов.
- Низкое энергопотребление.
Преимущество Raspberry в том, что это полноценный Линукс, благодаря этому поддерживаются все популярные языки программирования, можно пускать параллельные процессы, запускать их по крону, подключать разные девайсы по USB, запускать разные софтины, например, для обработки изображение, есть веб-сервер, короче, полный комплект радости ИТшника из коробки. Отдельно отмечу поддержку языка Python. Это наиболее перспективный учебный язык программирования, на западе учебные заведения постепенно переводят на него свои учебные программы, C++ в образовании — это прошлый век.
По сравнению со своими аналогами Raspberry является самой распространенной и дешевой, по характеристикам последняя ее версия аналогам ничем особо не уступает, поэтому мы работаем с ней.
Среди ардуин мы выбрали Uno, поскольку, опять же, самая распространенная и дешевая (в Китае стоит порядка 30 юаней или ~ 300 рублей). Характеристики у нее не самые, но нам вроде хватает.
Направление, над которым мы сейчас работаем — это совмещение Raspberry и Ардуины, нам оно кажется наиболее перспективным.Существуют следующие варианты:
- Интегрирование разъемов арудино в плату, аналогичную Raspberry (например). Таким образом Raspberry лишается своего недостатка неудобства подключения внешних устройств.
- Подключение к оригинальной Raspberry специального переходника с разъемами ардуино (например). Это дает те же преимущества, что и в предыдущем пункте, плюс к этому появляется дополнительная гибкость: можно отцепить этот переходник и использовать оригинальные разъемы Raspberry (редко, но с ними тоже бывает удобнее). Кроме того, если одна плата сгорит, это не помешает продолжить использовать другую.
- Интегрирование в одну плату процессора Raspberry, процессора и разъемов ардуино (http://www.udoo.org/). Помимо преимуществ из предыдущих пунктов такая схема дает преимущества двухпроцессорной схемы, некоторые вещи на ней делать гораздо удобнее.
- Специальная плата ардуино, имеющая разъем для подключения к Raspberry (например, Arduberry). Помимо преимуществ предыдущего пункта это дает гибкость.
- Подключение ардуины к Raspberry через USB. Не так удобно, как предыдущий вариант, скорость передачи данных ниже, зато гораздо дешевле. Собственно это то, над чем мы сейчас работаем.
Отдельно упомянем контроллер Трик:
Вроде как единственная отечественная разработка. В него уже встроены драйверы моторов, и разные сенсоры. Штука классная, но уж очень дорогая.
Конструкторы
Можно выделить три основных направления работы детей в сфере робототехники:
- Сборка электрических схем с микроконтроллером. Соответствующие комплекты поставляет, например Амперка: wiki.amperka.ru/
- Сборка и программирование простейших машинок, типа такой: amperka.ru/product/turtle-chassis. В основном эти машинки занимаются тем, что ездят по нарисованной линии (лайнфоловеры).
- Сборка более сложных механизмов из конструкторов, о них далее и пойдет речь.
Мы работаем с Multiplo.
Во-первых, он, кажется, единственный опенсорсный. Во-вторых, дешевый. В-третьих, основные детали можно самому вырезать с помощью лобзика и дрели.
Из других конструкторов наиболее популярен Huna (кстати, вроде бы отчасти российская разработка):
Трик предлагает неплохой конструктор, но, опять же, уж очень дорогой.
Общий принцип у всех конструкторов примерно один и тот же: плоские детали и уголки соединяемые винтами, по сути старый советский железный конструктор. При этом у каждого свои особенности: в Мультипло основные детали вырезаны из трехмиллиметрового пластика + маленькие алюминиевые уголки + пластиковые заклепки; в Huna плоский металл дополняется объемными пластиковыми деталями, похожими на Лего; Трик просто очень массивен.
Заключение
Наш выбор — ардуино + Raspberry + Multiplo. Цена самая низкая, простор для творчества самый большой. В то же время от преподавателя требуется очень высокая квалификация.
Вообще мы работаем с детьми с третьего класса, но это скорей исключение, все-таки до седьмого класса нужно что-то другое, типа Лего или Fishertechnic.
Автор: ddavydov