Недавно купил длинный HDMI-кабель для просмотра киношек на телевизоре с комфортной кровати, а не сидя за ПК в углу.     Возникла проблема: часто вставать и ходить до ПК, чтобы поставить видео на паузу или изменить настройки плеера (качество, звук, озвучка). Захотелось чего-то компактного и простого, наподобие «Плей‑Пауза» пульта. Был вариант просто купить дешёвый Bluetooth‑комплект мышь‑клавиатура или только беспроводную мышь, Но это показалось мне неинтересным и простым.      Было принято решение разработать специфическое устройство для этих задач.     Во-первых, определим, какие функции и, как следствие, устройства ввода необходимы. В качестве устройства, позволяющего не только выполнять разовый «клик» по кнопке паузы, но и имеющего возможность передвигать курсор мыши, был выбран стик KY-023, наподобие тех, что применяются в контроллерах DualShock для PS4. KY-023 имеет:1) 2 аналоговых выхода: Ось X, Ось Y;2) 1 дискретный выход: Кнопка самого «стика».Т. к. проект в процессе разработки стал расширяться и усложняться, приходя к полноценному и большему функционалу, чем у компьютерной мыши, было решено добавить второй «стик».Таким образом получили конструкцию со следующим функционалом: правый «стик» должен отвечать за перемещение курсора (подобно как правый стик джойстика от «плойки» управляет обзором персонажа в играх); Левый стик должен будет управлять громкостью плеера и перемоткой видео (пока не реализован, в процессе разработки функций); внутренние кнопки «стиков» копируют ЛКМ и ПКМ. Т. к. только начинаю заниматься программированием, было решено использовать как контроллер плату Arduino. Почитав про особенности «камней», применяемых в «разношерстных» платформах, я выбрал это: Arduino pro mini на базе «камня» AtMega 168 (5V, 16MHz) в роли передатчика; Arduino pro micro на базе «камня» AtMega 32u4 в роли приемника и устройства, имеющего свойство двустороннего общения с ПК, определяется как HID-устройство (клавиатура, мышь). Необходимо было устройство приема‑передачи информации между платами Arduino. Выбрал радиомодули NRF24L01, работающие в диапазоне частот 2.4–2.5 ГГц. Также в связи с особенностями питания «камня» NRF потребовался адаптер со стабилизатором напряжения, способный использовать внешнее питание от 4.8V до 12V и подавать на плату NRF 3.3V. Немного характеристик: Напряжение питания: 1,9В – 3,6В;Интерфейс обмена данными: SPI;Частота приёма и передачи: 2,4 ГГц;Количество каналов: 128 с шагом 1МГц;Тип модуляции: GFSK;  Скорость передачи данных: 250kbps, 1Mbps и 2Mbps;Чувствительность приёмника: -82 dBm;Расстояние приёма/передачи данных: 100м — прямая видимость; 30м — помещение;Коэффициент усиления антенны: 2dBm;Диапазон рабочей температуры: -40оС…+85оС;Организация сети на одном канале: 7 модулей (1 приёмник и 6 передатчиков). На схеме не указан адаптер, но распиновка NRF и адаптера идентичные, и все необходимые сигналы прописаны в литографии на маске плат. Перво-наперво необходимо было научиться считывать и обрабатывать сигналы со стиков и управлять курсором напрямую с Arduino Pro Micro. Учимся «дружить» NRF‑ки и моргать лампочкой по нажатию кнопки.TX: RX: А теперь самое интересное! Объединить эти два кода. Не обошлось и без плясок с бубном, и убегающим в «самоволку» курсором. TX: RX: В обоих случаях последовательность действий при подключении радиомодулей одинакова: от адаптера питания NRF отпаиваем колодку 6pin(F) и припаиваем напрямую NRF гребёнкой 6pin(M), короткими проводами припаиваемся к платам Arduino. Аккуратно и компактно складываем и сжимаем «бутерброд». ПОЛЕЗНО! Вокруг антенны для каждого модуля NRF намотать пару‑тройку витков монтажного провода (в моём случае 0.2mm^2). Загоняем все в широкую термоусадку и фиксируем. Для передатчика припаиваем «стики» на удобном вам расстоянии и также все фиксируем термоусадкой. Получился рабочий прототип GamePad, похожий на DualShock. ВАЖНО! Сначала подключать к питанию передатчик, после — приемник к ПК. Т.к. имеется баг в виде убегающего курсора при обратном порядке подключения, но он сразу же подчиняется, как только подаёшь питание на передатчик. Высокая чувствительность стиков и резкое перемещение курсора (сложно попадать по кнопкам диалоговых окон). Сейчас в разработке корпус для данного прототипа. Также требуется создать систему питания на основе аккумулятора 18 650 с модулями заряда и преобразователя напряжения до 5V. В планах добавить энкодер для имитации колёсика мыши; ряд тактовых кнопок с различными функциями, расширить код — придать действия для осей левого стика. Буду рад вашим предложениям по улучшению и развитию функционала данного девайса. В частности, идеям исправления скорости курсора, придания ему плавности.