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

hockey
Идет загрузка
Загрузка
06.03.2018
29517
60
Применение

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

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

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

30
Здравствуйте коллеги!

Данная история взяла свое начало с прочтения статьи 'Классный игровой руль за копейки' 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 руб.

https://ru.aliexpress.com/item/ATmega32U4-5-16-ATmega328-Arduino-Pro-Mini-2/32834015299.html?spm=a2g0s.9042311.0.0.e1AuBP
- Датчик Холла 5в 1150 руб. Вместо него можно использовать потенциометр на 10 кОм, но у него ограниченный срок службы и малая точность позиционирования. Или можно купить датчик Холла без корпуса и магнит, но я решил не заморачиваться и сделать максимально быстро пока есть запал.

https://ru.aliexpress.com/item/Full-Circle-No-Dead-Angle-12-Bit-Holzer-Angle-Sensor-0-360-Degree-0-5V-Output/32422949989.html?spm=a2g0s.9042311.0.0.e1AuBP
- Б/У «спортивный» руль от Жигулей на Avito за 400 руб.

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

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

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

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

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

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

- ступица крепления руля на шпильке. Дырка под гайку со стороны руля, смоделирована чуть меньшего размера и гайка вплавляется в нее намертво, чтобы было удобно накручивать руль вместе с прикрученной ступицей.
- Крепление подшипника из 2 частей. Распечатаны с небольшим запасом, подшипники посажены на сантехнический герметик.
- Пара шестерен смоделированы с помощью http://geargenerator.com и экспортированы в SVG формат. Передаточное число выбрано 2,5 к 1, то есть на 2,5 оборота руля будет совершаться один оборот датчика (из-за ограничителя получается чуть меньше 2,5). Вкладыш в ведомую шестерню для крепления ограничительного болта. Изначально я рассматривал другой вариант реализации ограничителя поворота, поэтому ограничитель печатался отдельно.
- Крепление вала ведомой шестерни и датчика Холла.
- Крепление подрулевого переключателя. Предварительно с корпуса переключателя были удалены защелки крепления ибо нам они не нужны.
- Бампер для крепления pro-micro взят отсюда https://www.thingiverse.com/thing:1628980 -Муфта соединения оси ведомой шестерни и датчика.
Крепление 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) показано какие ноги для каких целей могут использоваться.
Датчик Холла подключается к 5в питания, земле и к любому из контактов обозначенных как AI (Axis Internal). В данном случае это вывод F4
Кнопки подключаются матрицей через диоды. Для примера рассмотрим подключение 8 кнопок в двух вариантах для наглядности. В первом варианте 8 кнопок подключаем в 8 столбцов и 1 строку.
Для подключения 8 кнопок мы использовали 9 контактов

Во втором варианте мы подключим те же 8 кнопок, но уже в 4 столбца и 2 строки.
Здесь для подключения 8 кнопок мы использовали не 9, а всего 6 контактов.

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

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

Настройка MMjoy

Запускаем MMJoySetup. В списке контроллеров выбираем MMJoy и считываем настройки из контроллера. Выбираем настройку осей. В качестве источника выбираем внутренний датчик, порт МК в моем случае будет F4 (см. по схеме подключения и маркировке MMJoy), так как это руль выбираем в качестве назначения ось X. Точность в битах выбираем эмпирически исходя из чувствительности датчика, в моем случае более 12 бит выставлять оказалось бессмысленно. Автокалибровку поставил сохранять с центром. Остальное не трогал.
Далее идем на вкладку «настройка кнопок». Первым делом выбираем контакты к которым мы подключали нашу матрицу. Назначаем нашим кнопкам функции, которые они будут исполнять в нашем устройстве. Назначаем кнопки как, вы не поверите, КНОПКИ =) 1 и 2 - это поворотники, 4 у меня – это дальний (от себя), назначаем их как тумблеры. То есть при переключении тумблера в состояние ВКЛ, контроллер пошлет в компьютер кратковременное нажатие кнопки и аналогично при переключении в ВЫКЛ. Кнопка 3 у меня – это нажатие переключателя на себя, то есть «моргание» дальним, это обычная кнопка. В игре повесил на нее сигнал. После этих настроек жмем «Записать в контроллер».
После этого переходим к настройке джойстика через Панель управления WINDOWS, калибруем как обычный джойстик и запускаем игру.

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

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

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

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

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

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

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

30
Комментарии к статье

Комментарии

06.03.2018 в 08:47
1

Класс... !

06.03.2018 в 10:10
0

спасибо!

09.10.2019 в 09:15

Комментарий удалён

06.03.2018 в 09:38
1

Бомба. А вибро чего не приделали?

06.03.2018 в 09:43
1

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

06.03.2018 в 09:43
2

