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

Обновлено: 08.07.2024

Чтобы изготовить руль и педали, достаточно купить несколько деталей, прочитать инструкции и советы и немного поработать руками. Как же все это работает. Большинство персональных компьютеров, используемых для игр, имеет звуковую карту. На этой карте есть геймпорт, в который можно подключать джойстики, геймпады, рули и прочее. Все эти устройства используют возможности игрового порта одинаково - разница лишь в конструкции устройства, а человек выбирает такое, какое является наиболее подходящим и удобным для той игры, в которую он играет. Геймпорт персонального компьютера поддерживает 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 раза. Если все было сделано правильно и руки растут от куда надо, то поле "состояние" должно измениться на "ОК". Щелкаем "свойства", "настройка" и следуем инструкциям на экране. Остается запустить любимую игрушку, выбрать в списке свое устройство, если потребуется, дополнительно его настроить, и все, в добрый путь!

none Опубликована: 2004 г. 0 0


Вознаградить Я собрал 0 0


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

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

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

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

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

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

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

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

  • Собственно, педали. Тут сразу же возникли некоторые сложности из-за того, что я никак не мог придумать название для такой педали. Я знал лишь то, что подобные вещи используются в швейных машинках. В общем, по запросу electric pedal мне всё же удалось найти то, что нужно, на Aliexpress, и я, недолго думая, заказал 3 штуки.
  • Контроллер. Педалборд должен эмулировать работу клавиатуры и, возможно, мыши для возможности подключения к ПК без лишних драйверов. Для этого отлично подойдёт плата Arduino Pro Micro, которая хоть и не имеет некоторых выводов, но зато сделана максимально компактно. Идём на тот же Aliexpress, и покупаем китайскую версию этого чуда.
  • Провода. Чтобы поместить 3 педали под стол, нужен как минимум четырёхжильный провод длиной не меньше метра. Тут, думаю, проблем возникнуть не должно.
  • RGB-светодиод и кнопка. Первый нужен для индикации режимов, а вторая — для их переключения.
  • Ну и, понятное дело, нам нужны Arduino IDE, паяльник и прямые руки.

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

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


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

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

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

Подготовка

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

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

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

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


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

Некоторые особенности работы в режиме клавиатуры

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


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

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

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

Вы наверное заметили, что в статье уж больно часто фигурирует число 255, там, где логичнее было бы ставить 0. Забегая вперёд, скажу, что это нужно для удобства сохранения педалей в EEPROM, так как с завода каждая её ячейка содержит не 0, а как раз таки 255, а значит это число будет намного удобнее использовать для обозначения не заданных переменных, чем 0, чтобы каждый раз не перезаписывать память.

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


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

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


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

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

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

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


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

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


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

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

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


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

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

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

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

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

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


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

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

Аватар пользователя maxim1995

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

Данная конструкция являеться очень надежной и простой в изготовлении. Основание и педали делаются из фанеры и крепятся друг к другу с помощью отрезков мебельных петель. В основании под педалями просверливается отверстие (примерно 10мм) для свободного хода рычага.

Рычаг делается из металлического прута и сгибается в одну сторону с обеих сторон, как видно на рисунке. Закрепить его к педали можно согнутым в U-образную форму небольшим гвоздем.

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

Переменные резисторы (100k) крепятся к основанию через L-кронштейны на обратной стороне основании. На вал резистора вставляется рукоятка. Делается она из дерева или пластмассы. Используйте любой материал, которым располагаете. В рукоятке просверливаются два отверстия. В одно плотно вставляется вал резистора, а в другое рычаг, так чтобы он свободно крутился. Рукоятка еще будет являться ограничителем обратного хода, так что сделайте ее покрепче.

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

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


Электроника

Чтобы компьютер определил игровое устройство, к геймпорту достаточно подключить два сопротивления на ось X и Y. В нашем случае это переменные резисторы педали газа ось Y(6). Для педали тормоза используется ось X1(11). А оставшуюся ось Y1(13) можно использовать для педали сцепления.

Резисторы должны быть линейными (не от регуляторов громкости!) от 50к до 200к (лучше взять 100к). Красный провод (+5V) всегда идет на средний контакт резистора, а вот ось (3, 6, 11 контакты) может быть подключен на любой из боковых, в зависимости от того, как установлен резистор. Если при повороте руля влево курсор идет вправо, просто надо поменять местами внешние контакты резистора. То же самое и с педалями.

Стандартный штекер джойстика с 15 иголками можно купить в любом электронном магазине или на радиорынке.
Резисторы лучше сразу выбрать из дорогих, они будут подолговечнее. Дешевые начнут уже через пару месяцев "шуметь" (руль будет дергаться). В этом случае может помочь их чистка и смазка (например WD40).
Провод лучше взять экранированный 10 жильный.


