Делаем руль и педали к компьютеру

Делаем руль и педали к компьютеру

Чтобы изготовить руль и педали, достаточно купить несколько деталей, прочитать инструкции и советы и немного поработать руками. Как же все это работает. Большинство персональных компьютеров, используемых для игр, имеет звуковую карту. На этой карте есть геймпорт, в который можно подключать джойстики, геймпады, рули и прочее. Все эти устройства используют возможности игрового порта одинаково — разница лишь в конструкции устройства, а человек выбирает такое, какое является наиболее подходящим и удобным для той игры, в которую он играет. Геймпорт персонального компьютера поддерживает 4 переменных сопротивления (потенциометра) и 4 мгновенных кнопки-выключателя (которые включены, пока нажаты). Получается, что можно в один порт подключить 2 джойстика: по 2 сопротивления (одно — влево/вправо, другое — вверх/вниз) и по 2 кнопки на каждый.

Если посмотреть на звуковую карту, то можно без труда разглядеть геймпорт, как на этом рисунке. Синим цветом указано, каким иголкам в порту соответствуют функции джойстика: например j1 Х означает «джойстик 1 ось Х» или btn 1 — «кнопка 1». Номера иголок показаны черным цветом, считать надо справа налево, сверху вниз. при использовании геймпорта на звуковой плате нужно избегать подключений к иголкам 12 и 15. Саундкарта использует эти выходы для midi на передачу и прием соответственно. В стандартном джойстике потенциометр оси Х отвечает за движение рукоятки влево/вправо, а сопротивление оси Y — вперед/назад. Применительно к рулю и педалям, ось Х становится управлением, а ось Y соответственно дросселем и тормозом. Ось Y должна быть разделена и подключена так, чтобы 2 отдельных сопротивления (для педалей газа и тормоза) действовали как одно сопротивление, как в стандартном джойстике. Как только станет ясна идея геймпорта, можно начинать проектировать любую механику вокруг основных двух сопротивлений и четыех выключателей: рулевые колеса, рукоятки мотоцикла, контроль тяги самолета. насколько позволяет воображение.

Рулевой модуль . В этом разделе будет рассказано, как сделать основной модуль руля: настольный кожух, содержащий почти все механические и электрические компоненты руля. электрическая схема будет пояснена в разделе «проводка», здесь же будут охвачены механические детали колеса.

На рисунках: 1 — рулевое колесо; 2 — ступица колеса; 3 — вал (болт 12мм x 180мм); 4 — винт (держит подшипник на валу); 5 — 12мм подшипник в опорном кожухе; 6 — центрирующий механизм; 7 — болт-ограничитель; 8 — шестерни; 9 — 100к линейный потенциометр; 10 — фанерная основа; 11 — ограничитель вращения; 12 — скоба; 13 — резиновый шнур; 14 — угловой кронштейн; 15 — механизм переключения передач.

На рисунках вверху показаны общие планы модуля (без механизма переключения передач) сбоку и в виде сверху. Для придания прочности всей конструкции модуля используется короб со скошенными углами из 12мм фанеры, к которому спереди прикреплен 25мм выступ для крепления к столу. Рулевой вал сделан из обычного крепежного болта длиной 180мм и диаметром 12мм. Болт имеет два 5мм отверстия — одно для болта-ограничителя (7), ограничивающего вращение колеса, и одно для стального пальца механизма центрирования, описанного ниже. Используемые подшипники имеют 12мм внутренний диаметр и прикручены к валу двумя винтами (4). Центрирующий механизм — механизм, который возвращает руль в центральное положение. Он должен работать точно, эффективно, быть простым и компактным. Есть несколько вариантов, здесь будет описан один из них.

Механизм (рис. слева) состоит из двух алюминиевых пластин (2), толщиной 2мм, через которые проходит рулевой вал (5). Эти пластины разделены четырьмя 13мм вкладышами (3). В рулевом валу просверлено 5мм отверстие, в которое вставлен стальной стержень (4). 22мм болты (1) проходят через пластины, вкладыши и отверстия, просверленные в концах стержня, фиксируя все это вместе. Резиновый шнур накручивается между вкладышами на одной стороне, затем по вершине рулевого вала, и, наконец, между вкладышами с другой стороны. натяжение шнура можно менять, чтобы регулировать сопротивление колеса. Чтобы избежать повреждений потенциометра, необходимо сделать ограничитель вращения колеса. Практически все промышленные рули имеют диапазон вращения 270 градусов. Однако здесь будет описан механизм поворота на 350 градусов, уменьшить который будет не проблема. Стальной г-образный кронштейн, длиной 300мм (14) прикрепляется болтами к основе модуля. этот кронштейн служит для нескольких целей:

— является местом крепления резинового шнура центрирующего механизма (два болта m6 по 20мм в каждом конце);
— обеспечивает надежную точку останова вращения колеса;
— усиливает всю конструкцию в момент натяжения шнура.

