USB-пульт для FPV-симулятора своими руками

Для чего это нужно?

Все, кто летают на FPV-квадрокоптере, особенно — в акро-режиме, отлично знают, что перед тем как совершить свой первый взлёт на настоящем квадрокоптере желательно хотя бы несколько часов потренироваться на симуляторе!

Симулятор — это игровая программа на компьютере, которая имитирует полёт квадрокоптера, соблюдая всю физику процесса полёта. 

В среде FPV-пилотов общепринято что тренироваться нужно на той же аппаратуре, на которой будешь потом летать. 

И да, не забывайте! В мире гонок и фристайла устройство управления принято называть не пультом, а аппаратурой управления!

Однако такой выбор подходит не всем и иногда сопровождается неудобствами:

  1. Аппаратура управления как правило слишком дорогая и громоздкая чтобы носить её с собой, если планируешь тренироваться не только дома.  Покупать вторую компактную аппаратуру для тренировок также удовольствие недешёвое. 
  2. Процесс подключения аппаратуры к компьютеру как правило сложен и требует дополнительного оборудования (шнуры, переходники и тд), и если на домашнем компьютере один раз на это можно потратить время, то для других мест тренировки такое подключение вызовет дополнительные проблемы. 
  3. При работе аппаратуры расходуется заряд её аккумулятора, который потом нужно заряжать
  4. При работе аппаратура излучает сигнал на частоте 2.4ггц, который мешает работе вайфая и возможно других электронных приборов.
  5. В конце концов есть люди, которые ещё не решились вступать в FPV-хобби, которые сомневаются, получится ли у них управлять квадрокоптером, и симулятор — это отличный шанс для них ответить на этот вопрос — получится или нет. Но высокая цена аппаратуры управления не даёт им шанса попробовать себя в качестве пилота за малые деньги. 

Конечно, Вы можете сказать все эти проблемы решаемы, но в сумме они создают много неудобств. 

Что готовое можно применить?

Для решения этой проблемы я решил попробовать обычный игровой геймпад, подключаемый к компьютеру по USB. У него есть внизу две ручки которые могут работать в аналоговом режиме. И да, геймпад успешно подключился к симулятору, но у него внезапно обнаружились другие недостатки, с которыми мириться просто невозможно:

  1. Ручки неподходящей формы — слишком низкие и маленькие.
  2. Стик газа подпружинен. 
  3. Мёртвая зона (deadband) слишком большая. Нужно сдвинуть ручку почти до половины чтобы она начала действовать. 
  4. После мёртвой зоны — слишком короткий ход ручки, и как следствие — слишком высокая чувствительность. Сдвигаешь ручку на пару милиметров а получаешь сдвиг ручки в крайнее положение!

А тепреь давайте рассмотрим новое простое устройство, которое лишено всех этих неудобств, по цене дешевле чем тот же геймпад!

Из чего это сделано?

В качестве основы для будущего пульта, или как говорят коптероводы — аппаратуры управления — я решил использовать старый пульт от детского квадрокоптера. Подойдёт любой пульт от коптера или вертолёта с четырьмя каналами управления, где две ручки двигаются и по вертикали и по горизонтали! 

Если Вы мне собираетесь сказать что найти в вашем городе такой старый пульт очень сложно, то раньше я тоже так думал. Но как только я начал активно искать и спрашивать о нём у знакомых — мне предложили сразу несколько вариантов, причём некоторые бесплатно!

В таких пультах ручки управления при отклонениях поворачивают переменные резисторы, или как их ещё называют — потенциометры. Обычно в таких пультах потенциометры включены по схеме делителя напряжения. Это значит что на крайние контакты подключаются провода с постоянным напряжением — минус и плюс (в нашем случае — это 5 вольт), а на среднем контакте при поворотах потенциометра возникает какое-то среднее напряжение между 0 и 5 вольтами. 

Напряжение со среднего вывода потенциометра мы отправляем на аналоговый вход платы Ардуино. Ардуино будет замерять полученное напряжение, и в зависимости от величины напряжения она будет понимать, насколько наш пилот повернул потенциометр. 

Пока я разбирался в этих схемах мне вспомнился канал “Электроника у деда на кухне”. На этом канале постоянно разбирается по деталькам всякие такие вот электронные приспособления… Даже интересно как бы этот “Дед на кухне” решал такую же задачу которая встала сегодня передо мной? 

Далее — задача адруино — прикинуться джойстиком и передать в компьютер информацию о положении осей джойстика. Этим будет заниматься программное обеспечение внутри Ардуино. 

Хочу обратить внимание, что во всей линейке плат Arduino есть две платы, которые умеют прикидоваться стандартным устройством ввода для компьютера — клавиатурой или джойстиком! Не буду утомлять Вас муками моего Выбора, просто скажу по соотношению цена-удобство-функционал я выбрал Адруино Про Микро! 

Разобрав пульт, вероятнее всего возле ручек управления вы найдёте четыре группы из трёх контактов, к которым подключены потенциометры — по две такие троечки возле каждой ручки управления. Крайние из них, как мы уже выяснили — нужно подключить к минусу и плюсу от контроллера Ардуино.
И поскольку наша плата раньше уже использовалась для похожей цели — то скорее всего контакты всех минусов и всех плюсов между всеми потенциометрами скорее всего уже соединены, поэтому Вам нужно припаять плюс и минус только к одной такой группе контактов. 

Далее, средние выводы от всех потенциометров нужно соединить с аналоговыми входами платы Ардуино: А0, А1, А2, А3. Последовательность соединения при этом не важна, т.к. современные программы-симуляторы умеют подстраиваться под любые джойстики с любой последовательностью каналов. 

Но если уж делать всё по правилам, то давайте соблюдать стандартную авиационную раскладку AETR: Элероны, Элеватор, Тротл, Руддер. 

Скетч можно скачать по ссылке: Скетч пульта для симулятора. Я не очень разобрался в осях джойстика но использовал 4 подходящих по смыслу оси компьютерного джойстика: 

  1. Axis X
  2. Axis Y
  3. Throttle
  4. Rudder

Итак, получается что при отклонении ручек управления поворачивается потенциометр, изменяется напряжение на его среднем выводе, это напряжение измеряет Ардуино, и в зависимости от этого напряжения он имитирует сигналы настоящего джойстика и подаёт эти сигналы через USB-шнур на компьютер!

К слову, после долгих испытаний мне уже захотелось сделать ещё одну доработку: После каждого краша мне приходилось тянуться к клавиатуре для нажатия кнопки возврата дрона на стартовую позицию! А ведь такую функцию как нажатие определённой кнопки можно также возложить на ардуино! Нужно только допаять пару проводов от ардуино до кнопки и дописать несколько строк в коде прошивки. Но пожалуй лучше оставлю эту функцию на потом, за пределы этого ролика. 

Выводы

Как результат — из старого бесполезного пульта и платы ардуино мы получили удобный функциональный чувствительный джойстик в форме полноформатной аппаратуры управления, который распознаётся компьютером как полноценный джойстик, позволяет тренироваться в симуляторе и не требует внешнего питания! Для подключения нужен только шнур Micro-USB, которым многие из нас ежедневно заряжают свой смартфон. 

В процессе испытаний один мой подписчик посоветовал мне подключить этот пульт к симулятору на смартфоне, и о чудо! Он заработал! Оказывается наше устройство подходит не только для компьютеров но и для смартфонов и планшетов на Андроид! Для такого подключения всего лишь нужен дополнительный OTG-кабель! 

Итак, если у Вас есть лишний пульт от сломанного квадрокоптера — рекомендую повторить мою переделку чтобы он не валялся без дела, а если вы задумывались о полётах от первого лица но жалеете денег на покупку аппаратуры — обязательно сделайте себе такой джойстик чтобы наконец ощутить самому ощущение управляемого полёта!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *