выбор сервотестера
пока смотрю вот на такой вариант
По итогам эксплуатации сервотестер оказался говном. Аргументирую:
- корпус - неразборный ( он склеен ). Залезть внутрь можно только сломав его.
- Когда тестировались мощные сервы, вырубался экран. Восстанавливался он только после выключения - включения.
- Есть 2 режима: аналоговый ( 50 Гц ) и цифровой ( 100 Гц ). 200 Гц плюс нету ( может, и не надо - не знаю )
- Дико неудобно то, что можно подключить только 2S LiPo. У меня таких нету, соответственно - только через блок питания.
- Кстати, питается он от аналога КРЕН5 ( 7805 ). Возможно, она и накрылась, еще не смотрел.
- Внутри он спаян отвратительно, вручную, плата не вымыта. Холодняков, правда, нету.
Давно чешутся руки самому сесть и написать сервотестер, но нету времени и у меня нету дома нужной инфраструктуры ( JTAG и прочей ерунды ). Все собираюсь создать ее, да руки не доходят…
По функционалу он был более - менее вменяемым.
вобщем, я начал мутить свой сервотестер. Считайте, что мне просто нефиг делать 😃
Пока экспериментирую - запустил дисплей, ацпшки, сделал обработчик клавиатуры. Программа минимум - сделать нормальный тест на скорость. Тест на скорость в etronix сервотестере глючит.
Детект скорости, если я правильно понимаю, сделан так: измеряется потребляемый ток сервы, и делается вывод - крутится она или нет. В глючном тестере для этого используется операционник и резистор 0.1 Ом.
Возможно, я сделаю встроенный в сервотестер бек, который будет менять напряжение программно, но не уверен в этом. Пока это все питается от отдельного бека, причем - кстати - в етрониксе серва питается от той же кренки, что и вся остальная схема, что вызывает офигительные глюки, главным образом с дисплеем - он периодически гаснет во время работы серв. Пидорасы, как так можно через жопу делать???
Я взял нормальный большой дисплей, чтобы можно было бы по - человечески размещать данные, 4 кнопки, потенц ( может, энкодер поставить??? )
Для измерения тока была взята микросхема ACS714LLCTR-50A. Решение оказалось неправильным - она выдает где - то 20-30 mV на нагрузку 500 мА ( 2 лампочки ), что слишком близко к шумовому порогу АЦП.
Заказал ACS714LLCTR-05A. Это конечно не совсем то что я бы хотел ( хотелось измерять потребляемый ток в цифрах - с этой микросхемой это получится, но макс. пики показываться не будут ). Но я еще буду экспериментировать.
Вот фотка того, как это выглядит на данный момент:
Кстати, используется практически тот же датчик тока, который, судя по всему, используется в спектрумовской ( точнее - в клоновой ) телеметрии.
Датчик - хороший, вменяемый, но фигня - в том, что он выдает аналоговый сигнал - со всеми вытекающими последствиями. И в части этих датчиков меряется прямой и обратный ток. Что тоже не добавляет радости.
начал писать какие - то тесты. Сразу начали всплывать интересные штуки:
Оказывается, 500 Hz ( такие сервы уже где - то у кого - то есть ) всем моим сервам сразу аккуратно снимают башню. Сервы просто тупо сходят с ума.До 333 Гц поддерживают все 3 проверенные мной сервы.
Серва при изменении сигнала перед запуском мотора дает задержку. Причем, задержка довольно большая. У меня пока нормально не измеряется ток ( слишком нечувствительная микросхема - буду менять, уже заказал ), соответственно я могу установить момент старта сервы с относительно большой погрешностью, а пока что - нибудь придумаю.
Оказывается, при старте мотора бек Gryphon Polaris без кондера дает просто чудовищную просадку напряжения ( с 5.7 до чуть ли не 4 вольт ). Причем, даже с относительно гуманными по потреблению емаксами. Кондер 2200 мкф убирает проблему. Соответственно, я вынужден был добавить этот кондер.
Далее мне стало интересно посмотреть, насколько мои измерения показывают цифры, похожие на паспортные данные серв. И сразу выяснилась еще одна штука:
оказывается, что у MKS92 поворот на 60* происходит, если изменить импульс на 340 мкс, а в емаксе - на 300. Что это значит?
То, что цифры, выдаваемые моим старым сервотестером etronix за “скорость серв” - фуфел. Потому как там диапазон значений изменения сигнала нигде не задается. А должен.
Вдвойне фуфелом эти цифры являются потому, что при остановке я ( неотчетливо, правда ) вижу довольно сильные обратные токи. Т.е. серва в этот момент тормозится. Схемотехника етроникса не позволяет, насколько я ее понял, детектить обратные токи. А они, кажется, длятся довольно долго. И их, по идее, надо тоже учитывать.
Короче, пока нарисовался ряд занятных вопросов, но надо доотлаживать…
А с измерением скорости получается интересная история:
непонятно, как производители измеряют время поворота сервы на 60*. По - крайней мере по току корректно измерять его невозможно - данные радикально отличаются.
Суть в следующем:
серва запускается, крутится какое - то время, дальше все происходит у разных серв по - разному.
Хвостовая серва JR DS3500G дает в конце просто огромный бросок тока ( видимо, останавливает мотор )
Судя по всему, серва после позиционирования еще долго дергает мотором ( стабилизирует положение? )
Вот осциллограммы ( верхний розовый канал - потребление тока; 2.5В=0А, 5В=5А, все что ниже 2.5В - обратный ток. Кстати, обратные токи в данном тесте не наблюдаются.
Для целей этого теста я не заморачивался определением величины угла отклонения.
JR DS3500G
MKS92A
Emax ES09MD
Turnigy TGY-S306G ( кушает при таком тесте чуть ли не меньше емакса - по - крайней мере с чудовищно жрущим мксом нету даже близко никакого сравнения )
А если измерять скорость оптическим способом? Заслонка на оси сервы перекрывает оптопару, результат время между пуском и перекрытием будет учитывать полный цикл то есть и задержки в мозгах сервы.
Задержки в мозгах серв - минимальные. Первоначально я думал их учитывать, но после вникания в вопрос решил этого не делать.
Судя по тому, что я видео на осциллографе, задержка от отрицательного фронта первого импульса с измененной скважностью до старта мотора у всех серв - около 1-2 мС. И по факту эта задержка будет гораздо сильнее зависеть от частоты, с которой подаются импульсы на сервы - 50, 70, 100, 200, 333 Гц, чем от внутренних задержек.
Пока судя по тому, что я вижу, основной вопрос - даже не к макс. скорости работы сервы, а к тому, насколько она точно и быстро останавливается.
Здесь емсакс и турнига отличаются от JR. Кстати, что еще интересно - у JR как - то иначе сделана схемотехника - она дает более ровную нагрузку.
И - что еще интересно и с чем я буду разбираться - турнига совершенно непохожа по работе на MKS. Если это - клон, то какой - то очень творческий. Кстати, и микросхма там тоже другая. Очень может быть, что - как всегда - кетайцы слизали только внешние формы. В любом случае я пока доволен. Уже кое - что новое узнал.
Ну да задержка малозначительная. Но мерить скорость " по току" мне кажется как то не совсем правильная тема, или по крайней мере мне не совсем ясна методология и фильтрация ложных показаний: например торможение мотора ибо оно точно присутствует в BLS сервах.
Самое правильное и честное - сделать стенд с внешним энкодером, оптическим или на датчике Холла. Если нет цели делать измерения под нагрузкой, то это, вроде как, совсем не сложно.
Я распотрошил дохлую емаксовскую серву, оставив там потенциометр и вывел его наружу. Две сервы - подключенная к тестеру и серва с выходом потенциометра жестко сцеплены между собой, соответственно, серва крутит потенциометр, зеленый сигнал на осциллограмме - выход потенца, розовый - датчик тока.
Я специально распечатал транспортир и установил, что для емакса 60* - это импульсы с разницей 300 uS. Соответственно, я такие импульсы и установил.
Т.е. на осциллографе мы видим, что
Из осциллограммы видно, что пиковые токи генерятся при старте и остановке мотора. За примерно 75 мС серва достигает примерно нужного положения, и еще примерно столько же уходит на ее доводку.
В итоге получается, что чтобы повернуться на 60*, у сервы уходит около 0.15-0.16 секунды. Также видно, что серва довольно медленно останавливается.
Из всего этого видно, что оценивать скорость сервы на основе анализа потребления все же можно.
Вот еще осциллограммы MKS92A, Turnigy TGY306, JR DS3500G.
немного комментариев для тех, кто читает и кому влом вникать в осциллограммы.
- Если частота сервы -50 Гц, то период, с которым на серву поступает инфа - 10 мС. Т.е. серва может узнать о том, что ее дернули, через 0,01с. А может и раньше - как повезет.
- Как только очередной импульс закончился, серва его анализирует ( пару миллисекунд ) и дает команду мотору. Здесь интересно то, что у большинства серва начинает крутиться резко, а останавливается - плавно. Я это связываю с тем, что мотору нужно время на раскрутку, а внутренние механизмы сервы имеют люфты - он и выбирается, а потом, когда появляется зацеп, мотор уже набрал обороты. Между троганием мотора и началос сдвига шлица сервы проходит ок. 0.01 секунды.
- Основные пики потребления приходятся на старт и остановку мотора. Причем - у всех серв, как видно на осциллограммах.
- Далее серва линейно перемещается.
- В какой - то момент контроллер сервы решает, что мотор пора тормозить. Интересно, есть ли в серве пиды???
Время торможения очень сильно зависит от конкретной сервы. Как ни странно, наихудшее оно у MKS92A ( емакс - особый случай ). Серва останавливается достаточно плавно. Я не знаю, хорошо это или плохо применительно к ее работе на голове. У емаксов - другая проблема: серва очень быстро доводится примерно до нужного положения, а потом почти столько же делается точная доводка (0.07с.). Также, если во всех других сервах при линейном движении - прямая, то у емакса явно наблюдаются проблемы то ли с линейностью потенца, то ли с какими - то другими нелинейностями. Это неудивительно - видели бы вы емаксовский потенц. Примитив…
Еще про турниги: они останавливаются явно лучше мксов, потребляя при этом выраженно меньший ток.
Конечно, такой тест не отражает всех аспектов, т.е. не дает возможности сделать какой - то однозначный вывод. Но по тестам выходит так:
самая лучшея - JR, потом турнига, потом MKS, потом EMAX. Жаль что нету рабочих JR DS21.
Есть планы сделать еще несколько других тестов.
Кст и Савокс еще замерить бы !
мне бы хотелось замерить фулл сайз сервы, но сначала я хочу сделать программный тест, т.е. чтобы для определения таймингов не нужен бы был осциллограф и всякие приблуды типа внешнего потенца. Вечером сяду его писать. Пока основная проблема там - корректное определение начала, и - самое сложное - окнчания работы сервы, но теперь я знаю, как интерпретировать то что на экране, я уже смогу подобрать нужные фильтры, чтобы вычислить это все программно.
Чего то я не понял. Развертка на осцилле 25 мс?
да, а что
понял… да там внизу ж написано, затупил 😃
а что
Да не, ничего. решил вникнуть 😃
вертикальные розовые полоски - это курсор. Справа в менюшке показана разница между полосками в мс.
вертикальные розовые полоски - это курсор. Справа в менюшке показана разница между полосками в мс.
Это я понял 😃
еще 3 теста, которые я хочу сделать:
- медленное ( очень медленное ) перемещение сервы от одного края до другого. Этот тест позволит оценить ( визуально ) плавность работы сервы
- питчпамп тест. Перемещая серву потенциометром, довольно сложно понять это, но я уже вижу, что JR двигается плавнее всех. Во время его работы будет замеряться ток ( пиковый и средний ) и - возможно - будет оцениваться работа бека, только надо решить что делать с конденсатором, который сейчас стоит по питанию.
- будет измеряться deadband, т.е. будут подаваться импульсы 1520/1521 и будет оцениваться, двинулась ли серва, потом - 1520-1522, 1520-1524 и т.д. до тех пор пока серва не начнет реагировать на изменение сигнала. Я в отличии от etronix а скорее всего смогу это определять программно.
Еще отличием будет то, что все тесты будут повторяться многократно и потом будет усредняться результат ( в etronix тест делается 1 раз и притом - глючно. )
корректное определение начала, и - самое сложное - окнчания работы сервы
Попробуй измерять не саму функцию, а первую производную.
показания ацп брать напрямую бессмысленно. Там все аналоговые цепи и так уже питаются отдельно, просто сигнал довольно низкого уровня.
В идеале датчик тока надо бы на 2А и чтобы мерял бы только в одну сторону, а не обе, но я думаю, что с 5А микросхемой уже все получится. С 50А - глухо как в танке.
Я этот сигнал усредняю в несколько приемов, но там есть еще нюансы, в принципе у меня в голове оно все более менее уложилось, надо попробовать вечером написать и проверить, что получится.
Попробуй измерять не саму функцию, а первую производную.
У разных серв слишком по-разному выглядит график остановки, и у всех он размазан по времени. Я думаю, использовать вторую серву как датчик положения - отличная идея, это будет проще и точнее.