Руль logitech momo racing force feedback wheel
Содержание:
Настройка руля Logitech
Современный рынок видеоигр предлагает огромное множество симуляторов, способных погрузить с головой пользователя в виртуальный мир. Особняком в этом плане стоит жанр гоночных симуляторов, позволяющих сесть на место пилота гоночного болида, реактивного самолета или любого другого вида транспорта. Для обеспечения максимального виртуального эффекта разработаны специальные девайсы — манипуляторы. Так, лидером в нише игровых рулей по праву считается компания Logitech.
Самые популярные модели:
Чтобы прочувствовать реальную атмосферу гоночной трассы, нужно выполнить настройку манипулятора. Далее мы попробуем разобраться, как настроить руль Logitech driving force GT, Логитек Момо Рэйсинг и другие модели с помощью программы Logitech Profiler.
Осмотр периферии
Поскольку данное решение предполагает детальное знакомство с подключаемой к контроллеру периферией (иначе как мы будем с нею работать), продолжаем осмотр.
4.1 Блок кнопок рычага переключения передач
Блок кнопок (на рис. №№ 1 и 1а) состоит из двух кнопок и диодной сборки BAV70. К контроллеру подсоединяется тремя проводами. Схема такая:
Мы планируем подключать эту плату к контроллеру по стандартной для кнопок схеме, а потому диодная сборка нам не нужна, но и мешать не будет.
4.2 Датчик среднего положения руля
На красный и чёрный провода подаётся питание. На зелёном проводе нормально высокий уровень, который сменяется на низкий, когда руль установлен по центру, т.е. металлический предмет (2b) находится напротив платы датчика (2a).
Провода, подходящие к плате энкодера:
4.4 Жгут проводов рулевого колеса
Из рулевого колеса выходит многожильный провод, оканчивающийся 10-типиновым разъёмом. Всего на рулевом колесе 10 элементов управления – 6 кнопок без фиксации, два подрулевых переключателя без фиксации и два светодиода. Для удобства дальнейшего изложения, пронумеруем все элементы:
Для того чтобы точно знать назначение проводов, рулевое колесо было разобрано и изучена схема соединений внутри него.
Видно, что ничего, кроме тактовых кнопок, светодиодов и четырёх диодных сборок BAV70 (D9-D12) здесь нет. На отдельных маленьких платах расположены тактовые кнопки подрулевых переключателей.
Принципиальная схема (номера, проставленные возле обозначений деталей соответствуют рисунку внешнего вида рулевого колеса выше):
Легко заметить, что разработчики использовали диодную развязку, чтобы сэкономить пины и повесили восемь кнопок на шесть пинов разъёма. Для того, чтобы использовать такую конструкцию, нам будет необходимо правильно её подключить и запрограммировать.
Подключать будем так (в объяснении используются номера пинов разъёма, обозначенные на схеме):
Программно работаем так:
Таблица соответствия пинов кнопкам. Строки соответствуют пинам 1-4, в ячейках находятся номера кнопок, которым этим пины соответствуют:
№ пина | пин №5 = HIGH пин №6 = LOW | пин №5 = LOW пин №6 = HIGH |
1 | кнопка 4 | кнопка 3 |
2 | кнопка 8 | кнопка 5 |
3 | кнопка 9 | кнопка 6 |
4 | кнопка 10 | кнопка 7 |
Меняем настройки
Force Feedback, то есть настройка эффектов, находится в меню «Редактирование», подменю «Дополнительные игровые настройки». Чтобы использовать эту функцию, нужно отметить флажком строку «Использовать дополнительные настройки эффектов».
Дополнительные настройки эффектов
Основные настраиваемые параметры:
- «Общие силовые эффекты» — это совокупная чувствительность к игровым эффектам;
- «Эффект силовой отдачи» — чувствительность к эффекту отдачи;
- «Damper Effect Stregth» — чувствительность эффекта демпфирования (чувствительность к физическим контактам);
- Флажок в строке «Включить центрирование отдачи» означает, что используется опция центрирования (в стандартных настройках опция выключена), а с помощью «Центрирования эффекта отдачи» можно настроить его чувствительность.
- Флажок в строке «Использование специальных настроек рулевого колеса» включает использование настроек манипулятора.
- Флажок «Комбинирование педалей» назначает общую ось для педалей акселератора и торможения (в стандартных настройках опция отключена).
- Флажок «Градус поворота» включает изменение градуса поворота руля.
Регулируем чувствительность манипулятора
Кроме вышеперечисленных эффектов можно регулировать настройки осей, управлять зонированием (задавать «мертвые» и «рабочие» зоны руля). Для примера, настроим педаль торможения.
Открываем наш профиль, ищем пункт «Brake» и в открывшемся окне находим «Axis Properties». В новом окне указаны возможные настройки:
- «Чувствительность» регулирует зависимость осей. Если установить 50 %, то чувствительность торможения будет пропорциональной. Значение меньше 50 % задает более высокую чувствительность в конце хода, больше 50 % — наоборот, в начале хода;
- С помощью опции «Мертвая зона» указываем нечувствительную область для манипулятора;
- Опция «Range» указывает рабочую зону;
- Флажок «Invert Axis Polarity» отображает зеркально управление манипулятора и отклика в игре.
Проектное решение
По результатам осмотра внутренностей рулевого блока был сделан предварительный вывод о том, что, наверное, не имеет смысла делать свой USB-Host для расшифровки команд и передачи их по радио. Во-первых, внятной документации по высокоуровневому протоколу игрушки найти не удалось, а во-вторых, конструкция в которой информация собирается с обычных кнопок и цифровых датчиков, кодируется для USB, затем декодируется обратно, чтобы быть отправленной по радио выглядела бы слишком надуманной.
Вместо этого было решено: делать собственную плату контроллера с радиопередатчиком на борту, а все датчики и прочую периферию подключать к ней через точно такие же, как на оригинальной плате, разъёмы. Таким образом, сохраняется возможность вернуть игрушку в изначальное состояние путём замены контроллера на оригинальный (на случай, если хозяин передумает и решит ещё поиграть на компьютере).
Указываем назначение кнопок руля
За что еще любят программу Logitech Profiler, так это за возможность определить для кнопки манипулятора конкретное сочетание клавиш. Такая функция бывает очень полезна в некоторых симуляторах.
Смена назначения кнопок руля
Так, например, игра «NetKar Pro» для большего сходства с реальностью предлагает эффект «забрызгивания» стекла защитного шлема. Интересный эффект, который несомненно добавляет реалистичности. Так вот, по мере загрязнения стекла экран мутнеет и действительно обзор затрудняется. Можно вытереть стекло — для этого по умолчанию используется кнопка «L» на клавиатуре. Само собой, не слишком удобно, играя на манипуляторе, искать нужную кнопку на клавиатуре, поэтому лучше назначить эту клавишу одной из кнопок на руле.
Для этого в программе Logitech Profiler открываем приготовленный профиль нашего симулятора, нажимаем кнопку на руле, которой мы хотим добавить сочетание клавиш. Откроется список, в нём выбираем эту кнопку и в открывшемся меню выбираем «Select Keystroke» и «New Keystroke». Откроется новое окно, в котором выбираем опцию «Запись» и нажимаем сочетание клавиш на клавиатуре. В нашем случае это одна клавиша «L», затем кликаем «Стоп» и «Ок». Готово.
Вскрытие. Рулевой блок
Вот как выглядит рулевой блок, со снятой крышкой.
В центре всего этого великолепия находится плата контроллера зелёного цвета. Вся периферия подсоединена к ней.
Слева и справа расположены блоки кнопок рычага переключения передач (на рисунке обозначены цифрами 1 и 1а). Рычаг-то у устройства один, но блоков кнопок два, видимо, для того, чтобы можно было легко переставить рычаг, если играющий, например, левша. Сразу отмечу, что поставить два рычага, и использовать оба не получится (без переделок), т.к. провода от них соединены параллельно и входят в контроллер одним трёхпиновым разъёмом.
На оси рулевого колеса находится небольшой металлический предмет (2b) и, напротив того места, где он оказывается когда руль стоит прямо, плата с датчиком (2a). Разумно предположить, что это датчик центрального положения руля, что и подтвердилось при более детальном рассмотрении (ниже).
Обращает на себя внимание внушительных размеров электродвигатель постоянного тока, подключённый к рулевому колесу через редуктор. Им можно устанавливать колесо в среднее положение после включения питания, возвращать рулевое колесо в среднее положение после поворота, передавать на него вибрации от дороги и т.д
Двигатель вращается не только сам по себе, но и при вращении рулевого колеса руками. К двигателю подсоединён оптический энкодер (3) с помощью которого контроллер может получать информацию о вращении рулевого колеса.
Разъём для подключения педального блока (4) распаян на плате контроллера. Также на плату заводится провод для подключения к компьютеру по USB (5).
Задаем сочетание клавиш для кнопок манипулятора
В онлайн-играх широко используется общение в чатах. Помимо приветствий и пожеланий удачи соперникам, также правилом хорошего тона являются извинения при создании дискомфортных ситуаций. В большинстве симуляторов присутствует функция отправки быстрых стандартных сообщений нажатием одной кнопки. Однако, некоторые игры, такие как вышеупомянутая «NetKar Pro», не предоставляют таких возможностей, и общение в чате вызывает массу трудностей. С помощью утилиты Logitech Profiler можно задать для кнопок руля некоторые часто употребляемые фразы, чтобы общаться в чате, не отвлекаясь от вождения транспортного средства.
Сочетание клавиш для кнопок
Для этого, находясь в настройках профиля симулятора, нажимаем кнопку руля, которую хотим использовать в игре, выбираем её из предложенного списка, далее «Select Command» и «New Command» — откроется окошко. Задаем название комбинации, допустим, для фразы «Привет» нажимаем на «Запись», затем кликаем «Ввод» и пишем на клавиатуре «Привет», и снова нажимаем «Ввод», далее «Ок». Готово: теперь при нажатии на кнопку руля в чат будет отправляться сообщение «Привет».
Выводы
Посчитаем пины которые нужны для подключения всего этого добра Не забываем, что кроме подключения датчиков, нам также потребуются пины для управления мотором, для работы приёмника и передатчика, а также для контроля тока в моторе (не столько для его защиты, сколько для создания динамических эффектов на руле).
Если реализовывать логику питания так, как она реализована в оригинальном устройстве, то потребуется ещё один пин для индикации факта наличия питания мотора. Хотя, его, наверное, можно как-то совместить с пином контроля тока.
Рассматривались два варианта контроллера: ATMega32A и ATMega328P без кварца, с использованием пинов PB6 и PB7 как GPIO. Именно эти микросхемы рассматривались в основном потому, что они имеются под рукой. В случае ATMega32A предполагалось свободные пины вывести на разъёмы и оставить на случай возможно расширения устройства. У ATMega328P же свободных пинов не остаётся. В результате принято решение использовать ATMega328P.