Болт-ограничитель (7) м5 длиной 25мм вкручивается в вертикальное отверстие в рулевом валу. Непосредственно под валом в кронштейн вкручивается болт 20мм m6 (11). Для уменьшения звука при ударе на болты можно одеть резиновые трубочки. Если нужен меньший угол поворота, тогда в кронштейн надо вкрутить два болта на необходимом расстоянии. Потенциометр крепится к основанию через простой уголок и соединяется с валом. Максимальный угол вращения большинства потенциометров составляет 270 градусов, и если руль разработан для вращения в 350 градусов, то необходим редуктор. Пара шестерен с поломанного принтера подойдут идеально. Нужно только правильно выбрать количество зубов на шестернях, например 26 и 35. В этом случае передаточное число будет 0.75:1 или вращение на 350 градусов руля даст 262 градуса на потенциометре. Если руль будет крутиться в диапазоне 270 градусов, то вал соединяется с потенциометром напрямую.

Педали. Основа модуля делается аналогично модулю руля из 12мм фанеры с поперечиной из твердой древесины (3) для крепления пружины возврата. Пологая форма основы служит подставкой для ног. Стойка педали (8) сделана из 12мм стальной трубки, к верхнему концу которой крепится болтами педаль. Через нижний конец стойки проходит 5мм стержень, который держит педаль в монтажных кронштейнах (6), прикрученных к основанию и сделанных из стального уголка. Поперечина (3) проходит через всю ширину педального модуля и надежно (должна выдерживать полное растяжение пружин) приклеивается и привинчивается к основанию (2). Пружина возврата (5) крепится к стальному винту с ушком (4), который проходит через поперечину прямо под педалью. Такая конструкция крепления позволяет легко регулировать натяжение пружины. Другой конец пружины цепляется к стойке педали (8). Педальный потенциометр установлен на простом L-кронштейне (14) в задней части модуля. Тяга (11) крепится к приводу (12) на втулках (9, 13), позволяя сопротивлению вращаться в диапазоне 90 градусов.

Ручка переключения передач. Рычаг коробки передач представляет собой алюминиевую конструкцию, как на рисунке слева. Стальной стержень (2) с нарезанной резьбой крепится к рычагу через втулку (1) и проходит через отверстие, просверленное в Г-образном кронштейне на основании модуля руля. С обеих сторон отверстия в кронштейне на стержень установлены две пружины (1) и затянуты гайками так, чтобы создавалось усилие при движении рычага. Две большие шайбы (4, 2) располагаются между двумя микровыключателями (3), которые прикручены один на другом к основанию. Все это хорошо видно на рисунках слева и снизу.

Справа на рисунке показан альтернативный механизм переключения передач — на руле, как в болидах формулы 1. Здесь используется два маленьких шарнира (4), которые установлены на ступицу колеса. Рычаги (1) крепятся к шарнирам таким способом, чтобы они могли двигаться только в одном направлении, т. е. к колесу. В отверстия в рычагах вставляются два маленьких выключателя (3), так, чтобы при нажатии они упирались в резиновые подушечки (2), приклеенные к колесу и срабатывали. Если выключатель имеет недостаточно жесткое давление, то возврат рычагов можно обеспечить пружинами (5), установленными на шарнир.

Проводка. Немного о том, как работает потенциометр. Если снять с него крышку, то можно увидеть, что он состоит из изогнутой токопроводящей дорожки с контактами А и С на концах и бегунка, соединенного с центральным контактом В (рис 11). Когда вал вращается против часовой стрелки, то сопротивление между А и В увеличится на то же самое количество, на какое уменьшается между С и В. Подключается вся система по схеме стандартного джойстика, имеющего 2 оси и две кнопки. Красный провод всегда идет на средний контакт сопротивления, а вот фиолетовый (3) может быть подключен на любой из боковых, в зависимости от того, как установлено сопротивление.

С педалями не так все просто. Поворот руля эквивалентен движению джойстика влево/вправо, а нажатие педалей газ/тормоз соответственно — вверх/вниз. И если сразу нажать на обе педали, то они взаимно исключат друг друга, и ни какого действия не последует. Это одно-осевая система подключения, которую поддерживает большинство игр. Но многие современные симуляторы, типа GP3, F1-2000, TOCA 2 и т.д., используют двух-осевую систему газ/тормоз, позволяя применять на практике методы управления, связанные с одновременным использованием газа и тормоза. Ниже показаны обе схемы.

Схема подключения одно-осевого устройства. Схема подключения двух-осевого устройства

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

