выбор сервотестера

alien131314

как всегда, самый большой гемор - механическая часть.

alien131314

Вобщем, сделал я реальное, а не по току, измерение скорости.
Суть в следующем:
из сервы выкинута вся электроника кроме потенциометра и она жестко ( см. фото ) соединена с измеряемой сервой так, чтобы центр сервы ( в данном случае 1500 )соответствовал бы центральному положению потенца в измерительной серве.

В данном случае я вынужден был особенно тщательно выяснить, какому изменению показаний потенца соответствует 60*. Оказалось, что мой транспортир, который я ранее использовал для замера углов, никуда не годился и из - за него возникла путаница - те данные, которые я приводил по скорости серв на основе потребляемого тока - неправильные. Сервы отклонялась там на недостаточный угол ( там было ок. 300 мС, а реально конкретно для EMAX 9 для отклонения на 60* надо чтобы разница в импульсе была бы ок. 570 uS - я это исправил и тогда замер скорости двумя разными способами стал показывать примерно одинаковый результат с точностью±10 uS, но сами цифры гуляют примерно от 149 uS до 165 uS - я пока не знаю, чем это вызвано - может, серва так работает 😃 ).
Кстати, данный тест, как будет показано ниже на видео, автоматически определяет, какой импульс требуется чтобы отклонить серву на 60*. Допуск - плюс минус 10 uS.
Что происходит во время теста:
Сначала надо соединить шлицы серв так, чтобы потенц измерительной сервы был бы в центральной точке, и измеряемая серва была бы спозиционирована в центр.
Когда центры более - менее находятся в центре, прога позволяет нажать кнопку, и начинается собственно тест. У меня это уже было сделано.

  1. Серва позиционируется на минимум ( подается 1000uS ) и запоминается ее физическое положение, когда она остановится.
  2. Далее серва начинает медленно двигаться, пока не повернется на 60*. Время пока не засекается.
  3. Потом на серву опять подается 1000 uS, и засекается время, которое пройдет до того момента, когда серва займет положение как в конце п.1
  4. Серва возвращается в 1500 uS.
  5. Выводится результат:
    а) на сколько uS надо изменить импульс, чтобы повернуть данную серву на 60*
    б) сколько времени прошло от момента начала до момента окончания движения
    Во время движения на время раз в 1 мС пишется лог. В комп он пока не скидывается. По нему потом можно будет оценить линейность, точность и т.п.

Собственно, вот видео:

alien131314

Народ, такой вопрос:
есть ли прутки, у которых с одной стороны, скажем, резьба М2, а с другой - М3, или М2 - М2.5, т.е. переходники?
Если такие штуки есть в природе, то как они называются, будет также приветствоваться линк на ебее.
Хочу сделать переходники, чтобы можно было бы подключать к тестовой серве разные сервы показанным выше способом.
дописал вчера, чтобы в простом тесте сервы, где можно просто серву покрутить, показывалась бы величина поворота сервы в градусах.
Приложил транспортир - в общих чертах все совпадает, но конечно на особую точность не претендует. На глазок я бы сказал, что плюс минус 5-10*. Судя по всему, чтобы было бы точно - надо калибровать потенциометр в разных секторах. Я этим заниматься не буду, хотя калибровку потенца на 60* возможно сделаю.

Сейчас следующее по плану - сделать скидывание логов тестирования через RS232 в комп. Оно написано в общих чертах, но пока глючит.
Потом напишу несколько разных тестов ( тест deadband а, тест люфтов, тест точности позиционирования, и т.п. - что - то в процессе работы придумается, какие - то идеи отпадут, ну вы понимаете ).

Alex71
alien131314:

сть ли прутки, у которых с одной стороны, скажем, резьба М2, а с другой - М3, или М2 - М2.5, т.е. переходники?

А если скажем в трубку (карбон или алюминь) вклеить разные болтики с обрезанными шляпками? По моему так проще будет.

alien131314

