О замене потенциометров в геймпаде
С развитием игровой индустрии и ее ориентацией на консоли, геймпады все больше становятся стандартными устройствами ввода и для ПК. Кроме того, игровые контроллеры могут использоваться для управления объектами реального мира, например, печально известная подлодка «титан». Таким образом, часто возникает вопрос ремонта этих контроллеров, в том числе и самостоятельного. А там где есть спрос — там будет и предложение. Онлайн торговые площадки просто завалены запчастями и деталями для ремонта геймпадов.
Наиболее частым дефектом является износ потенциометров, что приводит к дерганым движениям и уходу нуля, т.н. дрифт стика. Конечно, потенциометр можно почистить, а дрифт скомпенсировать резисторами, но это временная мера, резистивное покрытие уже стерлось, нужна замена самого потенциометра.
Однако, не все потенциометры одинаковые. Так, после установки данной детали, появилась огромная «мертвая зона» (область около нейтрального положения, в которой контроллер не реагирует на движение стика), а также очень резкий переход к максимальному или минимальному значению. Т.е. по сути, стик перестает быть аналоговым, но свою функцию формально выполняет. Были закуплены другие потенциометры, разных цветов, отдельные и в составе 3d-механизмов стика, но все они вели себя похожим образом. Чтобы выяснить, что не так с этими потенциометрами, и как это можно исправить (спойлер — никак), была собрана «измерительная установка», и проведены некоторые «измерения».
Фотография установки и измеряемые потенциометры.
Установка собиралась на один раз, и поэтому выполнена в лучших традициях DIY — из досок и прочих подручных материалов. На основании закреплены: зажим крокодил, для держания измеряемого потенциометра; и сервомотор, предназначенный для поворота ползунка потенциометра на заданный угол. Такая конструкция не может гарантировать одинаковую установку потенциометров, но оно и не нужно. Управляет сервомотором и измеряет напряжение на ползунке плата Raspbery Pi Pico, программа написана на Micropython.
Измерения проводилось следующим образом. Микроконтроллер последовательно менял угол поворота с 30° до 150° (где 90° — центр или нейтральное положение) измеряя напряжение с потенциометра с помощью встроенного АЦП. После производился возврат к 30° и повторение процесса, и так 5 раз. Поворот производился всегда в одном направлении для исключения влияния люфта.
Результаты измерений представлены на следующем рисунке.
Результаты измерений.
У первых трех потенциометров видно характерную ступеньку в районе 90°, видимо, это металлическое напыление для обеспечения мертвой зоны. Также видно, что диапазон с резистивным напылением составляет всего 10°. На двух последних графиках представлены результаты для «хороших» потенциометров, значение напряжения пропорционально углу поворота в широком диапазоне и без ступенек.
На четвертом графике результаты измерения оригинального потенциометра ALPS из dualshock 4 (данные слегка размыты, так как я его держал рукой), а на пятом — новый, купленный вместе с 3d-механизмом, причем он был куплен в том же интернет-магазине (не Китай), что и оранжевый потенциометр на втором графике.
Изначально данное «исследование» проводилось, чтобы каким-нибудь образом линеаризировать характеристику «плохих» потенциометров. Однако, как видно из графиков — это невозможно.
Вывод: На текущий момент невозможно определить какого вида потенциометр продается в магазине. Главная проблема — всем начихать. Изредка можно встретить отзыв типа «Заменил, появились мертвые зоны, но в целом норм.»