Настройка

Внимание! Запрещается подключать/отключать при включенном компьютере! Это может привести к выходу из строя звуковой карты или материнской платы вашего компьютера!

Подключаем штекер к звуковой карте. В панели управления выберите "Игровые устройства" затем кнопку "Добавить". В меню выберите – "джойстик 2 оси 2 кнопки" и нажмите "ОК". Если все было сделано правильно, то поле "состояние" должно измениться на "ОК". После этого нам необходимо откалибровать игровой планшет. В "Свойствах" нажмите на закладку "Настройка", затем на кнопку "Откалибровать" и следуйте указаниям. При калибровке рекомендую дополнительно применнить программу DXTweak2. Критерий настройки - плавное перемещение во всем диапазоне вращения соответствующей оси без "свала" курсора на краях диапазона.
Все, загружайте ваш любимый автосимулятор, выберите в настройках свое устройство, настройте его и получайте удовольствие!


Не думал писать пост на эту тему, но хочется написать о своем приобретении, поскольку мне очень приятно, что у нас есть люди, которые качественно делают хорошие вещи. И вот об этом и хочется написать.

В 2003 году посчастливилось мне стать обладателем Toyota Lite Ace. Всем машина была хороша, вот только вызывала недоумение тяга японцев ставить неоригинальные рули на, в общем-то, абсолютно не требующие это машины. Приборы видно плохо, маневрировать с рулем в 350 мм на микроавтобусе было попросту неудобно. Поэтому отличный, прибывший вместе с Lite Ace из Японии, деревянный руль Peyton уступил место удобному толстому рулю от марка-триллионника, а сам перекочевал собственно… в марка, поскольку сам марк на столб не намотается, ему нужно задать направление правильным рулем.


Это были нулевые. Куда ж без богатого ромбика и обшитой кожей панели?

После намотки марка руль вообще стал не нужен и валялся без дела несколько лет в гараже.

Но не пропадать же добру? В RX-8 он вообще неуместен, намотка очередного марка в мои планы не входит, они и без моей помощи справятся.

Но я вот что-то вспомнил юность и решил организовать себе место для игр в автосимуляторы. Достал с полки запылившиеся раму для установки автокресла и игрового руля от Gamestul, комплект Logitech G25 и одно из без дела валявшихся кресел лупоглазой WRX.


Минут за 10 из г…на и палок оставшихся от шкафа полок собрал стол нужной высоты под телевизор и прохватил по Спа-Франкоршам на RX-7 в Assetto Corsa. Дети, разумеется, быстро захватили новое игровое место, а я, тем временем, вспомнил, что меня не устраивало в G25 раньше — слишком маленький руль и отсутствие ручного тормоза, который для баловства нужен в асфальтовых симуляторах для дрифта (хоть "отцы" и без ручника справляются), а в раллийных симуляторах просто необходим.

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

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


Так, в поисках "ручника" я набрел на группу DimSim, где нашел не только ручной тормоз, но и лепестки, и переходник на руль.

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


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


Запасной датчик положения "ручника" упакован отдельно.


К переходнику на руль прилагалась наклейка-логотип, выбранная случайным образом при отправке. Мне достался значок Mercedes-Benz и, как фанат марки, я конечно же наклею его на руль.


Все распаковано, можно рассмотреть обновки.


Мне приятна такая забота о покупателе, резьбовые соединения промаслены, изолированы на время транспортировки.


Соединяю ручку со стержнем и вкручиваю — самая простая процедура из всех, что мне приходилось делать в гараже )))


Конструктив простой, но выполнено все очень качественно.



Можно приступать к монтажу. Для начала снимаю руль и лепестки, отсоединяю разъемы (на игровом руле все как у "взрослых").


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


В лепестках уже нарезана резьба под стандартные винты Logitech.


Их установка — минутное дело.


Наглядно: руль диаметром 350 мм меньше обыкновенных автомобильных рулей, но существенно больше игрового.


Отсоединяю от старого руля плату — она нужна для работоспособности лепестков.


Монтирую переходник руля…


…и прикручиваю сам руль.


Теперь черед ручника. Собрать хотелось быстро, поэтому для кронштейна под ручник пошли крепежные уголки.


Монтирую ручник на получившуюся площадку.


Можно установить его с рычагом КПП на раму.


Пора с обновками опробовать насколько повороты Спа-Франкоршам подходят для дрифта. Ручник заработал сразу при подключении без танцев с бубном.


