ФИРМА POLOLU



РОБОТ ИССЛЕДОВАТЕЛЬ РОБОТ НА RP5


Фирма Pololu поставляет микроконтроллеры Orangutan, Maestro, сенсоры, эффекторы, роботы для студенческой практики и дистрибутируется во всем мире. C библиотекой AVR Library Pololu можно ознакомиться при помощи графического эмулятора, имитирующего микропроцессор в связке с роботом. Программа с эмулятора переносима на реальный робот программатором фирмы Atmel.

Микроконтроллер SV-328


Контроллер Orangutan SV-328 включает в себя микропроцессор ATmega328P, который работает на частоте 20 MHz, два двунаправленных порта двигателя, каждый из которых способен обеспечить 1А (продожительно), съемный (8 символов х 2 строки) жидкокристаллический дисплей, зуммер, пользовательские три кнопки и два светодиода.

Восемь входов/выходов IO широкого применения могут быть использованы для подключения датчиков или расширения системы. Обозначение каналов слева направо: РС5, PC4, PC3, PC2, PC1, PC0, PD1 и PD0. Orangutan SV-328 работает при питании 6-13,5 В и имеет 5V-вый импульсный регулятор, позволяющий выдавать до 3А при управлении RC servos непосредственно от его выхода. Микроконтроллер SV328 может управлять сервоприводом любым своим IO выходом (which allows the 5V bus to deliver up to 3 A - enough to power servos), но это требует адекватного программирования (что нелегко).


Не следует программировать микроконтроллер при полуразряженных аккумуляторах. Дисплей удобен при отладке, однако полезно знать, что шины дисплея и программатора совмещены. Одна из мер, помогающих оживить программатор, это вытянуть дисплей из гнезда 3Pi. Некоторые баги библиотеки: обращение к дисплею при реверсе второго мотора у Orangutan провоцирует reset, вызывая останов или неравномерное вращение гусениц. Кнопки совмещены и работают при отключенном программаторе.

Примечание: у 3pi робота, Orangutan SV, Orangutan LV-168, и Baby Orangutan B, красный светодиод (LED) на том же пине, что и UART передатчик (PD1/TXD). Когда AVR не передает байты по TXD, красный светодиод горит, иначе он мерцает. Основное назначение контроллера Orangutan SV-328 – управление гусеницами, поскольку полноценное управление еще и сервами с использованием готовой библиотеки ведется старшей моделью с номером 1284. Существует еще миниконтроллер серв Маэстро.

Микроконтроллер SVP 1284


SVP-1284 имеет отдельные гнезда для управления двумя 1-амперными моторами гусениц (управляемых не по положению, а по скорости) и строенные штеккеры для подключения серв (младшие версии микроконтроллеров этого сервиса не имеют).


Микроконтроллер Orangutan SVP-1284 вырабатывает управляющий сигнал для серв на ножке PD5. Чтобы управлять несколькими сервами ножка PD5 разветвлена мультиплексором на 8 порций по 3 штырька (для соединения трехжильных кабелей): GND (грунт), красный средний - питание (Vcc), желтый - управляющий сигнал (Servo). Согласно описанию orangutan_svp.pdf питание Vcc=+5 вольт подключается к средней клемме сервомоторчика (по опыту - D-MG16) на плате с помощью синего джампера.

Для управления микроконтроллером через USB-СОМ порт устанавливается Pololu USB-to-serial driver.

Программирование


Существует специальный ISP-программатор, который включается в легко узнаваемую колодку с MOSI-MISO. На рисунке ниже для большей ясности изображен первый примитивный микроконтроллер ряда ATmega8 и программатор.


Чтобы запрограммировать микроконтроллер, на него подается питание от 6 до 13 вольт (синяя колодка). Недонапряжение чревато порчей контроллера. Рядом с колодкой есть кнопка включения питания и синий светодиод индикации. Внешний ISP-программатор не требует установки обновлений на Windows (SP3). Программа в кодах hex записываться с его помощью - через AVR-студию легко, как файл на флэшку. Если программатор связывается с комьютером, но не видит устройства, то это связано обычно с неправильной установкой в студии типа микросхемы контроллера.

Можно использовать сервис: встроенный USB AVR ISP программатор (прилагается USB A to mini-B кабель), но он потребует установки обновления Service Pack 3 для Windows XP и ставятся драйверы программатора. По крайне мере первый сеанс работы нужно проводить из админ-панели, иначе может блокироваться операция настройки ISP, причем в режиме AVR GCC (не ассемблирования). Этот путь громоздок и рекомендуется при отсутствии программатора. Распространенный модуль STK500 осваивается заметно проще, но стоит вдвое дороже.

Стандартная библиотека


AVR-Студия имеет готовую библиотеку программ, она скачивается и ставится (поставлена, описание ее). Программа Orangutan Servo Control Functions позволяет опробовать серву в работе.

Первый ее пример прост, видно, как устанавливается скорость и поворот сервы на заданный угол по if-условию нажатия кнопки TOP_BUTTON (delay_ms – задает паузу, в микросекундах). На плате микроконтроллера есть 3 кнопки для отладки софта. Программа сводится к вызовам подпрограмм установки скорости и положения в вечном цикле ожидания нажатия кнопки while, для ее понимания не нужно глубокое знание C. Первая задача – запрограммировать и посмотреть, вертит ли штучка головой.



Итак, управление у сервы импульсное, по сигнальному проводу. Для того, чтобы повернуть серву на нужный угол ей надо на вход подавать импульс с нужной длительностью. Т.е. управляем не уровнем, а протяженностью сигнала, что проще устроить на дискретном выходе микроконтроллера.

Микроконтроллер управления сервами МАЭСТРО


У pololu есть микроконтроллер только для серв, называемый Маэстро. Он дешевле отмеченного (который управляет еще и гусеничными моторами).



6-ти КАНАЛЬНЫЙ | ДРАЙВЕР | ПРИМЕРЫ СЦЕНАРИЕВ | РУКОВОДСТВО




Раскладка выводов платы: привод питается отдельно




Питание привода от батареи (несовместимо с программированием)


При питании от батарей (GND и к VIN подвести 5В) необходимо отсоединять батарею перед каждым программированием, при этом питания лишается и серва, но ее можно временно запитать через колодку servo power отдельно. В отладочном режиме серву с током не более 20 МА разрешается подпитывать от USB отдельным проводом +5В (out) к точке servo power (земля и питание), общее потребление с контроллером в таком случае достигает 50 МА.

ГНЕЗДА ПОД ОБЖИМ, ШТЫРИ СОЕДИНЕНИЙ



Варианты гнезд BLS3, BLS2 c полоской контактов под обжим



Штыри PLS-40

Робот Pololu 3Pi


Pololu 3Pi robot это мобильная, высокопроизводительная платформа обладающая двумя металлическими мотор-редукторами, пятью отражающими сенсорами, один LCD дисплеем, зуммером, тремя кнопками, и все это соединяется с C/C++ програмируемым ATmega168 или ATmega328 микроконтроллером. С ипользованием навесной платы сверху это основа для построения роботов-кукол (ноги куклы).


Начиная с серийного номера 0J5840, 3Pi роботы поставляются с новым ATmega328P микроконтроллером, различия по отношению к прежнему варианту составляют 32 KB flash, 2 KB RAM, and 1 KB of EEPROM, так что код, написанный для младшей версии процессора, должен работать с минимальными модификациями и на ATmega328. Возможная скорость может достигать 1м/с.

Размещение элементов на плате управления несколько отличается от того, что есть у отдельного робоконтроллера.


Робот оснащен по бордюру датчиками, позволяющими на высокой скорости ощущать гоночную трассу. Вызов подпрограммы pololu_3pi_init(2000) устанавливает интервал опроса в линейке датчиков 2000*0.4 us = 0.8 ms.


Навесное оборудование цепляется по UART (PD0 и PD1). Удалением джамперов высвобождаются два аналоговых входа и один аналоговый/дискретный вход/выход, которые не вполне свободны функционально. Через PC5 в библиотеке управления роботом подпитываются эмиттеры инфракрасных датчиков, поэтому помимо джампера нужно делать поправки в софте. Аналоговые входы ADC6 и ADC7 ориентированы на контроль напряжения питания и положения триммерного потенциометра. Удаление LCD-экрана полностью освобождает три пина (PB0, PD2, and PD4). Также PB1, PB4, PB5 и PD7 доступны для ограниченного использования. Ножки PB1, PB4, and PB5 соединены с тремя пользовательскими кнопками, а к PD7 подпаян зеленый светодиод LED пользователя.


Подведем итоги. Пины PD0 и PD1 полностью свободны (для TTL-коммуникации включая). Ножки PC5, ADC6 и ADC7 высвобождаются удалением джамперов. PC5 может использоваться как аналоговый вход или в роли дискретного входа-выхода, тогда как ADC6 и ADC7 рассматриваются исключительно как входы. Ножки PB0, PD2 и PD4 становятся полностью свободными дискретными I/O линиями при удалении LCD, тогда как такие же функционально PB1, PB4, PB5 и PD7 частично свободны, если внимательно следить, чтобы не было альтернативного использования. Важно отметить, что PB4 и PB5 задествованы программатором.



ОПИСАНИЕ



Роль локатора играют бордюрные сенсоры. Отличается выносливостью, приземистой формой, хорошими динамическими свойствами. Ночной вид (подсветка)



БИБЛИОТЕЧНЫЙ СЭТ


Добавим зрение-sharp и bluetooth-связь


В разделе сети по беспроводной связи приведено описание bluetooth микросхемы WT12 для управления роботом с компьютера. Микросхема вместе со стабилизатором питания на 3.3 вольта умещается в коробочку от телефонной розетки


К плате припаивается розетка и первые четыре провода (земля, питание VCC и UART PD0, PD1) идут к WT12. Оптопара подключается туда же с помощью трехжильного JSR-кабеля: на рисунке красным проводом подключено питание, средний провод – земля, а белый отвечает информационному сигналу ADC7. Джампер подключения ADC7 к триммерному потенциометру вытягивается.



Для плавности движения скорость работы двигателей 3Pi задается как можно меньше, причем направления вращения колес у него одинаковое при одинаковых по знаку управляющих воздействиях. Добавление оптопары разнообразит поведение, программа беспроводного управления и адаптации помещена ниже. Тележка видит кота и ведет себя неагрессивно, она несколько мала, чтобы кот на ней катался.


Буфер UART закольцован, при выявлении 'C'-'O'-'M' последовательности символов следующий байт (COM) управляет моторами: 0 – стоп, 1 и 2 – повороты, 3 – адаптивное движение с анализом сигналов от сенсора расстояния, 4 – реверс (задний ход). Ответная передача данных датчика производится по принятии кода перевода каретки.



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


Учет края стола


Следующая идея состоит в том, чтобы проверять низовые датчики и при виде пропасти давать сигнал на разворот. В этой версии программы информационный канал расширен, комьютер и робот обмениваются векторными данными. На робот поступает команда, а он отвечает дистантными оценками. Низовые датчики расположены по бордюру, поэтому эффективность управления повышается изменением скорости и направления разворота в сочетании с реверсом.





Со стороны компьютера робот управляется Visual MatLab, система формирует интерфейс, обработывает сигналы и, главное, взаимодействует с интернет.






Rambler's Top100