Ну, я какие - то муфточки в интернете нашел. Теперь надо бы посетить наш магазин крепежа, посмотреть, что там есть. Может, съезжу сегодня. Там проблема - в том, что вклеить надо очень точно ибо сервы в стенде будут крепиться достаточно жестко. Или соединение должно быть хотя бы минимально гибким и при этом не ломаться.

пысы: интересно то, что после некоторых доработок измерение скорости серв путем анализа потребляемого тока и путем анализа угла поворота - сравнялись.
Но они все равно не совпадают с тем, что пишет производитель. Пока я подозреваю, что производитель на самом деле указывает тупо максимальную скорость, с которой серва двигается, без учета разгона - остановки. В этом хотя бы есть логика. Я смогу сказать это более точно, когда получу в комп лог движения. Пока он существует только в памяти контроллера и может быть выужен оттуда только в виде hex файла.

alien131314

Получил, наконец, в Эксел график движения сервы на 60*. По оси X - миллисекунды ( 1 mS/sample ) по оси Y - величина показаний потенциометра.
И мне он совершенно непонятен. Шо это за хрень??? Какого лешего серва первые 20 мС двигается в обратном направлении???
Это притом, что я специально делаю паузу, т.е. серва в на момент изменения импульса остановлена???
Надо разбираться - или это особенность работы серв ( особенность, мягко говоря, странная ), или у меня что - то глючит.
проверил TowerPro - она ведет себя примерно похоже. проверил tgy306 - там есть такой же горб, но у нее несколько иная логика остановки ( и она останавливается быстрее, да и движется, понятно, тоже быстрее ). Буду разбираться…

пысы: теперь я могу скидывать логи тестов в комп через UART, а вот чтобы вывести это в графической форме, проще всего было считать в эксел.

V_Alex
alien131314:

Там проблема - в том, что вклеить надо очень точно ибо сервы в стенде будут крепиться достаточно жестко. Или соединение должно быть хотя бы минимально гибким и при этом не ломаться…

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

alien131314

Я думал над таким вариантом тоже. Плохо в нем только одно: надо портить качалку. Но это, наверное - единственно вменяемое решение:
блин, я посмотрел размер винтиков под качалку и в пяти вариантах серв ( JR DS21, Emax 9MD, TowerPro, Turnigy TGY306, Emax DS08 ) используется 5 ( ПЯТЬ!!! ) вариантов винтиков ее крепления - 4 винтика и 1 шуруп. Это звиздец какой - то - такое ощущение, что производители намеренно создают пользователям максимально возможный геморрой ( кстати, судя по всему еще и нету четкого стандарта, какая же разница импульса должна создавать 60* отклонение ). Трындец…

V_Alex
alien131314:

Это звиздец какой - то - такое ощущение, что производители намеренно создают пользователям максимально возможный геморрой ( кстати, судя по всему еще и нету четкого стандарта, какая же разница импульса должна создавать 60* отклонение ). Трындец…

Это совершенно обычная ситуация. Каждый производитель заинтересован в покупке именно его продукции. В этом отношении дальше всех в свое время пошла Sanwa. На ее серворазъемах шла последовательность контактов сигнал-минус-плюс, в отличие от Futaba и JR - сигнал-плюс-минус. Сервы выгорали влет 😈

alien131314

Да, я слышал про эту историю. К сожалению, все это создает дополнительные сложности в и без того непростом хобби. Эти сложности в конечном итоге могут либо резко сузить, либо убить рынок.

Вот мне сейчас в контексте этого очень интересно следующее:
Brain тоже сделает скоро интеграцию с Jeti, и в результате получится система, которая может по функционалу конкурировать с Vbar NEO/ Vbar control. Это будет своего рода конкуренция а ля pc vs. mac.

Я читаю, что после того как спартан сделал поддержку Jeti, часть пользователей, которые изначально Jeti вообще не рассматривали, стали как минимум смотреть в их сторону. Я, кстати - в том числе. Если бы они еще поддержали бы что - нибудь из недорогих решений типа Graupner или FrSky…
Что получается сейчас - аппаратура Jeti поддерживает как родые как минимум 3 фбл системы: Spirit, Brain2, Spartan. Это сильный ход 😃

alien131314