И у меня было минут 10, пока дети снова не оккупировали игровое место.


Думаю, наклейка DimSim на верстаке будет вполне к месту.


Спасибо Дмитрию, пусть этот пост будет скромной рекламой!

Комментарии 22


Я бы так хотел бы. А для планшета не чего нельзя придумать?


Прикольно! Тоже как то думал нечто похоже замутить, но ноги так и не дошли и руки не дотянулись.


Шутейки про марки и столбы от бога))


Как вы вообще понимаете как ездить в симах, не имея обратной связи пятой точкой…
Я так и не смог понять даже как сильно тормозить, когда снос занос начинается…


Ну, думаю ответить надо предметно. У меня опыт только в двух симах: Assetto Corsa и Dirt. В Dirt вообще не было вопросов, но там и нет необходимости длительного заноса и ручник там необходим в шпильках, пользоваться им даже учиться не пришлось. Причем, в свое время, в отсутствие ручника, я пробовал просто программировать кнопку (по сути просто вкл/выкл) и это вообще не то — возможность менять усилие действительно необходима. По сути, вождение с ручником в Dirt очень напоминает мне реальный опыт движения по грунту/снегу/льду (я не претендую даже на звание любителя, но никогда не упускал случая покататься при случае). Не знаю почему, но в этой игре погружение полное, даже просто сидя в кресле: ловил себя на мысли, что при трамплинах на допах финляндии начинается выработка адреналина. Меня это удивляет.
А вот с Assetto Corsa ситуация другая. Все машины по настройкам очень "держаковые", на них занос физикой игры предусмотрен, но с небольшим углом. Т.е., например, на 34-ом GT-R перманентный и очень небольшой занос на скорости в повороте практически элемент управления. И ручник тут вообще не нужен. А вот когда действительно нужно его спровоцировать начинаются проблемы. Поначалу что с ручником, что без него, мой хилый опыт не позволяет мне держать угол — всегда разворот. Причем я вроде пытаюсь все делать как на настоящей машине и толку ноль! Да я свою тщедушную 170-сильную RX-8 свободно простой раскачкой пускаю с занос, держу без ручника и так же легко стабилизирую. А в игре — никак! Потом взяв дополнительный официальный мод с "заточенными" под дрифт ae86, rx-7 и прочими мне наконец удалось изображать что-то похожее на дрифт, в том числе пользуясь ручником. С практикой получается получше, но точно могу сказать только одно: дрифт в этой игре и в реальной жизни это очень разные вещи.
Впрочем, симулятор и настоящее вождение тоже. Игра это не автомобиль. Хотя Assetto Corsa и считается чуть не лучшим симулятором.


Да пофиг на ручник, ты скажи как понять когда пора начать тормозить, когда хватит, каким местом узнать что снос/занос начался? Меня выпекает, что нужно часами вкатываться в каждое корыто, чтобы хотя бы половину поворотов не просрать((((
У меня г25 и вайв, дёрт несколько часов попыток не срываться с трассы осилил… в карс ходил как на работу, пытаясь побороть сраный >200км/ч картинг. Бесит.


Интересный вопрос, на самом деле, поскольку вот именно это и сложно — ведь это не настоящая машина. Фидбэк только с руля+то что видишь на экране. Хотелось бы, конечно, как-то еще на обороты ориентироваться, но в настоящей машине-то у тебя звук двигателя воспринимается в связке с ощущением направления движения и ускорения/торможения, а в игре этого нет и не будет. В итоге вместо своих чувств приходится полагаться на спидометр, звук и положение руля с связке с тем, что видишь. И это все, конечно, вообще никакого отношения к реальному вождению не имеет. По моему мнению, все кто утверждают, что вождение реалистично в тех или иных играх с тем или иным оборудованием сильно лукавят. Я играл и на этих "тренажерах" с креслом на гидравлике, которое вращается, наклоняется и т.д. И реализма в этом всем я тоже особо не увидел. Все равно это просто аттракцион, а не машина.
Хотя лично для меня в dirt фантазия очень сильно дополняет игру, как-то вовлекаешься. Но это фантазия, а не реальное ощущение. Но, опять же, там я даже не думаю когда тормозить, когда разгоняться — там же видишь поворот, есть отметки на трассе, слышишь бормотание штурмана, как-то на автомате. Я не объясню как понять, это как-то интуитивно. Из асфальтовых симов, кстати, такое же ощущение у меня есть на хиллклимбах в Raceroom. А вот в AC его нету, так не затягивает, хотя в ней я езжу вполне неплохо, чисто и без ошибок в траекториях и переключениях со стабильными временами, снимая понемногу десятки.
Так что, наверное, никак не понять, не думать о том, что это настоящее вождение, наблюдать за игрой, ориентироваться на это. Как в контре многие отбегая в сторону реально наклоняются вбок зачем-то, а кто-то — нет. Кто-то больше вовлекается в игру, кто-то — нет. Возможно, первой категории проще в симуляторах принимать такой "реализм". И научиться управлять тоже.
Толку от моего ответа полный ноль ))))


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


