+7-960-0655211 (Билайн)
+7-987-4207734 (МТС)
интернет-магазин
доставка по России и СНГ
работаем с 2010 года

Форум

ГлавнаяОбщениеФорумТехнологииСервоприводы. Какой лучше?
Страницы: 1
Сервоприводы. Какой лучше?
 
Добрый день, форумчане.
Уже почти полностью собрал робота-паучка с 8-ю ногами. Осталась реализовать программную часть, но вопрос не об этом.
После месяца поисков, еше в самом начале своего проекта, увидел в продаже сервоприводы MG995.
Почитав несколько обзоров, решил их приобрести.
Сначала всё шло замечательно. Снял все размеры с приводов, сконструировал и собрал корпус, прикрутил все приводы.
Масса готового устройства составила чуть больше 3 кг (приблизительно 3300 гр без аккумулятора (Li-Po 10000 mA 7,2V - 500 грамм)) и тут пошлю траблы.
Один из приводов перестал держать уровень, вернее держит, но очень слабо, прокручивается при небольшом усилии (около 500 грамм).
Остальные - пока держат, но чувствую что не долго будут держать.
Покупал за 225 рэ за штуку.
К Новому году скорее всего буду искать замену.
Подскажите, какие посоветуете поставить приводы со стабильной тягой в течении продолжительного периода. По тяге - желательно 10 кг в стабильном режиме. И естесственно - не дорогие, можно даже на ebay.com.
Как один из вариантов hs-645mg, но цена пока кусается немного.
Или HK-15298 (15 кг) (http://rcsearch.ru/hobbyking/i16271/)
 
Цитата
Максим Фиронов пишет:
Или HK-15298 (15 кг)
Лучше http://rcsearch.ru/hobbyking/i16272/.
Цитата
Максим Фиронов пишет:
Сначала всё шло замечательно.
Среди сервоприводов куча брака (15-25%). Тот что плохо держит - смело на запчасти, а его мотор на свалку.
Цитата
Максим Фиронов пишет:
Остальные - пока держат, но чувствую что не долго будут держать.
Расскажите как вы организовали энергопитание сервов - это архиважно!!! Даже БП от ПК на 5V может не хватить для работы.


Если хотите больше полезной информации, то подробнее опишите вашу конструкцию (материал, соединения, конструкция ног).
 
По энергопитанию.
Все приводы запитаны от одного аккумулятора 6 вольт 12 ампер. В планах перейти на Li-Po (http://www.ebay.com/itm/310726872076?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649)

Материал соединений - текстолит толщиной 2 мм (это верхняя и нижняя планки в самом плече). Соединены с помощью латунных стоек для плат. Материал двух суставов - дюралюминий 0,8 мм.
Сама конструкция ноги - примерно такая, как на рисунке (http://habrastorage.org/storage2/8fa/345/91e/8fa34591ea132609ed2d2a83f4bf64c6.jpg), но без эстетического вида.

Корпус платформы - две плоскости текстолита. К верхней плоскости смонтированы приводы, в нижней части фиксация через подшипники.

Вся конструкция получилась прочной, но легкой. Общий вес приводов - 1440 грамм (60 гр / привод), остальное - конструкция (детали ног - 60х8=480 + коробка - 300 гр). Сверху всего установлен ПК (200 гр) и камера (100 гр).

Получившийся размер платформы - 25 см в ширину и 30 см в длину (без ног). Размах ноги - 15 см.
В общем, вес где-то 2600 - 3000 грамм без аккумулятора.
 
Цитата
Максим Фиронов пишет:
Все приводы запитаны от одного аккумулятора 6 вольт 12 ампер.
Уточните что за аккумулятор?

Цитата
Максим Фиронов пишет:
Сама конструкция ноги - примерно такая
Желательно добавить и тягу позади приводов как здесь.
Цитата
Максим Фиронов пишет:
После месяца поисков, еше в самом начале своего проекта, увидел в продаже сервоприводы MG995.
У них тяга колеблется от 6-8кг*см, десяти там не будет.
 
Аккумулятор GS 12-6 (свинцово-кислотный). Это пока временно.
Ваша ссылка на тягу - фотка очень маленькая ... плохо видно.

Цитата
Сергей Скляров пишет:
У них тяга колеблется от 6-8кг*см, десяти там не будет.
Да мне лишь бы поднять и перемещать. Единовременный контакт с поверхностью - три-четыре ноги. Нагрузка на каждую 3-4 кг (в планах).
 
Ну так как лучше поступить?
Поменять все приводы на HK15298B (http://rcsearch.ru/hobbyking/i16272/)
или на HS-645MG (http://planetahobby.ru/catalog/servo/analogovye-servo/hs-645mg-standartnaya.html)?

Есть ли какая-нибудь программа по расчёту нагрузки на приводы?
 
Из всех 27 сервов HK15298B оказалась 1/3 бракованными, но тяга у них очень хорошая. Сразу предупреждаю что они могут поворачивать только на угол 90 градусов.
 
Добрый вечер.
У меня появилась загвоздка.

Код
DEVICE="/dev/ttyACM2"

N_TARGET=$1 # Количество одновременно управляемых каналов

N_CHANNEL1=$2 # Номер первого канала в цепочке

TARGET11=$3 # Угол поворота 
TARGET12=$4 # Угол поворота 
TARGET13=$5 # Угол поворота 

N_CHANNEL2=$6 # Номер второго канала в цепочке

TARGET21=$7 # Угол поворота
TARGET22=$8 # Угол поворота
TARGET23=$9 # Угол поворота

N_CHANNEL3=$10 # Номер третьего канала в цепочке

TARGET31=$11 # Угол поворота
TARGET32=$12 # Угол поворота
TARGET33=$13 # Угол поворота

N_CHANNEL4=$14 # Номер четвертого канала в цепочке

TARGET41=$15 # Угол поворота
TARGET42=$16 # Угол поворота
TARGET43=$17 # Угол поворота

byte() {
printf "\\x$(printf "%x" $1)"
}


{
byte 0xAA                    #Start Byte
byte 0x0C                    #Device ID = 12
byte 0x1F                    #Command = Set Multiple Targets # Команда управления несколькими сервами
byte $N_TARGET               #0x02 #Number of targets = 2 # Количество управляемых каналов одновременно
byte $N_CHANNEL1             #0x00 #First channel number = 0 # Номер первого канала в цепочке
byte $(((TARGET11*36+2048) & 0x7F))      #0x70 #First target low bits <- First SERVO
byte $(((TARGET11*36+2048) >> 7 & 0x7F)) #0x4E #First target high bits
byte $(((TARGET12*36+2048) & 0x7F))      #Second target low bits <- Second SERVO
byte $(((TARGET12*36+2048) >> 7 & 0x7F)) #Second target high bits
byte $(((TARGET13*36+2048) & 0x7F))      #Thread target low bits <- Second SERVO
byte $(((TARGET13*36+2048) >> 7 & 0x7F)) #Thread target high bits

} > $DEVICE

sleep 0.3

{
byte 0xAA                    #Start Byte
byte 0x0C                    #Device ID = 12
byte 0x1F                    #Command = Set Multiple Targets # Команда управления несколькими сервами
byte $N_TARGET               #0x02 #Number of targets = 2 # Количество управляемых каналов одновременно
byte $N_CHANNEL2             #0x00 #First channel number = 0 # Номер первого канала в цепочке
byte $(((TARGET21*36+2048) & 0x7F))      #0x70 #First target low bits <- First SERVO
byte $(((TARGET21*36+2048) >> 7 & 0x7F)) #0x4E #First target high bits
byte $(((TARGET22*36+2048) & 0x7F))      #Second target low bits <- Second SERVO
byte $(((TARGET22*36+2048) >> 7 & 0x7F)) #Second target high bits
byte $(((TARGET23*36+2048) & 0x7F))      #Thread target low bits <- Second SERVO
byte $(((TARGET23*36+2048) >> 7 & 0x7F)) #Thread target high bits

} > $DEVICE

sleep 0.3

{
byte 0xAA                    #Start Byte
byte 0x0C                    #Device ID = 12
byte 0x1F                    #Command = Set Multiple Targets # Команда управления несколькими сервами
byte $N_TARGET               #0x02 #Number of targets = 2 # Количество управляемых каналов одновременно
byte $N_CHANNEL3             #0x00 #First channel number = 0 # Номер первого канала в цепочке
byte $(((TARGET31*36+2048) & 0x7F))      #0x70 #First target low bits <- First SERVO
byte $(((TARGET31*36+2048) >> 7 & 0x7F)) #0x4E #First target high bits
byte $(((TARGET32*36+2048) & 0x7F))      #Second target low bits <- Second SERVO
byte $(((TARGET32*36+2048) >> 7 & 0x7F)) #Second target high bits
byte $(((TARGET33*36+2048) & 0x7F))      #Thread target low bits <- Second SERVO
byte $(((TARGET33*36+2048) >> 7 & 0x7F)) #Thread target high bits

} > $DEVICE

sleep 0.3

{
byte 0xAA                    #Start Byte
byte 0x0C                    #Device ID = 12
byte 0x1F                    #Command = Set Multiple Targets # Команда управления несколькими сервами
byte $N_TARGET               #0x02 #Number of targets = 2 # Количество управляемых каналов одновременно
byte $N_CHANNEL4             #0x00 #First channel number = 0 # Номер первого канала в цепочке
byte $(((TARGET41*36+2048) & 0x7F))      #0x70 #First target low bits <- First SERVO
byte $(((TARGET41*36+2048) >> 7 & 0x7F)) #0x4E #First target high bits
byte $(((TARGET42*36+2048) & 0x7F))      #Second target low bits <- Second SERVO
byte $(((TARGET42*36+2048) >> 7 & 0x7F)) #Second target high bits
byte $(((TARGET43*36+2048) & 0x7F))      #Thread target low bits <- Second SERVO
byte $(((TARGET43*36+2048) >> 7 & 0x7F)) #Thread target high bits

} > $DEVICE

# Пауза перед завершением операций для отработки всех переданных команд управления

sleep 0.3
 
Почему не отрабатываются все команды, а только первые две?
После отработки даже двух первых команд, нагрузка по питанию пропадает и все приводы переходят в отключенное состояние.
Сначала думал - это нехватка питания, однако, при отправке команд на приводы вот так:

Код
// Поднятие первой группы
system ("bash web2.sh 3 0  110 135 45");
system ("bash web2.sh 3 6  154 135 45");
system ("bash web2.sh 3 12  25 45 135");
system ("bash web2.sh 3 18  25 45 135");

// Опускание второй группы
system ("bash web2.sh 3 3  134 90 90");
system ("bash web2.sh 3 9  134 90 90");
system ("bash web2.sh 3 15  45 90 90");
system ("bash web2.sh 3 21 90 90 90");
Сам файл web2.sh:

Код
DEVICE="/dev/ttyACM2"

N_TARGET=$1 # Количество одновременно управляемых каналов. По умолчанию = 3 (21, 22, 23).
N_CHANNEL=$2 # Номер первого канала в цепочке. По умолчанию = 21.
TARGET1=$3 # Угол поворота плеча
TARGET2=$4 # Угол поворота локтя
TARGET3=$5 # Угол поворота кисти

byte() {
printf "\\x$(printf "%x" $1)"
}

{
byte 0xAA                    #Start Byte
byte 0x0C                    #Device ID = 12
byte 0x1F                    #Command = Set Multiple Targets # Команда управления несколькими сервами
byte $N_TARGET               #0x02 #Number of targets = 2 # Количество управляемых каналов одновременно
byte $N_CHANNEL              #0x00 #First channel number = 0 # Номер первого канала в цепочке
byte $(((TARGET1*36+2048) & 0x7F))      #0x70 #First target low bits <- First SERVO
byte $(((TARGET1*36+2048) >> 7 & 0x7F)) #0x4E #First target high bits
byte $(((TARGET2*36+2048) & 0x7F))      #Second target low bits <- Second SERVO
byte $(((TARGET2*36+2048) >> 7 & 0x7F)) #Second target high bits
byte $(((TARGET3*36+2048) & 0x7F))      #Thread target low bits <- Second SERVO
byte $(((TARGET3*36+2048) >> 7 & 0x7F)) #Thread target high bits
} > $DEVICE

sleep 0.2
 
Всё проходит нормально и все приводы держат стабильно.
Почему так происходит - не знаю.

В идеале хочу получить управление 12-ю приводами (большего мне не надо) из одного файла и одной командой:

Код
bash 4nogi.sh 3 0 110 135 45 6 154 135 45 12 25 45 135 18 25 45 135
 
Попробуйте подавать данные в сыром виде:

Код
byte 0xAA                        #Start Byte
byte 0x0C                        #Device ID = 12
byte 0x1F                         #Command = Set Multiple Targets 
byte 0x03                         #Number of targets
byte 0x00                         #First channel number
byte (4000 & 0x7F)            #First target low bits <- First SERVO
byte ((4000) >> 7 & 0x7F) #First target high bits
byte (5000 & 0x7F)            #Second target low bits <- Second SERVO
byte ((5000) >> 7 & 0x7F) #Second target high bits
byte (6000 & 0x7F))           #Thread target low bits <- Second SERVO
byte ((6000) >> 7 & 0x7F) #Thread target high bits



если сработает то ищите ошибку в коде.

P.S. У моего "Maestro 12-канальный" команда "Set Multiple Targets" так и не заработала правильно (срабатывала только один раз, а потом все сервы просто вырубались), а в "Maestro 24-канальный" было всё в порядке.
 
Тут появилась одна задумка. Может кто уже такое реализовывал? Хочу узнать результаты.
Идея такая.
Имеется восемь ног по три привода в ноге и плату управления Pololu на 24 выхода.

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





Делим все ноги на две части по четыре ноги - получается 12 приводов в одной части. Будет использовано всего 6 каналов из 24-х.

Интересно, будет ли такая система работать? Питание ведь так и осталось одним на все приводы.

Что скажите? Не будет ли торможение в скорости обработки каждым приводом одинаковой команды?
 
И второй вопрос.
На контроллере Pololu все выводы работают как ШИМ (могут передавать широтно-импульсный сигнал)?
Если да, то какая максимальная частота?
Можно ли выводы использовать для управления бесколлекторными двигателями (естесственно через специальный драйвер) по каналу ШИМ?
 
Цитата
Максим Фиронов пишет:
Интересно, будет ли такая система работать? Питание ведь так и осталось одним на все приводы.
Да будет.
Цитата
Максим Фиронов пишет:
Можно ли выводы использовать для управления бесколлекторными двигателями (естесственно через специальный драйвер) по каналу ШИМ?
Да можно, но только один. Читайте мануал.
Цитата
One channel can be a PWM output with frequency from 2.93 kHz to 12 MHz and up to 10 bits of resolution (see Section 4.a for details)
 
Цитата
Максим Фиронов пишет:
естественно через специальный драйвер
Если под словом "специальный драйвер" вы имели ввиду ESC, то можно использовать любой канал.
 
Вопрос по сервоприводам.

Конструкция для корректировки.

Собираю конструкцию общим весом около 2.4 кг (приблизительно) на цифровых сервоприводах в кол-ве 18 штук (шестиног). Проблема в корректировке плеч.
Если предположить вес каждого сервопривода в 50 грамм и вес всех составляющих ног в 250 грамм, а так же вес платформы без полезной нагрузки в 250 грамм, то вес всей платформы без полезной нагрузки будет 1400 грамм. Полезную нагрузку примем за 1000 грамм.

Тогда вопрос. Какие сервоприводы с какой нагрузкой могут подойти?

Если делать первое и второе плечо в 6 см, то как считать? По идее отсчёт исходит из полезной нагрузки, а не из общей?
Если так, то нам надо вести отсчёт от 1600 грамм на 6 см, или от усилия 1600 х 6 = 9600 грамм. Тогда оптимальные приводы должны быть с усилием от 10 кг/см.

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

Подскажите, правильны ли мои суждения?
 
Почти всё верно. ( 2,4кг / 6шт ) * 2 = 0,8кг на одну ногу (с двойным запасом).
0,8кг * 6см = 4,8кг*см минимальная тяга сервопривода для вашего робота. Значит подбирать сервы с тягой от 4,8 * 2 = 9,6кг*см.

На двойку мы умножаем не от хорошей жизни, а для учета всех погрешностей и завышенных характеристик сервов.

Цитата
Максим Фиронов пишет:
По идее отсчёт исходит из полезной нагрузки, а не из общей?
Всегда считать из общей.
Цитата
Максим Фиронов пишет:
По размерам сервоприводы должны быть чем меньше по весу - тем лучше, но с требуемой тягой.
Тогда убедитесь что в них установлены безынерционные двигатели (Coreless).
Страницы: 1