Деталей в описываемом устройстве не много, и самые главные из них — потенциометры. Во-первых, они должны быть линейными, сопротивлением в 100к, и ни в коем случае не логарифмическими (их иногда называют аудио), потому что те предназначены для аудио-устройств, типа регуляторов громкости, и имеют нелинейную трассу сопротивления. Во-вторых, дешевые потенциометры используют графитовую трассу, которая износится весьма быстро. В более дорогих используются металлокерамика и токопроводящий пластик. Такие проработают намного дольше (примерно — 100,000 циклов). Выключатели — любые какие есть, но, как было написано выше, они должны иметь мгновенный (то есть незапирающий) тип. Такие можно достать из старой мыши. Стандартный разъем джойстика D-типа с 15 иголками продается в любом магазине, где торгуют радиодеталями. Провода любые, главное, чтобы их можно было легко припаять к разъему.

Подключение и калибровка. Все тесты должны проводиться на отключенном от компьютера утройстве. Сначала надо визуально проверить паяные соединения: нигде не должно быть посторонних перемычек и плохих контактов. Затем надо откалибровать рулевой потенциометр. Так как используется сопротивление 100к, то можно измерить прибором сопротивление между двумя соседними контактами и настроить на 50к. Однако, для более точной установки, нужно замерить сопротивление потенциометра, повернув руль до упора влево, затем до упора вправо. Определить диапазон, затем разделить на 2 и прибавить нижний результат измерений. Полученное число и надо выставить, используя прибор. За неимением измерительных приборов, нужно выставить потенциометр в центральное положение, насколько это возможно. Потенциометры педалей при установке должны быть слегка включены. Если применяется одно-осевая система, то сопротивление педали газа должно быть установлено в центр (50к на приборе), а сопротивление тормоза быть выключено (0к). Если все сделано правильно, то сопротивление всего педального модуля, измеренное между иголками 6 и 9, должно уменьшиться, если нажать на газ, и увеличится — если на тормоз. Если это не случится, тогда надо поменять местами внешние контакты сопротивлении. Если применяется схема двух-осевого подключения, то оба потенциометра могут быть установлены на ноль. Если есть переключатель, то проверяется схема одно-осевой системы.

Читайте также  Инструмент для зачистки проводки

Перед соединением с компьютером, необходимо проверить электрическую цепь, чтобы не возникло короткого замыкания. Здесь потребуется измерительный прибор. Проверяем, что нет контакта с питанием +5v (иголки 1, 8, 9 и 15) и землей (4, 5 и 12). затем проверяем, чтобы был контакт между 4 и 2, если нажать кнопку 1. Тоже самое между 4 и 7, для кнопки 2. Далее проверяем руль: сопротивление между 1 и 3 уменьшается, если повернуть колесо влево, и увеличивается, если вправо. В одно-осевой системе сопротивление между иголками 9 и 6 уменьшится, когда нажата педаль газа, и увеличивается, когда нажат тормоз.

Последний этап — подключение к компьютеру. Подключив штекер к саундкарте, включаем компьютер. Заходим в «Панель управления — Игровые устройства» выбираем «добавить — особый». Ставим тип — «джойстик», осей — 2, кнопок 2, пишем имя типа «LXA4 Super F1 Driving System» и давим OK 2 раза. Если все было сделано правильно и руки растут от куда надо, то поле «состояние» должно измениться на «ОК». Щелкаем «свойства», «настройка» и следуем инструкциям на экране. Остается запустить любимую игрушку, выбрать в списке свое устройство, если потребуется, дополнительно его настроить, и все, в добрый путь!

Как подключить руль к компьютеру

Превратить собственную клавиатуру в кокпит гоночной машины теперь просто — достаточно приобрести руль и педали. Они оснащены стандартными USB-шнурами, которые можно подсоединить ко всем разъемам. Однако часто этого не происходит и ПК «не видит» игровую установку.

Как подключить руль и педали к компьютеру Windows 7

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

Такое правило действует в отношении всех вариаций Windows.

Любой девайс, собирающийся вступить в контакт с компьютером, имеет соответствующее программное обеспечение или драйверы. Вернее, таковые присутствуют на компьютере. Только благодаря им машина опознает то, что к ней подключилось. Если же их нет, придется пользователю самому озаботиться этой проблемой.

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

Система дает это понять сообщением об ошибке или фразой «Устройство не опознано».

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

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

Настройка контроллера или руля вручную

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

    Нажать слева внизу кнопку с логотипом Виндовс, чтобы открыть меню «Пуск».

Осталось произвести калибровку и настройку контроллера, после этого можно будет запускать симулятор и играть.

Калибровка

Для того, чтобы откалибровать подсоединенный девайс, есть два простых способа.

Способ №1

  1. Нажать слева в нижнем углу кнопку «Пуск», которую обычно используют при завершении работ или перезагрузке.

Способ №2

Второй способ позволяет обойтись без непонятных неопытному юзеру команд, достаточно:

    После нажатия кнопки пуска перейти в рубрику «Панель управления».

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