Ну для ETS2 кнопок мало не бывает... :D
P.S. Сам в ETS2 уже приличную компанию развил... но катаюсь с 'клавы', поскольку руль сын 'прихватизировал' когда-то для TDU2... да и руль тот мне не очень понравился.. всего 200° (или чуть более) всего от конца до конца (хотя и три педали)... А с таким рулём как у вас - уже ощущения нормальные от поворотов.

06.03.2018 в 10:09
1

Доп кнопок обязательно надо сделать. Хочу такого плана https://evolpcgaming.com/uploads/monthly_2017_09/59bb310069c56_HHBoxLabel.png.d2b1d710635cffa20520b9e998581a3e.png
По углу поворота руля после помоечного defender на 180 градусов, 900 - это просто фантастика.

06.03.2018 в 10:26
1

Ну это, конечно, для совсем уж сильно 'фанатеющих' :) ... хотя народ, видел, чуть ли не полкабины реальной 'городит'... и настоящий рычаг КПП с кнопками демультипликаторов от настоящих откуда-то достают даже... :)

06.03.2018 в 11:02
0

вдохновение черпалось именно с этих фанатов, но такие вещи быстро не делаются. Как уже писал, если не пропадет желание все это потихоньку сделаю. Для buttonbox уже прикупил несколько тумблеров, но пока руки не доходят начать.

06.03.2018 в 12:54
2

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

07.03.2018 в 14:15
1

Шикарно! Лепесток поворота шикарный!
Мне кажется можно было бы добавить ограничители на поворот руля, чтобы не сломать потенциометр.

Желтым - упор на креплении, черным зуб на шестерне.

При повороте в крайнее левое или правое положение чтобы упор с шестерни упирался в упор на креплении.
И удобнее наверное было бы, чтобы руль был под наклоном как в машине. Распечатать и прикрутить ножки впереди конструкции, чтобы переднюю часть поднять =).

Обязательно буду следить за развитием проекта =)


P.S.
Детали из статьи статьи про модернизацию руля смоделировал по новой и выложил тут

08.03.2018 в 08:27
1

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

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

08.03.2018 в 21:52
0

Панель делал Вова В на Ютубе
https://www.youtube.com/watch?v=uR6tcqwX42I
Но со смартфона проще всего будет панель организовать.
Еще хотел бы посоветовать vrbox подключить(смартфон+очки наподобии Google cardboard) или хотя бы freetrack или аналог Opentrack. Это программы для управления обзором с помощью поворота головы и вебкамеры. Она не только поворот головы фиксирует по сторонам, но еще и приближение от монитора и перемещение влево вправо

09.03.2018 в 19:20
0

все бы хорошо, но меня от vr тошнит =(

10.03.2018 в 18:21
1

Пружина для возврата в центр будет?

10.03.2018 в 18:34
0

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

23.05.2018 в 14:37
0

Круто сделано. Только как с шестернями не понял.
Можете шестерни скинуть?

14.08.2018 в 17:04
0

здравствуйте, купил с китая резистор на 10 ком  10 оборотов какие настройки для его?

15.08.2018 в 06:59
0

по сути датчик Холла и есть переменный резистор на 10кОм просто его сопротивление меняется не от физического перемещения бегунка а от изменения напряженности магнитного поля. Для arduino же это не имеет значения, она просто считывает текущее напряжение на входе. Так что настройки будут такие же как у меня.

26.11.2018 в 10:01
0

Я купил такие же резисторы, но у меня не хочет работать с ними. В самом конце только доли миллиметра считывает. Думал проблема в резисторах, но нет, пробовал разные, все тоже самое. Подключил модуль джостика - работает, а резистор нет. Была у вас такая проблема?

26.11.2018 в 10:06
0

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

26.11.2018 в 11:06
0

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

27.11.2018 в 14:23
1

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

15.08.2018 в 08:29
0

Если бы можно это доделать до WoT-а...

Мечты...
Мечты...

ski
15.08.2018 в 08:54
0

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

29.10.2018 в 13:04
0

Здравствуйте! Можете пожалуйста скинуть 3д модели всех печатный деталей

29.10.2018 в 17:59
0

Отправил на почту.

16.11.2018 в 06:22
0

здравствуйте. диоды на кнопку на сколько ватт ампер?

16.11.2018 в 06:37
0

читайте технические характеристики arduino pro-micro[TABLE][TR][TD]Постоянный ток через входные/выходные выводы[/TD][TD]40 мА[/TD][/TR][/TABLE][TABLE][TR][TD]Напряжение питания[/TD][TD]5 В[/TD][/TR][/TABLE]

18.11.2018 в 21:16
0

Скажите, пожалуйста, питание от USB или дополнительное подводили? На сколько я помню, в USB нет 5В (не считая usb 3.0) (с Arduino не работал раньше, потому извините если вопрос глупый)

19.11.2018 в 08:17
0

В USB 2.0 напряжение также 5 В, дополнительного питания не нужно.

25.11.2018 в 00:31
0

Здравствуйте. Можете скинуть 3d модели всех печатаемых деталей?

01.12.2018 в 18:12
0

Если вам нужны файлы с деталями, пишите ваш адрес мне в личку, я все вышлю.

28.02.2019 в 11:57
0

Приветствую, скажите может пропустил, Вы систему форс фитбека доделали? интересно как решили ремень или печать если да?

28.02.2019 в 13:13
0

mmjoy не поддерживает фидбэк.

28.02.2019 в 13:27
0

а ну значит я видел другую прогу. FFB

07.05.2019 в 18:03
1

Если сюда добавить еще драйвер BTS7960 то можно сделать форс фидбек

08.05.2019 в 16:58
0

А на каком ПО реализовать? MMJoy не поддерживает ForceFeedBack

09.05.2019 в 20:45
1

Да, здесь про MMJoy надо забыть и плату заменить на Leonardo R3. Загуглите 'DIY SIM RIG kaskus', первая ж ссылка приведет на нужный сайт (индонезийский), там все написано.

28.02.2020 в 10:58
0

Есть очень хорошая простая схема с нормальной обратной связью на очень дешевом микроконтроллере atmega 8a, руль система видит как logitech g25, драйвер родной на него встает идеально. Все кнопки 25-го работают, три педали, педали с автокалибровкой при включении. 

Схема предназначена для ремонта рулей со сдохшей электроникой, но на её основе можно и свои рули делать. 

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

17.07.2019 в 19:41
0

Можно с тобой в скайпе пообщаться? Вопросы позадавать... Тоже руль делаю! Вопросов много, а в гугле ответов мало!

18.07.2019 в 06:06
0

Можно, а чего профиль-то удалил? Как с тобой списаться-то?

18.07.2019 в 09:23
0

Я не удалял... Мб просто не подтвердил! Попробуй ещё раз, я тебе в лс писал

28.11.2019 в 09:51
0

Здравствуйте, подскажите а как подключить к Arduino кнопки d pad?

10.01.2020 в 20:12
0

Ребят, подскажите кто в теме. Как подключить кнопки, сделал как на схеме (резисторы на 10ком) но в mmjoy ничего не работает, или я в самой mmjoy что то не так делаю... 

15.01.2020 в 07:38
0

Добрый день! Появилось желание сделать самодельный руль, педали и КПП. Подскажите, использовать можно только arduino pro-micro, или обычную arduino, mini, mega тоже можно?

28.02.2020 в 11:01
0

Желание еще есть? По КПП есть проверенный проект, для руля есть проверенная схема(не ардуино) с обратной связью, понадобится только недорогой программатор USBASP и горстка радио деталей с макеткой. 

23.03.2020 в 06:45
0

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

01.02.2020 в 16:32
0

2020 на дворе но этот пост самый лучший и самый дельный перерыл весь интернет как же я рад что попал именно на этот пост скиньте пожалуйста чертежи деталей semen-ways@mail.ru

28.02.2020 в 11:05
0

На этом датчике с помощью простой схемы, любой!! очень бюджетный руль!!!можно превратить в аналог logitech g25, а с помощью принтера можно добавить механизм обратной связи. 

14.06.2020 в 15:24
0

скиньте пожалуйста модели для печати

27.08.2020 в 14:02
0

Оптический энкодер можно поставить?

Например такой.

30.08.2020 в 11:26
0

Здравствуйте! не подскажу, не изучал вопрос

31.08.2020 в 04:08
1

Посмотрел у AlexGyver. Оптический энкодер поставить можно.



30.09.2020 в 06:32
0

Доброго времени суток. Вопрос к автору. Как я понял, датчик Холла в вашей конструкции вращается примерно на 340-350 градусов, с учетом ограничителя. Если поставить 2 ограничителя, дабы уменьшить углы поворота, Ардуино считает эти показатели, или есть какие-то критические ограничения? Будут ли мертвые зоны и т.п.? Заранее спасибо!

02.10.2020 в 10:29
0

Здравствуйте! Лучше использовать весь диапазон вращения. Чем он меньше тем менее чувствителен будет руль к небольшим отклонениям.

03.10.2020 в 11:34
0

Благодарю!

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Мы печатаем

Собрать 3Д принтер из набора для сборки с областью печати 300х300х350 мм, что в итоге получим.

Калькулятор стоимости печати для android (версия 5)

1/72

Миниякори :)

Самые распространенные проблемы фотополимерной печати по версии HARZ Labs