Изготовление универсального джойстика управления
Мне всегда нравились лаконичные и простые интерфейсы управления, вроде iDrive у BMW, и всегда хотелось сделать что-то подобное. Приступим.
За основу была взята идея и реализация
земляка, с некоторыми изменениями под свои нужды. Спасибо ему за готовый скетч и консультации.
Основой является плата
Arduino Pro Micro, имеющая сверхкомпактный размер, порт micro-usb для питания и передачи сигналов, и умеющая "прикидываться" медиа-клавиатурой. Также мне понадобился хитрый джойстик:
Alps RKJXT1F42001, который умеет наклоняться вверх, вниз, влево и вправо; имеет центральную кнопку; совмещен с энкодером (может вращаться влево/вправо). Именно он стоит во многих магнитолах вроде Pioneer и Alpine. Оба компонента были куплены на радиорынке. Там же было приобретено несколько компактных корпусов, пара ручек-крутилок, провода ("лапша") и пара конденсаторов для схемы.
Из нескольких корпусов был выбран самый подходящий под место инсталляции - гладкий, квадратной формы, без отверстий под болты креплений. В верхней крышке было просверлно отверстие под небольшой выступ сверху на джойстике, так чтобы он садился плотно, даже фиксировался. Также пришлось наращивать единственный вал джойстика в ширину, т.к. он очень тонкий, и найти подходящую ручку к нему не оказалось возможным. Поэтому на вал с помощью все того же эпоксилина был посажен пластиковый переходник (купленный в том же ларьке, где и крутилка):

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

К джойстику в соответствии со схемой распиновки были припаяны провода и два конденсатора (для устранения
дребезга при кручении энкодера). В ардуино был залит поправленный скетч. Готовый разобранный комплект перед установкой:
Идем в машину, примеряемся к небольшой нише между передними сидениями:
Убираем резиновый коврик (в случае продажи автомобиля он вернется на место и закроет ненужные дырки):
Сверлим два маленьких отверстия под саморезы, и широкую прорезь - под шлейф:
Крепим нижнюю часть корпуса. Держится мертво!

Через совмещенные прорези прокидываем шлейф под центральный тоннель:
Крепим с помощью двух болтов верхнюю часть корпуса с джойстиком:
Под панелью подключаем шлейф к ардуино (спрятана в широкую термоусадку, чтобы не коротнуло), ардуино же в свою очередь с помощью usb-кабеля подключена к андроиду:
Готово, окончательный вид джойстика после инсталляции:
Схема работы:
джойстик вверх:
___вверх
джойстик вниз:
____вниз
джойстик влево:
___PrevTrack
джойстик вправо:
__NextTrack
кнопка джойстика:
_Play/Pause
энкодер влево:
___..Vol-
энкодер вправо:
__..Vol+
долгое нажатие вверх:
__Home Screen
долгое нажатие вниз:
___Menu
долгое нажатие влево:
__не используется
долгое нажатие вправо:
_не используется
долгое нажатие кнопки:
_Enter
кнопка нажата + энкодер влево:
__не используется
кнопка нажата + энкодер вправо:
_Alt+Tab
Схема не окончательная и скорее всего будет меняться. Ссылка на скетч:
MediaJoyController_v_1_0.zip. Буду рад выслушать критику и пожелания.