roboforum.ru

Технический форум по робототехнике.

Серво-контроллер

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Серво-контроллер

Сообщение -= Александр =- » 30 янв 2006, 21:39

Наконец-то я затарился сервами и скоро начну строить контроллер на 12 серв. Скорее всего с контролем тока каждой сервы. Все это дело планирую уместить на двух контроллерах: Т26 и Т2323 (на одном никак, надо 12 каналов АЦП.) Интерфейс будет двойной: I2C или RS-232. Первое время для отладки через ком-порт, а в дальнейшем для использования на роботе через I2C. Кому данная тема интересна - прошу высказаться. Так-же обдумываю мысль не городить огород и сделать 2 контроллера по 6 серв, оба как законченные устройства. И тертий - мост I2C в RS-232.

З.ы. Когда все будет готово - возможно мелкосерийное изготовление.  :wink:
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение Kanoka » 30 янв 2006, 22:46

Мне интересно!
Сразу несколько предложений и вопросов:

два МК на одной плате сервоконтроллера как то не серьезно, делать на одном, серв сколько получится.

Контроль тока зачем?

I2C полностью согласен, не помешает.

И последнее, знаю что будешь против, но нужен USB.
Kanoka
Модератор
 
Сообщения: 1274
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение -= Александр =- » 30 янв 2006, 23:00

А USB-то зачем? Для серв и ком вполне сойдет. Конечно можно USB в виде быстрого кома на FTDI, но это я думал реализовать на отдельной плате I2C-USB. Вообще идея: все сделать через I2C. Тогда будет легко подключить всю систему не к контроллеру, а через USB или СОМ к ПК. а ставить USB на каждый серво-контроллер нет смысла. Лучше собрать их в кучу и подключить через одну плату к ПК.

Контроль тока нужен чтоб спасти серву при заклинивании или понять на каких ногах робот стоит, а какие без смысла в воздухе висят. В общем полезно знать нагрузку на каждой серве.

Буду делать именно 2 контроллера по 6 серв. Но при желании их легко будет доделать и до 8ми и больше, но без контроля тока.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение =DeaD= » 30 янв 2006, 23:09

Аналогично имею интерес, готов помочь, чем смогу.

Так-же считаю что нужно:
1. Как минимум делать версию с одним контроллером, для тех кому не нужно миллион серв.
2. Датчик тока абсолютно никуда не уперся - по крайней мере я видел кучу всяких датчиков, которые никто не пользует - можете ли вы показать датчики такого типа, которые бы активно кем-то пользовались, типа этих датчиков тока?
3. Про I2C - да.
4. Про USB - мое мнение, как человека имеющего у себя дома кучу плат (3 платы для управления каждая 4 сервами, 1 плата акселерометра и одна интерфейсная - 8+8 входов, 8 выходов) с этим самым USB-портом - нафиг это не надо для девайса такого типа - нужен один переходник USB<=>I2C и все, или центральный МК с выходом на USB.
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение -= Александр =- » 30 янв 2006, 23:39

Датчик тока - это простой резистор на 0.5-5 Ом хорошей мощности. На нем мерится напряжение и пересчитывается в ток. Я так уже делал с двигателями, для серв тоже подойдет.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение Kanoka » 31 янв 2006, 00:10

Складывается впечатление что мы говорим о разных вещах, по вашему чем отличается сервоконтроллер от просто контроллера?
Kanoka
Модератор
 
Сообщения: 1274
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение =DeaD= » 31 янв 2006, 00:18

Kanoka писал(а):Складывается впечатление что мы говорим о разных вещах, по вашему чем отличается сервоконтроллер от просто контроллера?

Тем, что он предназначен для управления сервоприводами...
Ожидается что это будет уже готовое решение с прошивкой, печатной платой с выходами для подключения сервоприводов и разъемом для подключения управляющего девайса.

Мы же не говорили про "серво-контроллер-с-компьютера" :)

По-моему USB не самый лучший вариант для подключения множества устройств одновременно, как бы красиво не выглядели USB-хабы на 7 портов :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение Kanoka » 31 янв 2006, 00:34

Вот именно, контроллер с прошивкой, серво коннекторами, без разъема для программатора но с разъемом для подключения к компьютеру. Это законченное решение для постройки манипулятора, все что нужно это подключить к нему сервы, а его подключить к компьютеру.
Kanoka
Модератор
 
Сообщения: 1274
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение -= Александр =- » 31 янв 2006, 00:38

Идея вот какая: создать девайс, в который будет приходить номер сервы и значение ее положения. По какому порту - пока не важно. Так-же девайс пожно опросить на предмет "какой ток идет через такую-то серву". USB в роботах - штука бесполезная. Да, хорошая скорость, но геморроя столько, что проще уж параллельные интерфейсы использовать если приспичит скорость огромную получить. Да и со стороны ПК я с USB работать не умею. А ком-порт он простой как топор и никто его не отменял.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение -= Александр =- » 31 янв 2006, 00:43

Актуальные вопросы:
1) Контроллер. Т2313 или М48 или что-то такое. Не сильно здоровое, но и не Т26, его явно маловато будет.
2) Интерфейсы. Я склоняюсь в сторону I2C (и RS-232 для отладки)
3) Количество серв и всякие доп.функции. (Для себя буду делать на 6 серв)

Вообще кто с сервами имеет опыт: что бы еще полезно в этот контроллер запихнуть?  :roll:
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение =DeaD= » 31 янв 2006, 08:43

Kanoka писал(а):Вот именно, контроллер с прошивкой, серво коннекторами, без разъема для программатора но с разъемом для подключения к компьютеру. Это законченное решение для постройки манипулятора, все что нужно это подключить к нему сервы, а его подключить к компьютеру.


Это уже не просто сервоконтроллер, это "stand-alone сервоконтроллер" - гораздо более специализированная вещь.

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

-= Александр =- писал(а):Идея вот какая: создать девайс, в который будет приходить номер сервы и значение ее положения. По какому порту - пока не важно. Так-же девайс пожно опросить на предмет "какой ток идет через такую-то серву". USB в роботах - штука бесполезная. Да, хорошая скорость, но геморроя столько, что проще уж параллельные интерфейсы использовать если приспичит скорость огромную получить. Да и со стороны ПК я с USB работать не умею. А ком-порт он простой как топор и никто его не отменял.


Скорость то зачем здесь огромную в задаче про сервы? :)

-= Александр =- писал(а):Актуальные вопросы:
1) Контроллер. Т2313 или М48 или что-то такое. Не сильно здоровое, но и не Т26, его явно маловато будет.
2) Интерфейсы. Я склоняюсь в сторону I2C (и RS-232 для отладки)
3) Количество серв и всякие доп.функции. (Для себя буду делать на 6 серв)

Вообще кто с сервами имеет опыт: что бы еще полезно в этот контроллер запихнуть?  :roll:


1. Контроллер самый "любой" - лучше универсальный типа "Мега8" в кроватке - чтобы можно было при особом желании вытащить и запользовать "куда-то еще". Самый дешевый смысла нет пользовать  -ибо опять доступность и пользуемость в других местах будет хромать.

2. Интерфейс I2C - это однозначно, потому что шина. Никакой RS232 или USB шиной не является. Устройства такого типа должны вешаться на шину.

3. Количество серв - ввиду пункта 2 любое, какое влезет. Но почему не 8?

4. Ну опыт он конечно есть - датчик тока не сильно нужен:
4.1. Это сильно усложнит схему и печатку (посчитайте сколько доп. элементов будет нужно на 8 серв);
4.2. Откуда любой человек знает какой ток соответствует усилию сервы во внештатном режиме? Будет руками её ломать? :)
4.3. Сначала попробуйте просто сделать чтобы оно бегало, а потом можно будет и модифицированную версию делать. А на концы ног лучше поставить датчики давления, хоть типа переключателя, ибо может быть так, что серва в режиме удержания ноги на весу будет хавать больше тока, чем при стоянии на этой ноге.
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение avr123.nm.ru » 31 янв 2006, 11:35

-= Александр =- писал(а):
Датчик тока - это простой резистор на 0.5-5 Ом хорошей мощности


неплохой номинальчик !

========

-> Упражнения - задачи по курсу AVR


А че не взять готовый открытый проект на 32 сервы с софтом для ПК и секвенсором для шестинога.

SSC-32 Servo Controller ATmega8

http://www.lynxmotion.com/images/html/proj078.htm

все исходники выложены.

и еще в google море

напрмер

Microrobot ATmega8 MR-SERVO8 CPU Board

http://www.microrobotna.com/mrservo8cpu.htm

Похоже упорно не желают люди изучить существующие велосипеды перед изобретением нового.

тут: http://www.robotstorehk.com/avr/avr-RS-SERVO8.html
с исходниками инструкцией и руководством по WinAVR.

вот результат моих поисков серво контроллеров в интернете:
Вложения
servo_control.jpg
servo_control.jpg (48.28 КиБ) Просмотров: 8007
Последний раз редактировалось avr123.nm.ru 15 сен 2006, 04:25, всего редактировалось 1 раз.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

сервоконтроллер

Сообщение Evgeny » 31 янв 2006, 14:31

привет

lynxmotion - самый правильный выбор - наиболее грамотный код из всего что публиковалось кстати там в коде есть hexapod sequencer
опять же в том варианте подключения остается куча ног свободных и процессор не сильно занят

на 16 серв я выкладывал печатку на соседней ветке

по поводу измерения тока - может ограничиться 6 датчиками - на каждую ногу ? - тогда и меги хватит

по поводу шунтов - у твоих сервух ток в заторможенном состоянии  до 2 ампер
кстати очень удобно использовать 1 ом резисторы 1206 спаянные этажеркой


Evgeny
Evgeny
 
Сообщения: 133
Зарегистрирован: 08 фев 2005, 15:48
Откуда: СПб

Сообщение =DeaD= » 31 янв 2006, 15:14

Все-таки скажите куда вам эти датчики тока? Почему нагрузка на серву когда нога поднята будет обязательно меньше, чем когда робот на неё опирается?
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение -= Александр =- » 31 янв 2006, 15:19

Потому что когда нога висит в воздухе - она уже достигла заданного положения и мотор работает на его подержку (довольно слабенький ток) а когда она уперлась и не достигла положения - мотор работает на всю катушку. Это уже опытным путем проверено, разница токов такая, что точно можно понять застряла нога или нет.
Берешь серву и амперметр. Даешь серве средний сигнал - она отработала и остановилась. Чем сильнее ты на нее начнешь давить тем больше будет ток... С места она не сдвинется, но ток будет менятьться.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

След.

Вернуться в Наши проекты

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

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