Micro Maestro 6-Channel USB Servo Controller

Все, что посвящено фотографированию со змеев (kite aerial photography)

Модераторы: Сергей Грибовский, Boris

Сообщение
Автор
yurik_ryba
летатель
Сообщения: 233
Зарегистрирован: Ср окт 27, 2010 9:03 pm

Micro Maestro 6-Channel USB Servo Controller

#1 Сообщение yurik_ryba » Чт фев 17, 2011 12:42 am

Контроллер очень маленький, площадью с карточку SD, весит всего 3 грамма.

Изображение

В комплекте ничего не идет, инструкция и драйвер с управляющей программой находятся на сайте Pololu
http://www.pololu.com/file/0J266/maestro_windows_100706.zip

Инструкция хоть и на английском, но написана хорошо и понятно.
Установка достаточно простая, скачали - запускаем setup, далее пара кликов и все.

К компьютеру Maestro подключается кабелем USB mini-B, у меня от фотоаппарата подошел. Питается контроллер от USB, у сервомашинок должно быть свое питание.
Чтобы можно было использовать контроллер отдельно от компьютера, нужно припаять проводочек как на схеме, чтобы запитать плату контроллера от подключенных батарей питания для серво. После этого контроллер сможет питаться от батарей, при этом USB не будет мешать при подключении.
Изображение

В принципе по схеме в инструкции все понятно как подключать:
Изображение
Подключаем серво в разъемы channel. Питание серво в разъем servo power (обозначен ВАТ на плате). USB в компьютер.

Запускаем Maestro Control Center. Программа автоматически находит контроллер и подключается к нему. На плате начинает быстро моргать зеленый диод (соединение USB активно).

Идем на закладку Channel Settings.
Изображение
Номерами с 0 по 5 обозначены каналы подключения серво. Они так же пронумерованы на плате. В поле Name их можно подписать для удобства. Я свои подписал Pan Servo и Tilt Servo.

Min-Max задают границы значений посылаемых Maestro импульсов. Я их оставил по умолчанию. Speed и Acceleration задают скорость и ускорение, с которыми серво на данном канале будет переходить в другое состояние. Это НЕ скорость серво. Это скорость с которой одна команда будет меняться на другую. Оставил по нолям, значит моментально. Хотя если хочется плавных переходов, можно поиграться с этими настройками.
В Mode выставляем режим работы канала (для серво - Servo).
С другими настройками пока не разбирался.

Далее идем на вкладку Status:
Изображение

Флажки под Enabled включают и выключают каналы (и соответственно подключенные к ним сервы).
Ползунки двигают серво. С немодифицированными все просто. Среднее положение ползунка - среднее положение сервы. Двигаем ползунок в одну сторону - серво вращается в эту сторону, в другую - серво вращается в другую. Крайние положения ползунка = крайние положения серво. Также перемещения можно задавать, вводя значения в Target.
С модифицированным на 360 гр. серво немного сложнее. Сначала его нужно выставить на нейтраль. Я делал так:
1) Включил канал сервы - она начала вращаться.
2) Поставил ползунок в среднее положение.
3) Отрегулировал потенциометр сервы так, чтобы она перестала вращаться.
Модифицированная серва управляется с контроллера так:
Среднее положение - стоп. Смещение от среднего положения начинает движение в эту сторону, причем чем дальше смещается ползунок, тем выше скорость вращения. Вращение модиф. сервы идет без остановки, пока не поступит следующая команда.

Теперь самое интересное: как программируется.

1) Выставляем на закладке Status действие для каждого серво, например движение в одну из сторон.
2) Нажимаем кнопку Save frame 0
3) Выставляем следующее действие, например остановку в нейтральном положении, или движение в обратную сторону. Или же можно отключить канал - это тоже действие.
4) Нажимаем кнопку Save frame 1
И так далее...

Все сохраняемые фреймы автоматически переносятся на вкладку Sequence(Последовательность):
Изображение
Там эти действия можно именовать, а также устанавливать продолжительность каждого в миллисекундах, удалять, менять местами. Можно составить несколько разных последовательностей. Тут ограничивает только творческая фантазия.

После того, как нужная последовательность или несколько последовательностей составлены, нажимаем кнопку Copy to script. Открывается окно скрипта, он уже составлен для вас программой. Можно редактировать команды, а также пошагово выполнять скрипт.
Отмечаем флажок "Run script at startup" и нажимаем кнопку Apply settings. Скрипт записывается в память контроллера.
Готово. Контроллер можно отключать и отсоединять.
Скрипт будет автоматически запускаться при подаче питания на контроллер.

Вот и все, что пока нарыл :) Описал как смог, высоким штилем не обучен к сожалению :)

Anvil
летатель
Сообщения: 192
Зарегистрирован: Пт дек 17, 2010 11:48 am

#2 Сообщение Anvil » Чт фев 17, 2011 10:45 am

Круто!
Где же мой контроллер? :twisted:

