Вопрос по аналоговым джойстикам (на потенциометрах)

derungebundener

✩✩✩✩✩✩✩
18 Июл 2020
117
3
Народ, ищу совета по такому вопросу:

Есть аналоговый джойстик, который, как известно, принимает значение 0-1023.

Есть две проблемы.

Первая, которую я уже частично решил - джойстик не стоит точно по середине и середина не равна 512.
Это частично решается мёртвой зоной, а также замером реального центрального положения при старте.

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

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

Собственно, может ли кто-то подсказать что-то по этому поводу?
Как подобное считывание осуществляется на разных радиопультах от квадрокоптеров и прочих игрушек?
Ведь там на программном уровне требуются крайне точные положения ручек управления - вышли за пределы сигнала и тут же активируется т.н. failsafe. То бишь необходимо жестко получать показания 0-512-1023.

Буду благодарен любому совету...

Спасибо.
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
Это решает калибровка. Замерить реальные пределы показаний джойстика и в программе преобразовывать реальные данные к "идеальным" 0-512-1023 например функцией map
Калибровка делается отдельно под каждый джойстик
 

derungebundener

✩✩✩✩✩✩✩
18 Июл 2020
117
3
@bort707,Да, по замер крайних положений я уже думал, но, у меня возникло такое сомнение:

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

bort707

★★★★★★✩
21 Сен 2020
3,058
910
Если есть люфт, то этого никак не исправить, с таких джойстиков точного сигнала не получить.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,971
632
45
От мертвой зоны не избавиться, она есть даже у фирменных оригинальных джойстиков.
А так да, нужно калибровать по крайним положениям.
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
@derungebundener, сделать отдельную калибровку на меньше середины и на больше.
А еще лучше не работать с джойстиками с настолько кривыми движками, из Г конфетку все одно не сделать
 

derungebundener

✩✩✩✩✩✩✩
18 Июл 2020
117
3
@bort707,
А в каком направлении следует гуглить про это? В голову никак не придет концепция того, как отдельно откалибровать левую и правую половины, а потом слить это в один диапазон...
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
А зачем вам "сливать в один"? Калибруйте отдельно левую, отдельно правую. Если значение слева от середины - применяем первую калибровку, если справа - вторую и все дела
 

Un_ka

★★✩✩✩✩✩
13 Июл 2020
243
77
других форумов.
Мёртвая зона, разные пределы и центр не так страшны как нелинейность. По моему с них можно получить лишь достоверную информацию о том что ручка находится в центре или в одном из пределов. Сделал почти год назад джойстик на больших 10кОм потенциометров, которые кладут в стартовые наборы. Всё эти проблемы пришлось решать кроме нелинейности.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@Un_ka, вообще потенциометры бывают линейные и логарифмические - разные типы и назначение разное.
 
  • Лойс +1
Реакции: Un_ka

derungebundener

✩✩✩✩✩✩✩
18 Июл 2020
117
3
@bort707,

Сразу про это не подумал как-то, действительно же так будет проще.

@Un_ka,
Нелинейность, как я понял, тут не особо страшна. Мне банально надо крутить сервопривод. А джойстик взят дешевый за 400р как в радиопультах - то есть повыше качеством, чем ардуиновское барахло, но не прямо "профессиональное" как на хороших пультах. Это же не игровой джойстик будет, так что, думаю, нелинейность не сыграет роли.