Итак всех приветствую в данной теме.
Сегодня я попытаюсь рассказать о своих доработках для рулей на базе платформы ардуино.
Не так давно я делал пост про приобретение не рабочего руля Porshe 911 gt3, который я делал на стм32 по посту от каравана. Немного покатавшись я набрел на следующие проблемы и тут попытаюсь рассказать варианты их решения:
1. Недостаточная мощность руля, хотя все настройки были на 100%.
2. т.к. у меня в самом руле были 2 вибромотора, (не путать с FFB в базе) и большое кол-во кнопок на самом руле (которые я так же хотел использовать но на MMOS очень как то замудренно это все подключать) а так же был 3-х значный 7-ми сегментный светодиодный дисплей (позже заменен на 4-х сегментный модификация готового модуля на базе max7219, один 4-х значный семисегментный дисплей был выпаян и припаян через небольшой шлейф и закреплен на нужном месте в руле а остальная часть дисплея с микросхемой и платой спряталась глубоко в руле) Нужно было что бы все работало.
3. проблема с которой я столкнулся оказалось сопротивление руля даже когда все эффекты выключены руль было немного трудновато поворачивать как будто эффект демпинга включен. Но все оказалось намного проще. Но об этом позже.
4. Ну и много чего по мелочи, в статье я буду еще о них говорить.
а т.к. я преследовал восстановить функционал руля вплоть до заводского что бы работал и дисплей на руле с которого можно было бы настроить FFB и угол руля ну и много всего как в заводском варианте но использовать только доступные модули, свои силы и навыки программиста то решено было все разработать с нуля и под себя. И т.к. СТМ32 не широко распространен и программировать под него будет не очень легко, я решил взять Ардуино Леонардо. Кто то скажет тема заезженная и уже много было проектов на данной платформе, и да, тут я соглашусь но есть одно но, везде где я я не видел данные проекты то на них был основной функционал который был везде. А именно это подключенный энкодер, драйвер двигателя, потонциометры на педали пару кнопок и по сути все, больше ничего нету толкового ну еще видел шифтер осевой xy подключали. И я решил привнести много чего нового для DIY симрейсеров. Вообщем долго тянуть кота за "х.." хвост не буду опишу как это все подключено а потом все плюсы и минусы которые есть на данный момент:
Схемы пока наброски, позже сделаю более качественно и подробно.
Схема по которой я подключил все в самом руле. Двигатели подключены через транзистор, т.к. мосфеты дают писк в двигателях от шим сигнала. LED лента работает как тахометр очень полезная штука)
Вот такой вот хаос твориться в руле но оно работает) (Нужно будет навести порядок)
Схема подключения в самой базе
Еще будет возможность вместо педали тормоза подключать тензодатчик, но у меня его пока нет по этому не могу написать код.
Как видим у нас на основной плате осталось еще довольно много свободных портов на них я хожу сделать пару кнопок возможно под рулевые лепестки или старт стоп двигателя в играх. И сделать подключение модуля энкодера. Или же матричную клавиатуру на 6 кнопок а может и больше.
Со схемой все понятно особо ничего сложного нету. 4-ре потонциометра на педали и ручник, энкодер для руля и драйвер для двигателя FFB, как я уже говорил это типичная схема подключения во всех подобных проектах.
Теперь к удобству данного проекта, как мы видим нам потребуется 2 платы ардуино (а потом и больше), между собой они подключаются по интерфейсу i2c. Что нам это дает:
-модульность всей системы (мы можем сделать 1 или 5 и даже больше рулей с разными ардуинками но с одной прошивкой, и менять рули по принципу аля фанатек не отключая базу. Нужно всего 6 проводов и тогда на валу руля нужен коннектор который все это будет соединять. Можно купить гнездо и штекер ps/2 только 6-ти пиновые и можно делать съемные рули).
-так же по i2C будет сделано подключение шифтера с отдельной ардуиной, можно так же и педали сделать, если от педалей идет длинный провод к базе то лучше пускать его по цифровому каналу, так будет меньше помех. (Это минимизирует кол во проводов)
-i2c умеет подключаться на "горячую" т.е. без перезагрузки базы все сразу начнет работать.
-минимальное кол-во проводов всего 6шт.: 1- Плюс питания. 2- Минус питания. 3- USB Data+. 4- USB Data-. 5,6 - шина i2C. (В будущем если проект зайдет есть идеи по беспроводному каналу как связи так и питания для устройств с DD.)
-так же если поставить в базе USB Hub с дом питанием то к базе будет идти только один провод USB а это очень удобно, и в базе уже подключать ардуинки.
-будет еще термодатчик и управление кулерами для охлаждения двигателя, а так же будет бизер для звуковых сопровождений некоторых параметров.
-еще можно будет подключить вибромоторы на педалях, для отдачи о скольжении задних колес на педали газа, и о блокировке колес на педали тормоза при торможении.
После того как разобрались с подключением идем к функциям которые выполняет данный проект. (Это только стадия разработки еще будут обновления и тесты а потом будет выход в массы)
Функции: (большинство идей взято с устройств Fanatec)
Все ниже перечисленные настройки выполняются непосредственно с самого руля:
-настройка ограничения угла поворота руля.
-настройка общей силы FFB. (в будущем с настройками отдельных эффектов).
-настройка центрального положения (будет полезно у кого DD).
-калибровка и тест H-Shiftera
-эмуляция базы под геймад от x-box (актуально для игр не поддерживающих рули), или клавиатуру для более старых игр или еще чего то.
На этом настройки с самой базы заканчиваются, но в будущем в планах добавить калибровку всех осей с самого руля, ну и еще что то по возможности.
Вибромоторы, LED индикация и 7-ми сегментный дисплей работают с программой SimHub, увы но без нее не будут работать настройки с руля((.
База умеет отображать в систему данные по 5 осям, (позже мб добавлю и 6-тую если будет потребность) А именно Ось Х - это рулевая ось на которой есть FFB. Ось Y - Пока это ручной тормоз но я думаю сделать педаль газа для совместимости со старыми играми. Ось Z - Газ. Ось rX - Тормоз. Ось rY - Сцепление.
Разрешение осей: Х - 16bit. Y, Z, rX, rY - 12bit
Кол-во кнопок 32 плюс ко всему имеется POV - переключатель вида.
с драйвером пока все, уже на 60% готова программа для настройки базы с пк, но она скорее всего нужна будет при первой настройке т.к. все можно будет настроить с самого руля, ну или нужна будет для тех кто не делал себе функционал на руле.
При включении присутствует автоматическая калибровка, которую можно поменять на краткая калибровка по лини Z с энкодера или какого датчика холла (актуально для DD у которых нет физического упора в крайних положениях). Или же центровать руль в ручную.
100% работает в современных автосимах. то что я тестил это: (Список будет обновляться)
-assetto corsa
-assetto corsa competizione
-PCars
-PCars 2
-ETS 2
-ATS
Имеется проблема с игрой PCars 2, при постановке на паузу а также при начале гонки в стартовом меню руль улетает почти на оборот в лево, но это бывает не всегда где то 50/50. Постараюсь это исправить.
По поводу решения проблем:
1. На ардуино ушел недостаток FFB как бы на СТМ. т.к. логика везде 5в. На СТМе же можно попробовать купить преобразователь логики с 3.3в. в 5в. но это не решит проблему, да FFB будет сильнее но качество его уменьшиться т.к. с меньшего диапазона на больше он будет работать с большими рывками.
2. По поводу кнопок и доп функционала решается покупкой даже самой дешевой китайской ардуино nano. Благо они стоять копейки и достать их легко.
3. По сопротевлению руля, было подключено не верно изначально в схеме. У Каравана были подключены к плюсу питания на драйвере BTS EnA и EnB а PWM подключался к направлению вращения к СТМ. Из за этого драйвер был постоянно активен, и при вращении руля двигатель генерировал напряжение а драйвер сопротивлялся этому и если у Каравана только одним ремнем идет редукция и мб он этого не замечал то у меня два ремня и малейшее сопротивление двигателя очень заметно было. Когда я подключил по своей схеме все стало супер. Руль стал легко вращаться как будто на выключенном вращаешь.
В итоге что хочется сказать если вы дочитали до сюда значит вам это интересно, спасибо огромное за внимание я сразу извиняюсь но пока не доработаю функционал проект не выложу в общий доступ, если вам интересно то следите за проектом. Посветить все свое время ему я не могу т.к. есть основная работа, семья и т.д. и данным проектом я занимаюсь часа 2-3 в день когда есть настроение и свободное время. Разработка заняла примерно 4-5 месяцев. Много времени ушло на то что бы правильно подружить ардуину и ПК для отображения осей, кнопок, POV настройки FFB и многое другое.
По моему это самый функционально большой проект для DIY сим рейсеров, ну или я просто не нашел что то подобное. Может у вас есть какие то идеи пишите если получиться воплотить будет супер.
Если вы хотите посмотреть на работу, то я на своем YouTube канале недавно сделал ролик по этому, мб он немного кривоват и сделан на быструю руку но основу работы видно. Кстати да, я только недавно создал канал и хочу на нем время от времени проходить гонки на этом же руле и выкладывать видосики, там есть пару видосиков по другой игре можете посмотреть как будет выглядеть контент, ну и так же все обновления связанные с рулем, если не трудно то подпишитесь и порекомендуйте друзьям, буду очень признателен. Спасибо.