Подкрутив эти опции под свои предпочтения, руль тестируют еще раз. Если пользователь удовлетворен тем, что видит, можно переходить к игре.

Видео — Как откалибровать руль

Особенности для игры GTA

Игровая станция для GTA подключается описанным для Windows 7 способом — то есть, необходимо соединить между собой руль и педали, затем подключить к компьютеру, и после установки драйверов и калибровки можно играть.

Чаще все происходит проще — компьютер сразу опознает устройство, давая игроку возможность сразу включаться в игру.

Особенности при настройке симулятора CREW

В симуляторе CREW, чтобы полноценно им пользоваться, необходимо пройти два этапа:

  1. Инсталляция драйвера с диска (загружают носитель, запускают программу и далее действуют по инструкции на дисплее).
  2. Подключение устройства.

Процесс установки драйверов:

    В “Пуск” открыть «Панель управления».

Установив драйвера, подключают игровое оборудование через стандартные usb- кабели.

Параметры симулятора, их корректировка

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

  • реакцию руля;
  • градус поворотов;
  • отдачу.

Каков оптимальный вариант, точно сказать нельзя — это определяет каждый игрок самостоятельно в процессе игры, сверяясь с собственными ощущениями.

Для облегчения этой задачи можно также воспользоваться утилитами. Например Logitech Profiler — достаточно настроить собственный профиль в ней и она подгонит под заданные параметры любую игру пользователя.

Создаем профиль в Logitech Profiler

Чтобы создать новый профиль нужно:

    Перейти на официальный сайт https://support.logitech.com/ru_ru/downloads, кликнуть по вкладке «Файлы для загрузки».

Какие проблемы могут возникнуть в Crew

Приложение Logitech Profiler позволяет также решить ряд проблем, из-за которых многие пользователи разочаровались в симуляторе Crew, а именно:

  • слишком чувствительный руль — точнее, импровизированный кар дергается от одного прикосновения к рулю;
  • повернуть удается, только выкрутив руль по максимуму;
  • не запускаются заданные параметры профиля Logitech Profiler.

Происходит это из-за конфликта пользовательских настроек с теми, что задал производитель.

С этими сложностями можно справиться.

    В утилите создают профиль для симулятора Crew (инструкция по созданию профиля рассмотрена чуть выше).

Прежние настройки сняты.

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

Видео — Как подключить руль

Понравилась статья?
Сохраните, чтобы не потерять!

Руль для компьютера своими руками

Как сделать руль для ПК своими руками — принципиальная схема

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

Ничего сложного в изготовлении руля для ПК нет, поскольку это в принципе тот же джойстик, только в другом виде. Для изготовления можно использовать даже рулевое колесо от настоящего автомобиля.

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

Как сделать руль для компьютера своими руками

Итак, для изготовления самодельного руля нам понадобится:

  • Руль от настоящего или детского автомобиля;
  • Переменный резистор на 100 кОм;
  • Крепление руля к столу. Можно использовать небольшие тиски для этих целей или струбцины;
  • Кнопки для руля (они будут выполнять роль газа и тормоза). Кнопки можно выпаять из обычной компьютерной мышки;
  • Провода и паяльник.

Принципиальная схема самодельного руля для компьютера представлена ниже. Ничего сложного в ней нет, а само устройство подключается к MIDI порту компьютера.

Сборка руля по порядку

В принципе для изготовления ПК руля понадобится немного: сам руль, приделанные две кнопки сбоку, несколько проводов и переменный резистор.

Что такое резистор можете прочитать в другой статье сайта elektriksam.ru . Для изготовления руля необходимо использовать резистор с линейной характеристикой на 100 кОм.

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

Затем необходимо будет подключить с помощью проводов самодельный руль к компьютеру. Если в нем нет MIDI порта, то лучшим вариантом станет приобретение звуковой карты и подключение самодельного руля через её порт. Схема подключения к MIDI порту представлена ниже.

Подключение руля к компьютеру

После сборки самодельного руля для компьютера, его необходимо найти в настройках ПК. Для этого заходим в «Панель управления» операционной системы, а затем в «Игровые устройства». Далее щёлкаем на «Добавить устройство» и добавляем руль через выбранный порт.

Если всё было подключено правильно, то руль для ПК должен определиться сразу, как игровое устройство. Теперь, если скачать какую-нибудь крутую гонку, например NeedForSpeed, остаётся лишь выбрать в настройках самодельное устройство, переключив управление с клавиатуры на него.

Тесты самодельного руля для компьютера показали, что он достаточно качественно справляется с поставленной задачей. В играх руль имеет неплохую чувствительность, а картинка не дёргается из стороны в сторону, как это часто бывает.

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

Педаль в пол: создаём очередной ножной манипулятор для ПК

Буквально месяц назад я натолкнулся на эту статью, где повествуется о педалировании Vim. Чуть позже, после своего длительного трёхминутного исследования, я выяснил, что что тема эта уже не новая и довольно популярная. Сам я Vim использую только в случае крайней необходимости (если уж и приходится работать в консоли, то предпочитаю Nano), но ведь можно сделать подобное и под другие приложения.

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

А зачем оно мне?

Если у вас нет сомнений в необходимости и полезности этого устройства, то можете пропустить этот пункт. Для остальных сначала хотелось бы рассказать о предпосылках создания данного устройства.

Во все времена программисты и дизайнеры старались сделать удобный и дружественный интерфейс, чтобы пользователь мог без лишних заморочек работать с приложением используя мышь и клавиатуру, так зачем же нам ещё один манипулятор? Что же, заглянем немного в историю, а точнее, в начало XVIII века, когда был изобретён такой музыкальный инструмент, как фортепиано. Как известно, это слово буквально переводится как «громко-тихо», но мало кто задумывается, что такой инструмент умный итальянский мастер получил, фактически «запедалировав» существовавший тогда клавесин, что и позволило в какой-то степени управлять громкостью звука, при этом не отнимая руки от клавиш.

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

Читайте также  Декоративная проводка в деревянном доме

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

Необходимые ресурсы

Схема устройства

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

Для педалей я решил выделить сразу 4 порта PB1-PB4, то есть две для левой, и две для правой ноги, хотя пока педали у меня только 3. К тому же, они все находятся в одной группе и расположены в одном месте. Под светодиод я отвёл выводы PD0, PD1 и PD4, под кнопку — PD7.
При этом нам не понадобятся никакие подтягивающие резисторы, если использовать те, что встроены в контроллер. Правда, тогда, при нажатии кнопки или педали, на входе будет низкий уровень, а при отпускании — высокий, то есть, нажатия будут инвертироваться, и об этом не стоит забывать.

Написание кода

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

Подготовка

Для начала нам нужно понять, что вообще такое педаль с точки зрения программы. Я решил сделать возможность задания педали одного из двух режимов — реального времени и триггера. Каждая педаль при этом имеет две программы: первая выполняется при удержании педали в режиме реального времени или при нечётных нажатиях в режиме триггера, вторая — при отпускании педали в режиме реального времени или при чётных нажатиях в режиме триггера. Так же у педали есть порт, состояние, и две переменные — текущие позиции в программах 1 и 2. У меня получилась вот такая структура:

Arduino имеет довольно мало памяти и к тому же 8-разрядная, так что лучше стараться использовать char нежели int там, где это возможно.

Так же нам понадобится стандартная библиотека Keyboard для работы в качестве клавиатуры.

Обработка нажатий

Сейчас нам нужно сделать интерпретатор, который будет читать данные из массива и отправлять их в виде нажатий клавиш на машину, а так же выделить несколько значений под различные внутренние команды. Открываем страницу с кодами клавиш, и смотрим что и как мы можем нажать. Я не стал глубоко копать и изучать всякие стандарты клавиатур, так как информации здесь мне показалось вполне достаточно для такого проекта. Первая половина отведена под стандартные ASCII-символы (хотя некоторые из них и непечатаемы или не используются), вторая же — под различные клавиши-модификаторы. Есть даже отдельные коды для левых и правых клавиш, что очень порадовало, а вот специальных кодов для цифр с нампада я не увидел, хотя, насколько я знаю, они немного по-особому воспринимаются в системе, нежели обычные цифры. Возможно, их коды находятся где-то в «дырах», между диапазонами, но сейчас не об этом. Итак, самый большой код имеет клавиша «вверх» — 218, а значит, диапазон 219-255 можно считать свободным, ну или по крайней мере там нет каких-то важных клавиш.

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

Итак, у нас есть интерпретатор и примерное понимание того, как наш педалборд взаимодействует с компьютером. Теперь надо всё это довести до состояния полноценной прошивки и проверить работоспособность на одной педали. Если создать экземпляр педали и циклично вызывать pedalAction(), то по идее у нас будет выполняться заданная в структуре программа.

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

Одна педаль хорошо, а две — лучше

Теперь пришло время разобраться с обработкой сигналов с нескольких педалей, а также добавить переключение режимов. В начале статьи было выделено 4 порта под педали, каждой из которых надо позволить работать в семи режимах. Почему 7? Потому что без использования ШИМ наш светодиод может давать всего 7 цветов, и восьмой — выключенный. Такого количества вполне хватит обычному пользователю, ну а в крайнем случае его легко можно увеличить. Значит педали будем хранить двумерном в массиве 7 х 4. Чтобы не засорять память, общие для нескольких структур значения, такие, как номер порта можно вынести в отдельные массивы. В итоге мы получаем что-то такое:

