roboforum.ru

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

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

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

Сергей » 26 окт 2008, 15:05

Какой набор команд или какие команды, на ваш взгляд, более всего востребованы в серво-контроллере?
Пишем только по теме, флуд буду чистить.

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

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

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

blindman » 26 окт 2008, 16:52

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

----------------
Now playing: Андрей Макаревич и группа "Папоротник" - Когда откричат крикуны (из к/ф "Шизофрения")

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

Сергей » 26 окт 2008, 17:23

тогда лучше задавать от 0 и до макс., чтобы возьни не было

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

avr123.nm.ru » 26 окт 2008, 19:51

Я бы предложил команды протокола и т.п. вот этого сервоконтроллера с публичными исходниками и прошивками на ATmega8 -168
на 32 серво и больше
http://www.lynxmotion.com/images/html/proj078.htm
Есть и прога - секвенсор движений, и еще секвенсор делают на "соус фодж"

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

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

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

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

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

Myp » 06 ноя 2008, 23:06

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

буржуи блин :(

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

Duhas » 07 ноя 2008, 09:46

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

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


юзай асм, там оптимизация круче :crazy: :crazy: :P

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

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

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

Гы, писал в IAR - было все прекрасно и в один момент перестало работать как нада ) Пишу - проверяю ок, пишу - проверяю ок, пишу - чото не то, откат - чото не то, откат - чото не то. Вообщем мораль такова что IAR это особая уличная магия. avr-gcc форева =)

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

avr123.nm.ru » 24 дек 2008, 22:58

И что в итоге ? Каков набор ?

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

Сергей » 24 дек 2008, 23:13

Больше ничего не придумал(и). Пока реализовал эти функции. На практике сейчас есть готовый модуль, прошивка( осталось под i2c забить команды )

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

Digit » 25 дек 2008, 09:45

Сергей, может тогда в вику это все? сведешь к общему знаменателю так сказать... или оно там есть уже? :crazy:

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

Сергей » 25 дек 2008, 20:24

а что сводить? Набор команд только? Или ты имеешь ввиду прошивку и схему модуля?

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

Digit » 26 дек 2008, 09:21

ну да. схему, прошивку, набор команд и текстик с описанием :oops:


Rambler\'s Top100 Mail.ru counter