разобрался с горбом, это у меня был косяк. Вот исправление.
По Y - поворот сервы в градусах, по X - временной интервал.
Отсчет времени начинается с момента, когда контроллеру дается команда изменить скважность импульса. Поскольку импульс управляется аппаратно, я не могу без некоторого геморроя определить момент попадания импульса с новой скважностью в серву. Насколько я смотрел, задержка там не превышает единиц миллисекунд, поэтому первоначальная идея замерять и эту задержку была похерена.
Суть в следующем: серва какое - то время ждет импульса, потом, разгоняясь, начинает поворачиваться. Основное время она движется с постоянной скоростью ( красная линия добавлена для оценки нелинейности скорости движения сервы ), потом начинается остановка. Когда показания потенца достигли целевой величины, лог обрывается.
Заявленные 0.10 секунд у меня ну никак не получаются. Даже если считать макс. скорость движения, без учета разгонов - остановок, все равно получается примерно 0.12. Пока я не думаю, что производитель обманывает, но буду разбираться. Теперь хочу сделать, чтобы в лог передавался бы также потребляемый ток и чтобы эти 2 графика бы совмещались бы.

потестировал еще турниги и tower pro - ни одна, ни другая кроме как по скорости каких - то особых отличий не показали, кстати, tower pro как ни странно на глазок показали несколько лучшую линейность, у них средняя часть траектории несколько более прямая. Я буду именно их ставить на 450ку - посмотрим, чем плох дешман 😃

V_Alex

Настоящий академический подход 😃

V_Alex

Тоже решил попробовать свои силы 😃 Начать решил с малого - обычный сервотестер с трехзначной светодиодной матрицей, кварцованный. По плану установка потенциометра и двух кнопок - “медленная отработка” и “быстрая отработка”. Сервоимпульс от 1 до 2 мс с тактовой частотой 50 Гц. Пока оно выглядит так:

V_Alex

Шевелить сервами и мигать индикатором 😃

alien131314

наконец - то сравнил, как шеволятся аналоговая и цифровая серва и поставил рядом графики.
Любопытно то, что аналоговая серва не так уж и плоха - по этому тесту как будто бы никаких проблем не видно - ну да, она чуть медленнее, но - минимально.
Небольшая проблема - только с ее остановкой, она выраженно более пологая.

На графиках - 3 сервы - аналоговый емакс, цифровой емакс, и турнига 306.
Ось X - миллисекунды, ось Y - градусы поворота.

1 month later
alien131314

дописал в сервотестер фичу, определяющую параметры входящих импульсов.
Надоело для этих целей подключать осциллограф. Точность измерения - плюс - минус несколько микросекунд, что для довольно тормознутого контроллера, кмк - очень неплохо.
Осталось дописать, чтобы частота импульсов бы выводилась в герцах. и чтобы все это немного бы усреднялось - чтобы цифры не прыгали бы.
на фото образцовые импульсы сервотестер сам же и генерит 😃

Vovets
alien131314:

Точность измерения - плюс - минус несколько микросекунд

Ммм… чёт не очень. Это даёт примерно 300 различных позиций, качалки, которые прибор различает. Я забыл что там за контроллер у Вас, Input Capture у него есть? Чисто софтово трудно добиться результата лучше, чем у Вас, я пробовал. Особенно если контроллер ещё что-то делает в это время. Я сейчас на stm32 делаю всякие вещи, там куча каналов таймеров с Input Capture.

alien131314

ничего такого в контроллере нету, чтобы хоть такая точность бы была, приходится извращаться. Я еще не измерял точно, какая погрешность, может не так все и плохо. Надо сначала усреднялку написать. Тактовая частота контроллера - 8 мГц. Длина импульса считается аппаратно, т.е. для этого используется внутренний таймер. Но детект положительного и отрицательного фронтов делается аппаратно. Софтварно считать наверное бесполезно - будет неточно.
stm32 - это хорошо. Я его еще не начал ковырять - погода пока позволяет летать. Перестанет позволять - засяду за писательство. Оно уже не за горами…

Vovets

И всё-таки, что у Вас за контроллер? Не нашёл в теме.