Для нас важно знать только тип педали и две программы, поэтому только их мы оставим непосредственно в структуре, остальными же вещами пусть занимается автоматика. Методы prepare и loop теперь будет выглядеть следующим образом:

Контроллер буде считать режим неиспользуемым, если в нём не объявлено ни одной педали (mode=255), а значит при попадании на него сразу перейдёт к следующему, но при этом первый режим всегда будет существовать. При переключении режима все значения в массивах зануляются, так как сохранять их для каждого режима нам не требуется (верно?), а затем цикл обходит все педали и вызывает pedalAction для них.

Также в начале метода pedalAction() нужно добавить следующую строчку, чтобы он понимал, с какой из структур надо иметь дело:

Уже существующую структуру pedal1 можно удалить за ненадобностью.

Всё это так же вполне работает, однако я столкнулся с одной проблемой: некоторые программы не успевают принимать нажатия с такой скоростью, с которой их отправляет Arduino. Самое очевидное решение — добавить возможность устанавливать задержки между действиями там, где это необходимо. Вот только когда мы садимся писать программы под микроконтроллеры, все фишки, вроде аппаратной многопоточности, остались где-то там, в высокоуровневых ЭВМ, у нас же при добавлении задержки останавливается вся программа, пока контроллер не отсчитает нужное количество циклов. Раз многопоточности у нас нет, то придётся её создать.

Тяжело сказать, да легко сделать

Я не стал изобретать велосипед, а взял готовую библиотеку ArduinoThread. Здесь можно немного почитать о том как она работает и скачать её. Загрузить библиотеку можно и из самой Arduino IDE. Кратко говоря, она позволяет периодически выполнять функцию с определённым интервалом, при этом не позволяя уйти в бесконечный цикл в случае, если выполнение займёт больше времени, чем интервал. То, что нужно. Создадим ещё один массив с потоками для каждой педали:

Теперь у нас есть 6 одинаковых виртуальных потоков, но при этом являющихся разными объектами.

Немного перепишем цикл обхода педалей для работы с новым функционалом:

Теперь значение 252 в массиве программы, которое соответствует «ничегонеделанию», будет давать задержку в 10 миллисекунд (хотя на самом деле чуть больше, так как выполнение кода тоже занимает время). Добавив несколько строк в интерпретатор, получится сделать возможным установку задержки в несколько таких «квантов», потратив всего 2 байта массива:

Теперь, при возможности установки задержки до 2.55 секунд проблем с определением клавиш программами возникать не должно.

Программирование «на ходу»

В принципе, тут можно было бы закончить с кодом и приступить к сборке устройства, но в этом случае, если кто-то вдруг захочет перепрограммировать педали, то ему придётся открывать Arduino IDE, править код, и заново загружать прошивку. Естественно, такой вариант не самый лучший, поэтому я решил добавить возможность менять программу с последовательного порта Arduino, а сами программы хранить в EEPROM. Для работы с энергонезависимой памятью необходимо подключить стандартную библиотеку EEPROM.h. Код режима программирования выглядит следующим образом:

Что делает этот код поясняет содержащаяся в нём справка: через пробел вводится номер режима, номер педали, и команда, которых существует 3 — чтение, запись и выполнение удаление программы. Все данные о педалях хранятся друг за другом в виде последовательности из 33-х байт, то есть тип педали, и две программы, и того мы занимаем 7*4*33=924 из 1024 байт EEPROM. Вариант использования динамического размера педалей в памяти я отбросил, так как в этом случае при перепрограммировании одной педали придётся перезаписать почти все ячейки, а циклов перезаписи эта память имеет конечное количество, поэтому рекомендуют делать это как можно реже.

Ещё хотелось бы обратить внимание на строки вида:

Благодаря данной библиотеке, с точки зрения программиста, энергонезависимая память является обычным массивом char, но, как «ардуинщикам», нам нужно понимать, что запись в ПЗУ — очень тяжёлая операция, которая занимает у контроллера целых

3 секунды, и желательно не прерывать этот процесс. Данная конструкция заставляет диод светить красным во время таких операций, а затем возвращает обратно «безопасный» зелёный цвет.

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

С сохранением структур разобрались, теперь надо наши данные как-то оттуда вытащить и преобразовать к «педальному» виду:

Здесь так же не происходит ничего сверхъестественного: контроллер считывает данные из памяти и заполняет ими уже существующие структуры.

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

Игровой руль на Arduino с напечатанной механикой

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

Данная история взяла свое начало с прочтения статьи ‘Классный игровой руль за копейки’ http://3dtoday.ru/blogs/mell2010/a-cool-gaming-steering-wheel-for-peanuts/ нашего коллеги MELL2000. Имея такой же, руль загорелся я идеей тоже его переделать. Списался с MELL2000 и оказалось что модели утрачены в виду гибели жесткого диска. Ну думаю, ладно, смоделирую сам, хотя стоп, а может сделать полностью с нуля?

Читайте также  Как подсоединить проводку к счетчику?

По принятию решения сделать руль собственной конструкции встали два основных вопроса:

Методом научного гугления достаточно быстро нашел простую схему изготовления механической части, которая при наличии 3D-принтера упрощается до предела. А вот мозги для проекта с ходу найти не удалось. Изначально я понимал, что надо искать проект на Arduino, а точнее даже на Arduino Leonardo так как она определяется как HID устройство (вроде клавиатуры или мыши), пришлось прочитать несколько десятков страниц разных форумов пока я не нашел то что нужно. Проект MMJoy Виталия “mega_mozg” Найденцева. Это бесплатное ПО для не коммерческого использования. https://sites.google.com/site/mmjoyproject/ работает как раз на чипах компании ATMEL at90usb646, at90usb1286, atmega32u4 (в развязке 5 вольт питания и 16 МГц кварц) к которым как раз и относятся Arduino Leonardo и pro-micro. Поддерживается до 8 осей и до 128 кнопок. Не буду углубляться в возможности прошивки MMJoy, кому интересно тот сам все прочитает, скажу лишь что поддерживается куча всякой всячины. Единственный минус проекта – это скудная информация на его страничке. Вся информация раскрыта на страницах форумов и там мне пришлось провести не мало времени, прежде чем найти требуемые мне схемы подключения.

Прошу прощения за длинную преамбулу, далее постараюсь более кратко и по делу.

Что было приобретено:

— плата Arduino pro-micro 350 руб.

— Датчик Холла 5в 1150 руб. Вместо него можно использовать потенциометр на 10 кОм, но у него ограниченный срок службы и малая точность позиционирования. Или можно купить датчик Холла без корпуса и магнит, но я решил не заморачиваться и сделать максимально быстро пока есть запал.

— Б/У «спортивный» руль от Жигулей на Avito за 400 руб.

— Шпилька М12 х 1000, плюс куча болтиков, гаечек и шайб в общей сложности на 150-200 руб.

— 2 Подшипника с внутренним диаметром 12мм по 50 руб. за штуку

— 2 подшипника 626z 6 мм x 19 мм x 6 мм, были в загашнике, а так стоят рублей по 10.

— Б/У левый подрулевой переключатель от приоры на Avito за 200 руб.

Итого: имеющаяся на настоящий момент конфигурация обошлась мне в 2420 рублей, но повторюсь можно уложиться и в ощутимо меньшую сумму при использовании другого датчика.

Распечатанные детали:

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

Крепление pro-micro и соединительная муфта напечатано из черного ABS от FD-plast, все остальные детали печатались белым PET-G от АБС Мейкер. Все детали распечатаны соплом 0,4 слоем от 0,1 (шестерни) до 0,3 (крепления подшипников) со 100% заполнением на скорости 65мм/сек, слайсер Simplify 3D.

Что получилось

К столу вся конструкция крепится обычными струбцинами через распечатанные подкладки.

Сборка механической части.

Во время изготовления фотографий я не делал, но тут в общем-то все открыто, все и так видно.

1. В качестве основы я взял обрезок 18мм мебельного щита размерами 11х22 см. Посередине него закрепил 2 крепления для подшипников.

2. Собрал и установил рулевую ось с ведущей шестерней на место.

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

4. Плотно прижал крепление приемной шестерни к шестерне рулевого вала, разметил отверстия, просверлил и закрепил.

5. Выставил ведомою шестерню в ноль (ограничитель поворота вверх) и прикрутил руль также выставив его ровно.

Сборка электронной части.

На данной схеме (взято с сайта MMJoy) показано какие ноги для каких целей могут использоваться.

Для подключения 8 кнопок мы использовали 9 контактов

Во втором варианте мы подключим те же 8 кнопок, но уже в 4 столбца и 2 строки.

Здесь для подключения 8 кнопок мы использовали не 9, а всего 6 контактов.

Если подключить 4 оси для подключения руля и трех педалей, то у нас останется 14 контактов для подключения кнопочной матрицы, а это ТА-ДАМ 7х7 целых 49 кнопок. Но пока в моем проекте только руль и подрулевой переключатель с четырьмя «кнопками», поэтому подключаю его в 4 столбца и 1 строку.

Не буду останавливаться на прошивке pro-micro поскольку подробная инструкция есть на сайте проекта, а вот на настройке подключенных кнопок и датчика остановлюсь подробнее.

Настройка MMjoy

Запускаем MMJoySetup. В списке контроллеров выбираем MMJoy и считываем настройки из контроллера. Выбираем настройку осей. В качестве источника выбираем внутренний датчик, порт МК в моем случае будет F4 (см. по схеме подключения и маркировке MMJoy), так как это руль выбираем в качестве назначения ось X. Точность в битах выбираем эмпирически исходя из чувствительности датчика, в моем случае более 12 бит выставлять оказалось бессмысленно. Автокалибровку поставил сохранять с центром. Остальное не трогал.

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

