В процессе обучения в университете решил разнообразить занятия по программированию. Потому что писать обычные программы, которые что-то выводят в консоль, или та же работа с графической библиотекой, не дает такого восторга как программирование роботов. Вот запрограммируешь робота и он двигается. Хоть и есть пара-тройка своих (самодельных) роботов, но самоделки зачастую требуют ремонта и постоянной поддержки (вечно что-то ломается, самодельная библиотека, сбои). И, вообще, давно хотел познакомиться с другими, более мощными микроконтроллерами.
Но изучив рынок готовых модулей, стало понятно, что самой доступной, популярной и понятной платформой для практики в программировании это Arduino. Но роботы на этой платформе меня не очень интересовали, т.к. я уже имел опыт работы с подобными. Lego Mindstorm тоже не вдохновлял на эксперименты, так как из него уже вырос. Немного поспрашивав своих друзей-робототехников, узнал об Pololu 3pi, который подходил под некоторые мои задачи. Удовольствие обошлось в 3 500 рублей, с одной стороны дороговато, с другой попробуй найди лучше по цене и качеству.
По виду совсем небольшой, и компактный робот. Размеры примерно 10x10x1,5 см (длина, ширина, высота). Такой и на ладони уместится. Но как и положено «нормальным» роботам, к нему, прилагались: пара бумажек по эксплуатации, перемычки, светодиоды и прочее. Но лучше показать.
К сожалению, к этому роботу не поставляется программатор. Его надо приобретать отдельно. Если говорить о модели программатора, то здесь два очевидных пути:
1. Есть программатор специально для 3pi, это Pololu USB AVR Programmer.
2. Либо программатор Orangutan USB Programmer, который предназначен как для 3pi, так и для робота Orangutan
Вообще оба программатора подойдут для прошивки 3pi. Можно конечно попробовать и второй вариант, вдруг, если вы захотите купить робота Orangutan. Тут будет играть роль универсальность. Также перед покупкой, советую запастись 4 аккумуляторами типа АА, т.к. такое добро производители не включили в поставку.
Теперь можно обратиться и к аппаратным характеристикам самого робота. Начнем с самого животрепещущего, с микроконтроллера! На борту имеем микроконтроллер фирмы Atmel ATMega328. Здесь, если внимательно вглядеться в даташит (http://www.atmel.com/devices/atmega328.aspx?tab=documents), то можно увидеть, что к платформе, оборудованной таким микроконтроллером, можно много чего подключить при необходимости (если взяться за паяльник и впаять штырьки для разъемов (о способах расширения см. далее)). Такой процессор работает на частотах до 20Mhz, имеет 32Кб Flash памяти и 2 Kб RAM. Вполне достаточно, чтобы заставить робота выполнять такие задачи как езда по линии, выход из лабиринта и вообще стать неплохим выбором для соревнований по робототехнике.
Подвижная часть 3pi состоит из двух моторчиков, двух шасси и одной пассивной шаровой опоры, свободно вращающейся в 2-х направлениях. Правда для преодолений препятствий, вроде горки, их не хватит, но для быстрого маневрирования очень даже подойдет.
Посмотрим, как робот видит этот мир. Помогают ему в этом ИК-датчики, расположенные на нижней стороне робота. Далее, на картинке, красным обозначены те самые ИК-датчики QTR-RC, которые помогают роботу реагировать на черную или белую поверхность, следовательно, может следовать маршруту по заданным условиям (следование по линии).
Таким образом, как уже выяснилось ранее, базовое назначение 3pi — это «следование по линии». Но датчики можно использовать и для других задач. Если прочитать руководство пользователя, то можно узнать, что с официального сайта можно закачать целую библиотеку с различными программами. Да и начальная прошивка присутствует в наборе примеров, а также в роботе тоже есть тестовая программка. В ней предлагается разобраться с алгоритмами управления, например, в алгоритмах прохождения лабиринтов и т.д. Но если немного вникнуть в проблему оснащения вашего «железного» друга дополнительными датчиками, то поле для фантазии существенно расширяется. А если совсем стало тесно на стандартной плате, то можно приобрести плату расширения для дополнительной периферии в качестве второго яруса.
Поговорим о прошивке робота. Для людей, у которых это первый робот первый, советую перед прошивкой ознакомиться:
1. С руководством, т.к. там знающие люди предупреждают, что аккумуляторы надо полностью зарядить перед использованием, иначе может произойти непоправимое (робот сгорит как в конце фильма «Терминатор 2»), либо просто выключится в момент прошивки, что также неприятно. Также там говорится о мерах избавления от статического электричества. Это самый первый и важный шаг в «общении» с роботом.
2. А пока заряжаются аккумуляторы, надо бы установить среду разработки и компилятор. В этом случае нам понадобятся следующие программы (что касается Windows):
a. Среда разработки AVR Studio, которую также можно загрузить с сайта http://www.atmel.com/tools/AVRSTUDIO4.aspx
b. Компилятор WinAVR http://winavr.sourceforge.net/
c. Библиотеку 3pi
http://www.pololu.com/docs/0J20/3.a
Для Linux все сложнее, но если сильно захотеть, то можно почитать руководство по этой теме. Как раз это будет очень полезным опытом, а что немаловажно, поводом, чтобы изучить английский язык, который является универсальным и необходимым инструментом при знакомстве с другими руководствами на английском. Ведь таких большинство. (http://www.pololu.com/docs/0J20/4.c). На русском языке инструкцию можно посмотреть тут http://www.electronshik.ru/card/robot-pololu-3pi-robot-110438?utm_source=Robocraft&utm_medium=banner&utm_term=pololu&utm_campaign=robocraft-pololu
Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…
0 комментариев на «“Pololu 3pi Robot – хороший старт”»
Хороший обзор.
По моему 32Кб это довольно много. Я зимой делал часы на AtMega16, с 16Кб. Реализовал вывод цифр на крупные сегментные индюкаторы, меню с десятками пунктов, вывод времени восхода и захода солнца, три отдельных будильника в разовом, ежедневном режиме, или по календарю, собственно календарь и температуру на знакосинтезирующий дисплей; еще на звонке Deep Purple. И все это заняло около 70% памяти.