Интересный вопрос, на самом деле, поскольку вот именно это и сложно — ведь это не настоящая машина. Фидбэк только с руля+то что видишь на экране. Хотелось бы, конечно, как-то еще на обороты ориентироваться, но в настоящей машине-то у тебя звук двигателя воспринимается в связке с ощущением направления движения и ускорения/торможения, а в игре этого нет и не будет. В итоге вместо своих чувств приходится полагаться на спидометр, звук и положение руля с связке с тем, что видишь. И это все, конечно, вообще никакого отношения к реальному вождению не имеет. По моему мнению, все кто утверждают, что вождение реалистично в тех или иных играх с тем или иным оборудованием сильно лукавят. Я играл и на этих "тренажерах" с креслом на гидравлике, которое вращается, наклоняется и т.д. И реализма в этом всем я тоже особо не увидел. Все равно это просто аттракцион, а не машина.
Хотя лично для меня в dirt фантазия очень сильно дополняет игру, как-то вовлекаешься. Но это фантазия, а не реальное ощущение. Но, опять же, там я даже не думаю когда тормозить, когда разгоняться — там же видишь поворот, есть отметки на трассе, слышишь бормотание штурмана, как-то на автомате. Я не объясню как понять, это как-то интуитивно. Из асфальтовых симов, кстати, такое же ощущение у меня есть на хиллклимбах в Raceroom. А вот в AC его нету, так не затягивает, хотя в ней я езжу вполне неплохо, чисто и без ошибок в траекториях и переключениях со стабильными временами, снимая понемногу десятки.
Так что, наверное, никак не понять, не думать о том, что это настоящее вождение, наблюдать за игрой, ориентироваться на это. Как в контре многие отбегая в сторону реально наклоняются вбок зачем-то, а кто-то — нет. Кто-то больше вовлекается в игру, кто-то — нет. Возможно, первой категории проще в симуляторах принимать такой "реализм". И научиться управлять тоже.
Толку от моего ответа полный ноль ))))

Сам фанат всяких автосимов на ПК, владею даже топовым игровым рулем Fanatec, также водитель с 15 лет стажа. Могу сказать просто — симуляторы на то и симуляторы, чтобы что-то симулировать. Не реализм, а отыгрыш реализма — вся суть симов, на которых можно хорошо понять базовые особенности поведения авто ну и приблизиться к тому, на что у большинства денег в жизни не хватит — к большому автоспорту, пусть и виртуальному. До покупки руля, я как-то наваливал в то время на своей Жиге 2107 без страха и упрека, но покатавшись пару недель на компе, половив отбойники, ушатывая виртуальную машину в ноль, перестал лихачить в реальной жизни. И навык компьютерных "гоночек" несколько раз пригождался, когда ловил авто на скользкой дороге.


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


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


японцы же ) я и в сотом крузере пришедшем с японии однажды видел подобный на 350 мм, где ему вообще не место. А то, что страшно неудобно водить минивэн с таким рулем — это факт. Но, кстати, в дрифте на льду с ним было легче (правда, в cr31 нужно тонко чувствовать грань отделяющую занос от разворота), хотя вряд ли японец ставил такие задачи.

Arduino и электроника (AlexGyver)

Макс Долгушев

Макс Долгушев запись закреплена

Кто знает как сделать педаль сцепления для игрового руля?
Потенциометр есть
Чтто будет если подключить вместо кнопки на мышке?
Или надо програмировать через ардуино?
Если да, то какую модель брать?

Андрей Делон


Андрей Делон

Макс Долгушев


Макс Долгушев

Андрей Делон


Андрей Делон ответил Максу

Макс Долгушев


Макс Долгушев ответил Андрею

Андрей, ответа на вопрос, что будет если вместо кнопки припаять потенциометр не нашел, и тем более как настроить потенциометр вместо кнопки

Андрей Делон


Андрей Делон ответил Максу

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

Макс Долгушев


Макс Долгушев ответил Андрею

Андрей, вопрос не в том, что для чего это служит, а можно ли подключить вместо обычной кнопки на геймпаде

Андрей Делон


Андрей Делон ответил Максу

Макс Долгушев


Макс Долгушев ответил Андрею

Читайте также: