Хірургічна імплантація ємнісного трекпаду з технологією 3D-Touch на місце оригінального аналогового джойстика
У 2020-му році під час пандемії буває нудно, і відсутність можливостей творчого розвитку ускладнює життя. Однак коли у вас є набір інструментів з великою кількістю електроніки, на безліч старих речей, що лежать у вас на столі, можна поглянути по-новому. Так і сталося з моїм Nintendo Switch - адже раніше у мене не було можливості розібрати контролер Joy-Con. Прекрасна можливість поколупатися в його нутрощах.
Дайте-но я спочатку подивлюся в інтернеті, чи не виникло у кого шаленої ідеї замінити старий добрий аналоговий джойстик ємнісним трекпадом? Не виникло.
Макгайвер схвалює.
Фаза 0
Я звик спочатку робити начерки в блокноті. Ось мій перший начерк того, як я представляв Joy-Con з ємнісним трекпадом замість традиційного аналогового джойстика.
Найкращий пункт з усіх переваг у списку - відсутність дрифта. Якщо ви читаєте цей текст, ви напевно, знаєте, що у деяких контролерів Joy-Con є така проблема, як дрифт джойстика [мимовільний рух керованого джойстиком курсора на екрані без фізичних переміщень самого джойстика/прим. перекл.]. А якщо його замінити, то і дрифту не буде.
Фаза 1
По-перше, навряд чи ви можете вважати себе нердом, якщо вам не здаються красивими напівпрозорі штуки отруйно-зеленого кольору. Тому пара кліків на сайті Джеффа Безоса - і до мене їде новий одяг для Joy-Con. Розібрати корпус джойстика нескладно - найскладніше це орудувати маленьким пінцетом, коли у вас великі руки.
Аналоговий джойстик - річ нескладна. Це двоканальний потенціометр і натиснута кнопка - і все це з'єднано з платою через 5-контактний FPC-роз'єм з кроком 0,5 мм. Я замовив відповідний плаский кабель, що виводить сигнали зі схеми.
Потім я знову зібрав Joy-Con і перевірив його роботу в комплекті з Switch, щоб переконатися, що все працює нормально.
Гаразд, мені потрібно замінити аналоговий потенціометр на цифровий.
Фаза 2
Щоб все було чисто і красиво, я намалював в KiCad схему для пари компонентів, завантажив їх розміри і розробив для них спеціальні плати.
Я вирішив перевірити кілька видів цифрових потенціометрів з різною вартістю і ефективністю, а також кілька роз'ємів для плоских кабелів (один для вхідних даних з аналогового джойстика, один для вихідних даних з ємнісного трекпаду).
Через тиждень я отримав посилку від улюбленого виробника друкованих плат. Розподілив паяльну пасту, попрацював паяльним феном - і плати були готові.
Настав час випробувань.
Фаза 3
Природно, для координації всього цього зоопарку мені знадобилися Arduino, макетна плата і купа монтажних проводів.
У тестах брали участь:
- Мікроконтролер.
- Два 12-бітових цифро-аналогових перетворювача (підключаються через I2C).
- 5-контактний FPC-роз'єм з кроком 0,5 мм для аналогового джойстика.
- Гнучкий плоский кабель для 5-контактного FPC-роз'єму з кроком 0,5 мм.
- 12-контактний FPC-роз'єм з кроком 0,5 мм для ємнісного трекпаду.
- Гнучкий плоский кабель для 12-контактного FPC-роз'єму з кроком 0,5 мм.
- Цифровий темнісний трекпад з технологією 3D-Touch (з'єднуються через I2C).
Серед усіх випробуваних мною цифрових потенціометрів я вибрав найбільш відповідний, а заодно і дешевий. Перший крок - перевірити, що всі компоненти правильно приєднані, отримують харчування і відгукуються. Я залив у плату стандартний код i2c_scanner, і все пройшло вдало.
Кілька рядків коду дозволило ініціалізувати DAC і ємнісний трекпад на шині I2C, а потім я почав підшукувати ефективну стратегію емуляції потенціометрами руху аналогового джойстика по осях X і Y.
Оскільки роздільна здатність DAC становить 12 біт, вони приймають значення від 0 до 4095, і я розбив цей діапазон на кроки по 10.
На консолі Switch я запустив утиліту калібрування джойстика з налаштувань, щоб подивитися, чи станеться що-небудь.
Місткий трекпад - цікавий електронний компонент, розташований в дуже невеликому і універсальному корпусі. Як не дивно, він володіє дивовижно великою роздільною здатністю 2048 x 1535 x 63 (X x Y x Z) - так-так, 63 рівня чутливості до натискання.
Природно, наступним кроком було налаштування відповідного відображення, щоб відповідати роздільній здатності потенціометрів. Метод map у Arduino дозволяє дуже швидко вирішити таку задачу.
Метод pushStick () емулює натискання кнопки, користуючись тим, що відповідний контакт на Joy-Con працює за замкнутим циклом.
Підсумковий результат роботи першого прототипу виглядав багатообіцяюче.
Фаза 4
Ну тепер залишилося тільки злетіти з усією цією нісенітницею. Наступним кроком я вирішив зробити більш компактне і портативне рішення порівняно з першим прототипом.
Я вирішив перейти з Uno на PRO MINI - більш дрібну версію, а також зробити друковану плату, яку можна буде розташувати поруч з усіма роз'ємами і цифровими потенціометрами. У процесі оптимізації я зрозумів, що можна замінити два одноканальних DAC одним двоканальним, і заощадити місце на платі.
Намалював у KiCad нову схему, і ретельно розмістив всі компоненти.
Фаза 5
Кур'єр приніс мені все вчасно - всі ці зелені скарби і деякі інші компоненти.
Прийшов час пайки.
Перевірка мультиметром.
Фаза 6
Pro Mini потрібно харчування - всі міліампери я вкрав прямо з основної плати, з вільної плошадки.
Ідея була в тому, щоб приклеїти мою плату прямо на задню частину Joy-Con за допомогою двостороннього скотчу, зробити отвір в пластиковому корпусі і пропустити через нього дроти.
Фаза 7
У темнісного трекпаду не було корпусу, тому мені довелося розробити для нього корпус. Для таких випадків відмінно підходить Tinkercad - додаємо і віднімаємо найпростіші геометричні фігури, і завдання вирішується без зайвих проблем.
Нарізка на шари за допомогою Cura, чекаємо кілька хвилин, і 3D-принтер народжує нову деталь.
Підійшла ідеально з першого разу. Вибраний мною пластик FILOALFA відмінно зберіг механічні властивості.
Фаза 8
Оскільки Pro Mini живиться безпосередньо від батарейки Joy-Con, я вирішив додати перемикач, який може відключати мій імплантат, коли він не використовується, економлячи трохи енергії.
Для безпеки я закрив всю електроніку плівкою Kapton, щоб не закоротити її потними руками.
Підсумковий результат
І ось, як це виглядає в підсумку. Джойстик вийшов портативним, тому його можна використовувати або приєднавши, або за бездротовим з'єднанням.
У роботі:
Що далі
Планую подальшу мініатюризацію всієї схеми, щоб зробити плату меншого розміру, і розмістити її прямо всередині контролера Joy-Con замість невеликої коробочки аналогового джойстика розмірами в 19 мм. 16 4 мм.
І робота вже кипить:
Див. також:
- «Nintendo безкоштовно ремонтуватиме Joy-Con з проблемою» дрейфу «»
- «Користувач Reddit знайшов причину частої поломки Nintendo Switch»
- "Switch Lite не врятувала від дрейфу: скарги на нову консоль додані в позов проти Nintendo "