Есть мысли как сделать спуск затвора на кэноне через юсб? Через микросхемку сервы?

lalex
небожитель
Сообщения: 740
Зарегистрирован: Сб май 01, 2010 10:32 pm
Откуда: Москва+Крым

#3 Сообщение lalex » Чт фев 17, 2011 10:47 am

Здорово! Буквально новая эра открывается... ;)
Вы уже это все протестировали? Работает, ну, со скриптом и управлением модифицированных? После ваших пояснений выглядит достаточно просто для непосвященных.
И еще вопрос - по скриптам-командам документация там есть? Ведь понадобится не просто записать последовательность, а циклы организовать, наверное.

2Anvil: через USB вот тут описано, без сервы можно.

tchio
летатель
Сообщения: 283
Зарегистрирован: Чт июн 08, 2006 4:25 pm
Откуда: Москва

#4 Сообщение tchio » Чт фев 17, 2011 11:09 am

yurik_ryba!! Это мегакруто! буду заказывать полюбому, даже если не получится реализовать задуманное, хоть поиграю)) В принципе можно запрограммировать спуск затвора механикой от 3-ей сервы! там же столько свободных каналов!! Вот вопрос, можно ли реализовать задержку после запуска??

Anvil
летатель
Сообщения: 192
Зарегистрирован: Пт дек 17, 2010 11:48 am

#5 Сообщение Anvil » Чт фев 17, 2011 11:12 am

Документация просто обязана быть и думаю по ссылке на софт ее можно найти )

через USB вот тут описано, без сервы можно

Дело в том что сервопривод управляется не напряжением, а импульсами длиной от от 1 до 2 мс. а питание подано постоянно 4.8-6 вольт.
Так что напрямую контроллером подавать на USB напряжение скорее всего не получится, хотя надо пробовать.
А вот через внутренности сервы на проводах к мотору можно получать напряжение от нуля до 4.8-6 вольт.

tchio
летатель
Сообщения: 283
Зарегистрирован: Чт июн 08, 2006 4:25 pm
Откуда: Москва

#6 Сообщение tchio » Чт фев 17, 2011 11:35 am

Anvil писал(а): А вот через внутренности сервы на проводах к мотору можно получать напряжение от нуля до 4.8-6 вольт.

очень обидно, что этот CHDK работает только для кэнонов(( у меня Пентах! может можно и у других моделей управлять затвором через юсб?? ни кто не в курсе?

Anvil
летатель
Сообщения: 192
Зарегистрирован: Пт дек 17, 2010 11:48 am

#7 Сообщение Anvil » Чт фев 17, 2011 11:58 am

Есть спец девайсы с помощью которых можно рулить камерой через её спец разъем.

yurik_ryba
летатель
Сообщения: 233
Зарегистрирован: Ср окт 27, 2010 9:03 pm

#8 Сообщение yurik_ryba » Чт фев 17, 2011 7:42 pm

Anvil писал(а):Есть мысли как сделать спуск затвора на кэноне через юсб? Через микросхемку сервы?

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

Документация есть, и даже есть SDK http://www.pololu.com/docs/0J41
Последовательность зацикливается проставлением одной галочки :)
Все сделано так, чтобы человек без опыта программирования мог быстро разобраться и работать.
Касательно тестирования, я уже практически собрал подвеску с 2мя сервами (одна модифицированная на Pan и одна обычная микро на Tilt).
Изображение
Все работает и крутится как задано программой. Но возникла одна проблема.
Микро серву почти после каждого поворота трясет по дикому. Пока не нашел причину, мне кажется что питания недостаточно - у меня аккумуляторы подают 4,8 вольта и при разряде наверное еще меньше. Попробую батарейки - они по идее должны 6 вольт давать.
Серва по документам с крут. моментом 3кг/см. Должно хватать за глаза.
"Чешу репу", в общем :)
tchio писал(а):yurik_ryba!! Это мегакруто! буду заказывать полюбому, даже если не получится реализовать задуманное, хоть поиграю)) В принципе можно запрограммировать спуск затвора механикой от 3-ей сервы! там же столько свободных каналов!! Вот вопрос, можно ли реализовать задержку после запуска??

Поиграться да, интересно было. Я долго игрался сервами на столе :)

Я себе на управление спуском заказал GentLed shutter для NEX-5. Повешаю его на третий канал и буду канал вкл./выкл.

Задержка после запуска делается так:
Отключаем все каналы серво (чтобы ток не потреблялся)
Сохраняем фрейм.
На закладке Sequencer ставим для этого фрейма нужное время задержки в миллисекундах.

tchio
летатель
Сообщения: 283
Зарегистрирован: Чт июн 08, 2006 4:25 pm
Откуда: Москва

#9 Сообщение tchio » Чт фев 17, 2011 7:55 pm

yurik_ryba писал(а):Я себе на управление спуском заказал GentLed shutter для NEX-5. Повешаю его на третий канал и буду канал вкл./выкл.

Задержка после запуска делается так:
Отключаем все каналы серво (чтобы ток не потреблялся)
Сохраняем фрейм.
На закладке Sequencer ставим для этого фрейма нужное время задержки в миллисекундах.
Юрий! А можно еще раз в личку по-русски, я ведь старый совок и фреймов не разумею((

yurik_ryba
летатель
Сообщения: 233
Зарегистрирован: Ср окт 27, 2010 9:03 pm

#10 Сообщение yurik_ryba » Чт фев 17, 2011 9:11 pm

tchio писал(а):Юрий! А можно еще раз в личку по-русски, я ведь старый совок и фреймов не разумею((


Нет, в личку писать не буду. Если непонятно, давайте разбирать здесь. Я знаю что на форуме есть как минимум 2 человека, которым это тоже очень интересно.

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

Каждый сохраненный кадр переносится на вкладку Sequence - это наша кинолента (последовательность). При нажатии на play воспроизводится вся кинолента. Машинки начинают двигаться, повторяя сначала и до конца все "нарисованные" вами кадры. Причем для каждого кадра можно установить длительность в миллисекундах. По умолчанию программа ставит 500, то есть полсекунды.

Вернемся к задержке перед началом.

Для ее реализации наш первый кадр будет ничего не делать. Вообще.
На закладке Status мы отключаем все каналы, то есть снимаем все галочки под Enabled(Включено). Сохраняем кадр нажатием "Save Frame 0".
Переходим на вкладку Sequence. Там в списке только один-единственный наш кадр Frame 0. Щелкаем по нему курсором мышки два раза, появляется окно настроек кадра.
Меняем 500мс на нужное время. Нажимаем ОК.
Вот и вся наука.

lalex
небожитель
Сообщения: 740
Зарегистрирован: Сб май 01, 2010 10:32 pm
Откуда: Москва+Крым

#11 Сообщение lalex » Чт фев 17, 2011 11:15 pm

"Все сделано так, чтобы человек без опыта программирования мог быстро разобраться и работать. "
Я человек с опытом программирования, и мне легче скрипт сочинить-дополнить, чем 500 галочек поставить ;) Описания языка по ссылке не нашел. Если у вас каким-нибудь образом сгенерится этот самый скрипт, то скиньте образчик, если несложно. Хочется поглядеть как это выглядит - если он вообще у них есть, текстовой интерфейс. Пока не похоже - возможно, бинарная последовательность команд и ее только через интерфейс можно менять.

SDK это для тех, кто хочет своим программам доступ дать, переходной мостик. Это уж слишком, хотя если разобраться в библиотеках-объектах...

yurik_ryba
летатель
Сообщения: 233
Зарегистрирован: Ср окт 27, 2010 9:03 pm

#12 Сообщение yurik_ryba » Чт фев 17, 2011 11:29 pm

Вот описание языка из инструкции:
http://www.pololu.com/docs/0J40/6

lalex
небожитель
Сообщения: 740
Зарегистрирован: Сб май 01, 2010 10:32 pm
Откуда: Москва+Крым

#13 Сообщение lalex » Чт фев 17, 2011 11:56 pm

Спасибо, то что надо. Забавно организовано... Первый же примерчик умиляет:

"begin
900 100
led_on delay
led_off delay
repeat"

Чувствуешь себя уже проникшим в тайны сервомеханики :D Наверно, можно еще как вариант, интерфейс себе поставить и погонять вхолостую, без аппаратуры. Попробую на досуге.
Расскажете потом, как оно у вас работает... Или может, покажете даже - все равно тестировать в кабинетных условиях :)

Anvil
летатель
Сообщения: 192
Зарегистрирован: Пт дек 17, 2010 11:48 am

#14 Сообщение Anvil » Пт фев 18, 2011 12:13 am

Тоже пролистал примеры скриптов.
Что понравилось - можно менять тип канала на "вход" и подключать к нему кнопку, переключатель или потенциометр.
А если учесть что сервами заняты всего два канала.
То появляется куча комбинаций положений 4-х кнопок, т.е. разные алгоритмы. Там уже наверное ограничение по памяти будет работать.
Возможности широчайшие.
И угораздило мою посылку потеряться...
yurik_ryba, вы тоже на www.robotshop.su заказывали?

yurik_ryba
летатель
Сообщения: 233
Зарегистрирован: Ср окт 27, 2010 9:03 pm

#15 Сообщение yurik_ryba » Пт фев 18, 2011 12:28 am

Anvil писал(а):yurik_ryba, вы тоже на www.robotshop.su заказывали?

Не, я у производителя брал, мну они ближе. Доставка 2 дня заняла.

Мне пока интереснее работа канала на "выход", мне ведь надо будет "моргать" диодом для спуска. В инструкции описан способ подключения диода. Вроде все просто, посмотрим.


Вернуться в «> kap»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость