Соревновония Lego роботов 1.Соревновония Lego роботов 2.

Роботы - это не только Lego

Аватар пользователя Овсянников Алексей Юрьевич

Школьная робототехника - это не только конструкторы Lego Mindstorms! Существует еще множество различных конструкторов и наборов, из которых можно собирать и программировать роботов. Все они разного уровня готовности, подразумевают различные принципы программирования и конструирования. Пожалуй, самыми популярными и развитыми среди этих наборов можно считать конструкторы на базе плат Arduino и подобных ей.

Здесь стоит немного рассказать об истории и идеологии проекта Arduino. Проект был запущен в 2005 году. Изначально это были только лишь платы с микроконтроллерами и периферией для них. Вполне обычное явление - подобное существовало всегда, и как отладочные платы, призванные показать в действии все функции и возможности микроконтроллера, и как заготовки под реальные устройства (зачем долго мучиться, придумывать и изготавливать плату, чтобы проверить всего одну какую-либо функцию? достаточно взять "полуфабрикат", подключить к нему свою периферию и правильно запрограммировать). Именно со второй целью и были разработаны платы Arduino. Но они имели одну отличительную черту - распространение по принципу open hardware.

Подобный принцип подразумевает свободный доступ любого желающего ко всей документации на плату: электрические схемы, используемые элементы, передаваемые платой сигналы, программы контроллеров  и так далее. Более того, разобравшись во всей этой системе, любой желающий может делать такие же точно платы, с такими же точно элементами и программами. Единственное ограничение, которое наложили разработчики - при копировании нельзя оставлять название "Arduino", придется делать свои платы под другим именем. Хитрые "списывальщики", чтобы подчеркнуть "родство" своих плат с оригинальной Arduino, в своем названии просто меняют приставку, оставляя duino. Поэтому всё семейство подобных плат принято обозначать следующим образом: *duino (то есть любые символы в начале, вместо звездочки). Например: ORduino, CraftDuino.

Популярность Arduino среди пользователей обусловлена не только простотой и удобством работы с ней (для ее программирования не нужны были специальные устройства-программаторы, достаточно было подключить ее к компьютеру по USB, как обычный принтер или сканер). Разработчики не сидели сложа руки: они активно писали документацию, выпустиили свою собственную среду программирования, постоянно обновляли, улучшали и расширяли аппаратную базу. В какой-то момент они запускают производство на конвейере: десятки тысяч плат в год. Имея такую поддержку, многие и многие пользователи начали сперва копировать оригинал, а потом и расширять его функции - делать совместимые платы раширения (так называемые шилды; стоит отметить, что подобные платы официально разрабатывает и сама компания Arduino). Документацию начали активно переводить на все языки мира, стали появляться статьи, в которых описывался опыт работы с платами.

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

Так как народные умельцы применяли платы *duino для конструирования роботов всех вариантов и мастей, то в какой-то момент в продаже появились конструкторы, содержащие не только платы, но и датчики, а так же элементы механики: моторы, двигатели, платы расширения, колеса, стойки и элементы крепления для всего этого, диск с программным обеспечением, документацию и т.д. В общем, получался полноценный набор для конструирования роботов.

Единственной "ложкой дёгтя" можно считать стандартную прошивку и среду программирования: скорость выполнения скетчей (так в этой среде принято называть программы для контроллера) значительно уступает программам, написанным напрямую для микроконтроллера. Так, операции, которые при обычном методе программирования микроконтроллеров выполняются за один-два такта, в Arduino официально выполняются за 25-40 тактов. Что называется "почувствуйте разницу". И так со всеми операциями: смена выходных сигналов, считывание входящих, обработка прерываний, считывание данных АЦП и т.д.

Из отечественных разработок можно выделить платы CraftDuino. Проект интересен еще и тем, что на официальном сайте можно найти не только описания плат, но и множество интересной информации о роботах, их программировании, опыте преподавания робототехники на базе наборов Arduino. Стоит отметить прекрасные статьи о работе с контроллером Microsoft Kinect и программировании искусственного зрения с использованием библиотеки OpenCV - рекомендуются к изучению всем опытным робототехникам.

Вторым интересным отечественным проектом является продукция фирмы "Амперка". Компания является крупнейшим в России продавцом официальной продукции Arduino, но кроме этого еще и разрабатывает собственные робототехнические конструкторы. Эти конструкторы активно продвигаются в учебных заведениях всех уровней и типов. На сайте проекта представлена, пожалуй, самая подробная и интересная информация об устройствах и наборах *duino на русском языке.

На Всероссийском молодежном робототехническом фестивале "РобоФест 2013" компания "Амперка" обеспечивала призовой фонд, и некоторые из победителей и призеров уже начали делитсья опытом использования их конструкторов.

В завершение еще раз напомню, что проект Arduino не стоит на месте, а активно развивается. Так, если раньше основой, "мозгом", плат являлись микроконтроллеры ATMega различных модификаций, то в последнее время появились платы на базе процессоров архитектуры ARM. Подобные платы производста других фирм давно уже представлены на рынке, но Arduino может предложить удобную среду программирования, понятную даже для старшеклассников.