Прошивка Arduino для мода ets2_dashboard под аналоговые приводы

Опубликовано: 31 августа 2015 в 02:59

Игра EuroTruckSimulator 2 — авто-симулятор вождения большегрузных грузовиков. В сообществе этой игры, периодически встречаются «маньяки», которым так и хочется приблизить данный симулятор еще больше к реальности и они начинают изобретать! Благо разработчики игры, фирма SCS, выпустила SDK телеметрии, благодаря чему можно получить любые данные телеметрии из игрового процесса.

Один такой энтузиаст Silas Parker написал библиотеку ets2_dashboard, она работает как плагин для игры EuroTruckSimulator 2 и передает на серийный COM порт необходимые параметры.

В свою очередь, приемником на COM порту выступает плата Arduino UNO, которая обрабатывает поступающие сигналы и распределяет по своим портам.

ArdGen_UNO

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

Все бы хорошо, но знакомые ребята, которые начали собирать свои «симуляторы», имели приборные панели с аналоговыми приводами приборов. Собственно по этому и возникла необходимость видоизменить саму прошивку для Arduino так, чтоб на порты выдавался сигнал не для серво привода, а аналоговый ШИМ.

Для того чтоб не переписывать библиотеку, решено было от «мапить» данные для серво приводов, под аналоговый ШИМ.

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

После недолгих разбирательств, получилась вот такая вот прошивка:

В этой прошивке данные выводятся на следующие PWM~ порты:

Параметр Порт Арудино
Скорость движения Порт 3
Обороты двигателя Порт 5
Давление тормозной системы Порт 6
Запас топлива Порт 9
Давление масла Порт 10
Температура жидкости Порт 11

Внимание!
На большинстве плат Arduino (на базе микроконтроллера ATmega168 или ATmega328) ШИМ поддерживают порты 3, 5, 6, 9, 10 и 11, на плате Arduino Mega порты с 2 по 13. На более ранних версиях плат Arduino analogWrite() работал только на портах 9, 10 и 11.[примечания analogWrite()]

Поделиться

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

(Required)