roboforum.ru

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


SERVO Набор команд

Обсуждение и примеры готовых и самосборных компонент для построения роботов.

SERVO Набор команд

Сообщение Сергей » 26 окт 2008, 15:05

Какой набор команд или какие команды, на ваш взгляд, более всего востребованы в серво-контроллере?
Пишем только по теме, флуд буду чистить.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: SERVO Набор команд

Сообщение blindman » 26 окт 2008, 15:27

1. Установить длительность импульса i-й сервы
2. Установить длительность импульса для центрального положения i-й сервы
3. Установить длительность импульса для положения i-й сервы -90°
4. Установить длительность импульса для положения i-й сервы +90°
5. Установить положение i-й сервы в градусах
6. Перейти к определенному положению i-й сервы за N секунд

команды 2,3,4 задают параметры, которые используются для вычисления длительности импульса при исполнении команд 5, 6. команды 2,3,4 можно объединить в одну.

Можно также предусмотреть команды для одновременного управления несколькими сервами. Например, переместить серву 1 в -65°, серву 2 в 28°, серву 3 в 90°, при этом весь маневр должен занять 1.5 секунды

----------------
Now playing: Pink Floyd - Another Brick In The Wall
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: SERVO Набор команд

Сообщение Сергей » 26 окт 2008, 16:41

Вид пакета будет примерно таким тогда
[ cmd | data ] а также просто
[ cmd ]
где рамерность cmd составляет 1 байт.

Также думаю необходимо задать команды инициализации. Далее вид команд приведен для примера и не являеца окончательным
- Включение подачи сигналов
[ 0xFF ]
- Соответственно, отключение
[ 0x00 ]
- Reset, сброс
[ 0x0F ]
- ( Инициализация ) Задача параметров для данного типа серво. К примеру, у HS-311 -45° это 900мкс а +45° это 2100.
[ 0x01 | min_angle | max_angle | min_pulse | max_pulse ] ,где min_angle и max_angle 1 байт, а min_pulse и max_pulse 2 байта. Точнее будет выглядеть так
[ 0x01 | min_angle | max_angle | min_pulse_high | min_pulse_low | max_pulse_high | max_pulse_low ] Также думаю можно будет сохранять первую инициализацию в eeprom, и при следующем включении, если не задана повторно команда то загружать последние значения из eeprom. И допустим можно будет написать загрузчик, который будет ждать команд инициализации в течение 1 сек, далее нельзя будет их применить, только сбросив контроллер или както так.

blindman писал(а):1. Установить длительность импульса i-й сервы

Да, естественно. К примеру можно так
[ cmd | length | servo_num | servo_pulse | ... ], где length( 1 байт ) количество серво для которых меняем длительность, servo_pulse 2 байта

blindman писал(а):5. Установить положение i-й сервы в градусах

[ cmd | length | servo_num | servo_angle | ... ], где servo_angle 1 байт

blindman писал(а):2. Установить длительность импульса для центрального положения i-й сервы
3. Установить длительность импульса для положения i-й сервы -90°
4. Установить длительность импульса для положения i-й сервы +90°

Да, объединяем в одну, соответсвтенно это есть команда инициализации приведенная выше.

blindman писал(а):6. Перейти к определенному положению i-й сервы за N секунд
Можно также предусмотреть команды для одновременного управления несколькими сервами. Например, переместить серву 1 в -65°, серву 2 в 28°, серву 3 в 90°, при этом весь маневр должен занять 1.5 секунды

Тут нада подумать.

И насчет углов, типа servo_angle, как задавать то? Либо мы учитывает -45° +45° либо сразу говорим от 0 до 90
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: SERVO Набор команд

Сообщение blindman » 26 окт 2008, 16:52

Наверно по умолчанию +-, но можно ввести дополнительный параметр который смещает нулевую точку на +- N градусов

----------------
Now playing: Андрей Макаревич и группа "Папоротник" - Когда откричат крикуны (из к/ф "Шизофрения")
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: SERVO Набор команд

Сообщение Сергей » 26 окт 2008, 17:23

тогда лучше задавать от 0 и до макс., чтобы возьни не было
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: SERVO Набор команд

Сообщение avr123.nm.ru » 26 окт 2008, 19:51

Я бы предложил команды протокола и т.п. вот этого сервоконтроллера с публичными исходниками и прошивками на ATmega8 -168
на 32 серво и больше
http://www.lynxmotion.com/images/html/proj078.htm
Есть и прога - секвенсор движений, и еще секвенсор делают на "соус фодж"
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: SERVO Набор команд

Сообщение Сергей » 06 ноя 2008, 21:48

Ап. Какие еще есть мысли? Я почти все реализовал что было предложено.

Добавлено спустя 2 минуты 38 секунд:
Кстати, начал юзать IAR - оптимизация у них супер, и код быстрее в некоторых местах работал быстрее на ~100мкс!
Короче код скомпилил в WinAVR и в IAR, помню цифры примерно, первый выполнился за 5.125 мс а второй за 4.988 мс - это на 3% меньше.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: SERVO Набор команд

Сообщение Myp » 06 ноя 2008, 23:06

пошарил по инету на счёт ворованого сиквенсора
нету чтото ни в торентах ни в ослике

буржуи блин :(
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: SERVO Набор команд

Сообщение Duhas » 07 ноя 2008, 09:46

Сергей писал(а):Ап. Какие еще есть мысли? Я почти все реализовал что было предложено.

Добавлено спустя 2 минуты 38 секунд:
Кстати, начал юзать IAR - оптимизация у них супер, и код быстрее в некоторых местах работал быстрее на ~100мкс!
Короче код скомпилил в WinAVR и в IAR, помню цифры примерно, первый выполнился за 5.125 мс а второй за 4.988 мс - это на 3% меньше.


юзай асм, там оптимизация круче :crazy: :crazy: :P
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: SERVO Набор команд

Сообщение Сергей » 07 ноя 2008, 15:58

Я и на асме писал, просто проверять алгоритм лучше на Си, более наглядно. Может когда все будет готово - перепишу на асм. Так, чтото не туда едем, давайте по теме.

Гы, писал в IAR - было все прекрасно и в один момент перестало работать как нада ) Пишу - проверяю ок, пишу - проверяю ок, пишу - чото не то, откат - чото не то, откат - чото не то. Вообщем мораль такова что IAR это особая уличная магия. avr-gcc форева =)
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: SERVO Набор команд

Сообщение avr123.nm.ru » 24 дек 2008, 22:58

И что в итоге ? Каков набор ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: SERVO Набор команд

Сообщение Сергей » 24 дек 2008, 23:13

Больше ничего не придумал(и). Пока реализовал эти функции. На практике сейчас есть готовый модуль, прошивка( осталось под i2c забить команды )
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: SERVO Набор команд

Сообщение Digit » 25 дек 2008, 09:45

Сергей, может тогда в вику это все? сведешь к общему знаменателю так сказать... или оно там есть уже? :crazy:
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: SERVO Набор команд

Сообщение Сергей » 25 дек 2008, 20:24

а что сводить? Набор команд только? Или ты имеешь ввиду прошивку и схему модуля?
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: SERVO Набор команд

Сообщение Digit » 26 дек 2008, 09:21

ну да. схему, прошивку, набор команд и текстик с описанием :oops:
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

След.

Вернуться в Готовые модули

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

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