C этим рулем я уже намотал не один десяток тысяч виртуальных километров в Euro Truck Simulator 2, руль работает на отлично. Педали пока от старого руля, скоро их тоже переключу на MMjoy.

Если хватит душевного порыва хотелось бы все это дело окультурить и еще реализовать педальный блок на 3 педали и КПП 8+1 с переключателем демультипликатора и прочие плюшки, но а пока наслаждаюсь тем что уже есть.

Если кому-то будет интересно, модели выложу или скину на почту.

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

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

Как подключить руль к компьютеру с Windows?

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

Автомобильные симуляторы, конечно, не так популярны, как, например, шутеры, но тем не менее поклонников у них достаточно. Разумеется, без руля с педалями тут не обойтись. Самый простой игровой манипулятор стоит очень недорого: например, этот Defender предлагают всего за 2400 руб.

Осталось только понять, как правильно подключить руль с педалями к компьютеру. Но перед тем, как заниматься подключением, нужно понять: поддерживает ли ваш симулятор такие устройства. В принципе большинство симуляторов (в том числе и не новых, типа Colin M’cray Rally) успешно с ними работают. Раз так — беремся за дело.

Как подключить руль к компьютеру?

У руля есть два исполнительных устройства: это сама «баранка» и блок с педалями. Педали обычно подключаются к настольному блоку, а уже он — в разъем USB компьютера. Собираем эту нехитрую схему, причем не забываем, что руль должен надежно фиксироваться на поверхности. Дальше у вас два пути:

  • настроить руль с использованием драйверов от производителя,
  • сделать то же самое средствами операционной системы.

Разумеется, первый вариант гораздо надежнее. Чем больше у вас кнопок и рычагов, тем меньше вероятности, что все это заработает сразу и без драйверов. CD-диски вкладывать в упаковку давно перестали, так что за «дровами» нужно будет сходить на сайт производителя. Найдите там свою модель, выберите версию Windows и скачайте софт. После его установки, как правило, проблем не возникает: на ваш компьютер устанавливается утилита, в которой все можно подключить и настроить легко.

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

  • Заходим в «Панель управления», открываем «Панель управленияОборудование и звукУстройства и принтеры».

  • Если вы видите там свой руль — это уже хорошо. Если нет, добавьте его вручную.
      • Нажмите на кнопку «Добавить устройство».
      • Подождите, пока компьютер определит руль.
      • Нажмите «Далее» и дождитесь, когда система подберет подходящий драйвер.
  • Если руль все-таки есть в списке устройств изначально, щелкните по нему правой кнопкой мыши и войдите в «Свойства». Перейдя на вкладку «Драйвер», вы сможете посмотреть список драйверов, которые уже установила система. Если активна кнопка «Обновить» — нажмите ее, хуже не будет.

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

Как настроить руль на компьютере?

Чтобы сделать это, необходимо запустить апплет из арсенала Windows. Все просто: открываем командную строку («Выполнить») и набираем joy.cpl. Дальше видим наше устройство и получаем возможность проверить его работу. Кликаем «Свойства» и видим две вкладки.

Проверка — здесь вы можете проверить руль и педали на компьютере, то есть их увидеть реакцию на экране. Понажимайте на педали и кнопки, покрутите руль — ваши действия должны отображаться. Если здесь все работает, а в игре нет — возможно, вы неправильно задали настройки в самом симуляторе.

Параметры — это на случай, если что-то работает не так. Например, вы повернули руль до упора, а крестик в соответствующем поле остановился на полпути. Нужно заняться калибровкой, что тоже несложно. Заходим во вкладку «Параметры», запускаем «Мастер калибровки» и дальше просто следуем по шагам.

Что делать, если руль не работает?

Такое тоже бывает: либо он не работает совсем, либо только отдельные функции. Есть несколько советов (в том числе банальных, но они работают!).

Проверьте порт USB. Чаще всего руль подключают к передней панели, а в ней гнезда USB не всегда подключены. Самый простой способ проверить — вставить флешку. Если компьютер ее найдет — значит, все хорошо. Если нет — попробуйте включить руль в другой порт.

Проверьте, тот ли вы драйвер скачали? Например, они могут отличаться в зависимости от конкретной версии Windows. Или вы скачали «дрова» для 32-битной системы, а у вас 64-битная.

Попробуйте удалить, а затем заново установить драйвер. Иногда Windows устанавливает драйверы из своей библиотеки, но не самые свежие. Или вы установили софт с прилагающегося в комплекте диска, а это уже не актуальная версия. Попробуйте удалить драйвер, а потом поставить новый (как это сделать — мы рассказали в самом начале статьи).

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

Больше советов по правильному подключению: