Меню

Геймпад с датчиком холла

Arduino Leonardo и авиа-симулятор. Переводим джойстик на датчики Холла и делаем педали.

Богдан Норкин

Длинными карантинными вечерами захотелось скоротать время в леталке. Достал старый, добрый Logitech Attack 3 и… вот беда, его резисторы совсем умерли. И такие мелкие просто так купить, разве что заказывать на Али и ждать месяц.

Ждать не хотелось, да и летать без педалей тоже не хотелось. Зато на полочке лежала купленная когда-то давно Arduino Leonardo https://arduino.ua/prod260-arduino-leonardo-a000057. Основная фишка этой платы в том, что она построена на базе микроконтроллера ATmega32U4, в котором есть конвертор USB и он может подключаться не только, как виртуальный СOM порт, но и как HID – мышка, клавиатура, джойстик или даже руль. Leonardo имеет 12 аналоговых входов, т.е. мы можем сделать контроллер с 12 осями – все ограничено только нашей фантазией. Ну что же, нам как раз это и нужно, будем оживлять джойстик и делать педали, решил я.

Для начала джойстик. Я давно хотел избавиться от постоянно выходящих из строя резисторов. Штатный микроконтроллер (им оказался Cypress CY7C63221A/31A) был безжалостно отправлен на полочку, (хотя datasheet на него легко гуглится) и его место гордо занял Leonardo (к сожалению в корпус плата не поместилась). На место резисторов клеевым пистолетом были неподвижно приклеены датчики Холла (датчик, реагирующий на изменение магнитного поля, подробнее о них можно почитать, например на: http://robocraft.ru/blog/electronics/594.html Honeywell SS495A https://sensing.honeywell.com/SS495A-S-linear-and-angle-sensor-ics, а на оси — маленькие подвижные неодимовые магнитики. Вышло немного не эстетично, но надежно, работает и регулируется, достаточно немного подогреть паяльником или, в идеале, феном. Подключаются датчики просто элементарно – подаем питание (они прекрасно работают от 5в), а сигнальный провод заводим на аналоговый вход Ардуино. Теперь скачиваем с github библиотеку https://github.com/MHeironimus/ArduinoJoystickLibrary/tree/version-2.0 Эта замечательная библиотека превращает ардуинку в джойстик, руль или GamePad. Библиотека поддерживает 11 осей, 32 кнопки и 2 hatSwitch.

Распаковываем и кладем в папку с билбилотеками Ардуино, на Windows по умолчанию это %userprofile%\Documents\Arduino\libraries С библиотекой идет много примеров, на всякий случай приведу свой первоначальный скэтч — джойстик с одной кнопкой, педалями и газом. О том, как подключить кнопки, читаем здесь http://arduino.ru/tutorials/button, для этого понадобится резистор, у меня под рукой были на 100К.

1, 0, // Button Count, Hat Switch Count

true, true, false, // X ,Y, no Z Axis

false, false, false, // No Rx, Ry, or Rz

true, true, // Rudder and Throttle

false, false, false); // No accelerator, brake, or steering

int button_0 = 10; // Для примера — единственная кнопка на pin10

const bool initAutoSendState = true; //иначе придется обновлять состояние контроллера вручную

Joystick.begin(); // инициализируем библиотеку

pinMode(button_0, INPUT); // назначаем пин 10, на котором у нас кнопка, как вход.

Источник

Руки-Ноги

Все, что работает — сделано руками; все, что не работает — ногами 🙂

26 января 2015 г.

Джойстик. Переделываем на датчики Холла

История проблемы

Если кто в танке, то объясняю: практически все джойстики, тем более прошлых лет выпусков, делались на основе подстроечных резисторов, которые в силу своих конструктивных особенностей и тем более активного использования в джойстике быстро приходили в негодность и управлять самолетом становилось не комфортно, он просто не слушался РУС. И тогда было придумано использовать датчики Холла вместо механических резисторов. Появились промышленные модели, но их крайне мало. И тогда народные умельцы стали своими руками переделывать на датчики Холла джойстики. А датчики эти выгодно отличаются от механических резисторов тем, что не имеют тех самых механических частей и не выходят из строя по тем же причинам потому, что работают на магнитном поле, если так можно выразится. Магнитоэлектрический датчик Холла получил свое название по имени Э. Холла, американского физика, открывшего в 1879 г . важное гальваномагнитное явление. Если на полупроводник, по которому (вдоль) протекает ток, воздействовать магнитным полем, то в нем возникает поперечная разность потенциалов (ЭДС Холла). Другими словами датчик меняет сопротивление в зависимости от направления и величины магнитного поля. Этим мы и воспользуемся.

Читайте также:  Датчик давления в газовом котле аристон

Поехали

Для все переделки нам понадобятся:

  1. Два датчика Холла SS495(A) или SS496(A)
  2. Два неодимовых магнита
  3. Два маленьких самореза/шурупа
  4. Проводки для пайки
  5. Термоклей

Датчики придется купить, откуда их выпаять я не придумал. Покупал тут (не реклама!). Магниты можете достать из ненужного CD или DVD привода с блока управления головкой, их там как раз два, а можете купить, они тоже продаются в радиомаркетах, мне обошлись по 12 рублей.

Итак, для начала надо подготовить джойстик. Придется вытащить резисторы и отрезать их крепления. Для этого открутите прижимную крышку пружины с РУС (она станет свободно перемещаться, так будет удобнее крутить все в руках), отвинтите 4 винта крепления всего блока, отпаяйте провода от резисторов и вытащите сами резисторы. Так же отрежьте места крепления резисторов, они больше не понадобятся, к тому же будут мешать при монтаже датчиков и магнитов.

Далее нужно, включив JoyTester и подключив джойстик к ПК, начать подносить датчики к магнитам и крутить РУС, смотря на график. Если график рисует правильные отклонения, т.е. двигаете РУС вправо — график ползет вправо — отлично! Если случилась инверсия — переверните магнит на 180 градусов. Вот тут нужно сделать всего две важные вещи: более менее выровнять магниты соосно вертикали РУС и найти оптимальное расстояние между датчиком и магнитом (это примерно 1,5 — 2 мм). Вы добьетесь оптимального результата если отклонения РУС до упора будут давать такое же отклонения графика до упора. Это в идеале. Но в реальности график может немного отставать или «вылезать» за границу. Как только вы нащупайте расстояние — приклеивайте датчик Холла к корпусу блока перекоса РУС с помощью термоклея, пока он остывает можно успеть подкорректировать датчик. Если вдруг приклеили неудачно, термоклей несложно отрывается (хотя самостоятельно держится так, что «нивжизнь» не отвалится). Есть только одна тонкость — центр корпуса датчика должен быть немного смещен от центра магнита, чтобы увеличить ход магнита относительно датчика.

Калибровать до посинения нет смысла, т.к. в этом джойстике есть маленькая хитрость. При каждом включении контроллер джойстика сам калибрует систему по сигналу датчика и выставляет оси «в ноль», а вот на сколько они будут отклоняться уже зависит от вас (см. выше).

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

Источник

Чем отличаются дорогие геймпады для консолей от дешевых

Содержание

Содержание

Фирменные геймпады для консолей стоят 4–6 тыс. руб., то есть примерно как игры для них. Давайте разберемся, за что просят такие деньги и чем дорогие контроллеры отличаются от дешевых. Затронем материалы, внутренние компоненты, дополнительные кнопки и не только.

Материалы

Производители консолей Sony, Microsoft и Nintendo делают разные контроллеры, однако, по сути, они схожи. Как правило, геймпад — это компактное устройство, которое удобно ложится в руки. Его «рабочими» органами выступают лицевые кнопки, «бамперы», триггеры, аналоговые стики, крестовина и служебные кнопки.

  • На лицевых кнопках («геометрические» в случае PlayStation и «буквенные» — у Xbox и Nintendo), они же кнопки действия, закреплены часто используемые команды: «взять», «прыгнуть», «поднять щит», «ударить» и так далее.
  • «Бамперы», или shoulder buttons, используются гораздо реже. Разработчики могут повесить на них, к примеру, сочетание кнопок в файтинге, чтобы геймер прожимал не несколько кнопок разом (на геймпадах из-за малого размера это неудобно), а одну.
  • Триггеры/«курки» обычно задействуют для стрельбы и набора скорости/торможения при управлении машиной. Их оснащают вибромоторами, дабы подчеркнуть яркие моменты в игре типа взрыва и дрифта.
  • Аналоговые стики нужны для управления персонажем и камерой. Оба «принимают» команды по осям вперед/назад и вправо/влево.
  • Крестовина, она же D-pad, иногда выполняет функции левого стика, то есть ей вы контролируете передвижение, иногда — служит для применения предмета в гуще схватки.
Читайте также:  Как отключить датчик уровня масла хонда цивик 4д

  • Служебные кнопки: выход в меню, запись видео и тому подобное.

На дешевых контроллерах кнопки могут неприятно скрипеть, быстро ломаться и залипать — пропускать нажатие. Их маркировка не всегда повторяет то, что у Sony, Microsoft и Nintendo. Встречаются цифры вместо букв — того, кто играет нечасто, это сбивает с толку.

Стики у реплик, особенно китайских, имеют заметные мертвые зоны. Мертвая зона — это диапазон хода стика, где геймпад ничего не фиксирует. Отклонили вы стик по минимуму или по максимуму, а контроллер не считал. Как итог, некомфортное перемещение, пальба в никуда и прыжки мимо ближайшей платформы.

Вибромоторы в копиях проигрывают официальным решениям. Контроллер DualSense адекватно передает езду по различным типам поверхности, натяжение тетивы, отдачу автомата. Жаль, по-настоящему потенциал DualSense раскрыт в считанном количестве игр, например в Astro’s Playroom.

У дешевого контроллера может вовсе не быть стиков. Подобные манипуляторы рассчитаны на старые приставки и проекты из той эпохи, когда индустрия еще не перешла в 3D, и 2D-игры занимали львиную долю рынка.

Но вернемся в наши дни и закончим пункт про материалы. Копию от стороннего производителя зачастую выдает некачественный пластик. Он жесткий, с зазорами в местах соединения элементов, скользкий. Долго с таким геймпадом не просидишь — ладони вспотеют. Фирменные контроллеры, напротив, имеют текстурированные рукоятки и перфорированные стики.

Дополнительные функции

Производители консолей иногда экспериментируют с дополнительными элементами. Допустим, Sony снабдила DualShock 4 сенсорной панелью. В играх она выполняет самые разные функции, одна из очевидных — на нее назначен вызов карты.

Еще на геймпадах Sony, Microsoft и Nintendo есть кнопка записи геймплея и снятия скриншотов. Удобно, ведь не придется даже вставать с дивана, чтобы сохранить интересующий момент. Или взять динамик на том же DualShock 4. Порой через него к вашему герою обращаются окружающие персонажи, что усиливает погружение.

Подключение

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

К подзарядке производители консолей подходят по-своему. У DualShock и DualSense от Sony есть встроенный аккумулятор. «Джойконы» от Nintendo Switch необходимо втыкать для подпитки в консоль, когда та стоит в док-станции. А Microsoft упорно предлагает использовать AA-батарейки.

С репликами может произойти конфуз. Или провод хрупкий, или аккумулятор чахлый.

Идем дальше, к передаче данных. Существует два API (интерфейс программирования приложений), через которые контроллеры отдают команды игре: DirectInput и XInput. Оба API разработала Microsoft. В свое время устаревший DirectInput они заменили на XInput. У XInput размещение кнопок стандартное, в случае же DirectInput необходимо возиться с настройкой управления в каждой игре.

Геймпады Microsoft связываются с Xbox и PC под Windows по XInput. Sony же выбрала DirectInput. Для консолей этот момент почти не имеет значения — разумеется, если вы купите сторонний контроллер, заточенный под ту же PlayStation, он будет работать с приставкой. Однако если вы планируете использовать геймпад не только в тандеме с консолью, а вдобавок играть на компьютере, то придется призадуматься.

Читайте также:  Почему светодиодную лампу нельзя использовать с датчиком движения

Некоторые бюджетные манипуляторы «дружат» с одним API, некоторые — с двумя. Все игры за последние полтора десятилетия выходят на PC преимущественно с поддержкой XInput. Файтинг-сообщество крайне негативно отреагировало на шаг Capcom выпустить Street Fighter 5 только с XInput. DirectInput-геймпад пригодится лишь любителям классики.

Стики и триггеры на потенциометрах и датчиках Холла

Существует мнение, что в консольных геймпадах применяются стики и триггеры на датчиках Холла. Оно верно только отчасти.

Стики и триггеры — наиболее чувствительные элементы геймпада. Начнем со стиков. Они базируются на потенциометрах — переменных резисторах. На каждый стик приходится по два потенциометра, установленных перпендикулярно (вперед/назад и вправо/влево). В этих датчиках присутствуют трущиеся детали, что изнашиваются со временем, плюс на них накапливается пластиковая пыль. Также постепенно растягивается пружина, возвращающая стик в «нулевое» положение. В итоге проявляется дрифт (или дрейф) стика — когда он в «нулевом» положении, персонажа тянет в сторону.

Модули со стиками для Sony, Microsoft и Nintendo поставляет японская фирма Alps. Они рассчитаны на 2 миллиона циклов при поворотах и 0,5 миллиона — при нажатиях. Ютуб-канал iFixIt подсчитал, что применительно к DualSense это 417 часов игры. Хватит лишь на год, если гулять по виртуальным мирам чуть больше часа ежедневно.

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

Единственным консольным геймпадом, оснащенным стиком на датчике Холла, был контроллер Sega Dreamcast. Sega установила магнит в стик и разместила четыре датчика Холла на плате под ним. Когда вы двигали стик, магнитное поле воздействовало на датчики. Преимущество подобного решения — в отсутствии соприкасающихся поверхностей и точности считывания колебаний магнитного поля.

Курки в манипуляторе Dreamcast тоже основаны на датчиках Холла. Идею позаимствовала Microsoft в контроллерах для Xbox One и Xbox Series.

Модификация и настройка

Как ни странно, консольные геймпады допускают тонкую настройку и модификацию. Для примера возьмем Xbox Elite Wireless Controller Series 2.

На днище у него покоятся съемные лепестки — четыре штуки. Они подменяют лицевые кнопки. В играх нередко требуется бежать, вращать камерой и выполнять какое-нибудь третье действие, к примеру, прыжок. Если большие пальцы заняты стиками, то как же прыгать? Microsoft советует задействовать лепестки. При желании на них можно повесить и иные функции, потому что у Xbox Elite 2 три настраиваемых профиля для хранения раскладки.

Обращает на себя внимание и корректировка хода курков. Есть три позиции — долгий ход, средний и короткий. Долгий ход актуален для гонок, средний и короткий — для шутеров. Наконец, Xbox Elite 2 позволяет налету менять крестовину (со стандартной крестообразной на плоскую/вогнутую) и стики — речь о форме шляпок и высоте ножек.

Модификации порой принимают глобальный размах. Это когда производитель консоли выпускает геймпад, стилизованный под конкретную игру: Xbox Wireless Controller в версии Gears 5 Kait Diaz Limited Edition или DualShock 4 в версии God of War Edition. Внешне они здорово отличаются от стандартных аналогов. Сторонние компании обычно не могут предложить подобного из-за отсутствия лицензии.

Заключение

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

Источник

Adblock
detector