Найти в Дзене
Пик-ТСЗ для ZDSIMULATOR

Создание ЖД тренажеров на основе ZDSimulator Часть 1.

На данный момент сканер поддерживает версию симулятора 54.006 Итак немного предыстории. Началось все примерно в 2016 году, встретились два интересных человека. Alex_B и RUSHPIL. Эти два человека интересовались железнодорожными стимуляторами, на чем и сошлись на форуме ZDSimulatior.com. Захотели они сделать симулятор гораздо интереснее и повысить его реалистичность, собрав тренажер машиниста. Но вот беда игра ZDSimulator не имела штатных средств вывода информации и к игре не получалось подключить внешние устройства. Такие как сигнальные лампы, скоростемеры, стрелочные приборы и манометры. Для этого было решено написать программу, работающую по принципу программ для хака игр (трейнеров) которые могут менять в игре разные параметры. Эта программа должна была получать данные из игры и отправлять их в тренажер. Каждый пошёл по своему пути RUSHPIL писал свою программу сканера на языке VB. Alex_B. Писал на языке C# и C++. В результате у каждого получилась своя версия программы. Мы с вами расс

На данный момент сканер поддерживает версию симулятора 54.006

Итак немного предыстории.

Началось все примерно в 2016 году, встретились два интересных человека. Alex_B и RUSHPIL. Эти два человека интересовались железнодорожными стимуляторами, на чем и сошлись на форуме ZDSimulatior.com. Захотели они сделать симулятор гораздо интереснее и повысить его реалистичность, собрав тренажер машиниста. Но вот беда игра ZDSimulator не имела штатных средств вывода информации и к игре не получалось подключить внешние устройства. Такие как сигнальные лампы, скоростемеры, стрелочные приборы и манометры. Для этого было решено написать программу, работающую по принципу программ для хака игр (трейнеров) которые могут менять в игре разные параметры.

Эта программа должна была получать данные из игры и отправлять их в тренажер. Каждый пошёл по своему пути RUSHPIL писал свою программу сканера на языке VB. Alex_B. Писал на языке C# и C++. В результате у каждого получилась своя версия программы.

Мы с вами рассмотрим подробнее программу ZDSimSkaner которую написал Alex_B.

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

Можно получить значения скорости текущей и скорости следующего ограничения, значения напряжения контактной сети и напряжения ТЭД, тока ТЭД, значение позиций, напряжения АКБ, давления ТМ, УР, ТЦ, ГР, значение времени из игры. Также можно получить значения всех сигнальных ламп из симулятора, в том числе лампа бдительности и показания локомотивного светофора.

В симулятор можно писать значения состояния всех переключателей, кнопок, кранов машиниста и контроллера скорости. Программа использует для связи с пультом машиниста тренажера последовательный порт стандартный COM или виртуальный USB/COM. В качестве контроллера управляющего тренажером удобно использовать плату Arduino Mega 2560 хотя можно сделать и на нескольких платах Arduino UNO или отдельном микроконтроллере без использования Arduino в своих первых пультах Alex_B так и делал. Но для многих это сложно потому будем делать на Arduino. Плата подключается по USB к PC и получает из программы сканера данные, которые та получает из запущенной игры.

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

Буфер приема данных из игры ZDSimulator:

[0,1] – (int) допустимая скорость

[2,3] – (int) текущая скорость для шагового двигателя.

[4] – (byte) АЛС от 0 до 5 (0-выкл,1-бел,2-кр,3-кж,4-ж,5-з)

[5] – (byte) лампа бдительности. bdit

[6,7] – (int) текущая скорость для индикаторов

[8,9] – (int) ток ЭПТ

[10] – (byte) час

[11] – (byte) минута

[12] – (byte) секунда

[13,14] – (int) напряжение КС

[15,16] – reserved

[17,18] – (int) напряжение ТД

[19,20] – (int) ток1 ТД

[21,22] – (int) ток2 ТД

[23,24] – (int) ток3

[25,26] – (int) ток4

[27,28] – (int) РК позиция

[29,30] – (int) манометр давление НМ

[31,32] – (int) манометр давление ТМ

[33,34] – (int) манометр давление УР

[35,36] – (int) манометр давление ТЦ

//лампы

[37] – (byte) Наполнение ТЦ. tc

[38] – (byte) эпт о.

[39] – (byte) эпт п.

[40] – (byte) эпт т.

[41] – (byte) ручка контроллера сериесное (последовательное соединение обмоток ТЭД) RK_C.

[42] – (byte) ручка контроллера сериес-параллельное (последовательно-параллельное соединение обмоток ТЭД) RK_CP.

[43] – (byte) ручка контроллера параллельное (параллельное соединение обмоток ТЭД) RK_P.

[44] – (byte) утечка ТМ (418 датчик обрыва ТМ). utechka_tm

[45] – (byte) секция №1 ТД (ТД/ЛК и Т). C1_td

[46] – (byte) ВВК откр./двери. vv_open1

[47] – (byte) вспомогательный компрессор/заряд батареи. vspom_comp_zb

[48] – (byte) компрессор comp_mk.

[49] – (byte) вентилятор. vent

[50] – (byte) РП/850/ГВ. rp_850_gv

[51] – (byte) земля/БВ. zemla1_bv

[52] – (byte) ручка контроллера 0 поз. RK_0_1.

[53] – (byte) ручка контроллера промежуточная позиция. RK_prom_1.

[54] – (byte) песок/РБ на секциях. pesok

[55] – (byte) насос/ФР. nasos_fr

[56] – (byte) ручка контроллера ходовая позиция. hod

[59,60] – (int) задержка шагов двигателя

[61,62,63,64] – признак окончания буфера, всегда постоянный – 0xA0, 0xB0, 0xC0, 0xD0

//----------------------------------------------------------------------------------

Теперь о самой программе сканер подробней.

Ссылка на программу сканера.

https://disk.yandex.ru/d/ntAHIeQ4Co5F7w

Настройки:

Окно настроек.

-2

Шум джойстика: регулировка погрешности переменных резисторов.

-3

Делители / или множители * шаговых приборов для развертки шкалы.

-4

Режим:

  1. Только прием, вывод данных на лампы и пр.
  2. Только передача, с джойстика в игру.
  3. И то и другое.
-5

Настройка и метки осей, наподобие McabMapper,

Сброс точек оси сбрасывает только текущую ось

-6

Выбор настройки того или иного локомотива, Controls назначается и работает постоянно, и общий для всех.

Сброс тек – сбрасывает текущий локомотив.

Сбросить все – сбрасывает все локомотивы.

Сбросить все – сбрасывает все локомотивы, оси и удаляет файл конфигурации в профиле пользователя.

При двойном нажатии на какую-либо настройку в предыдущем окне, открывается окно 3:

-7

Здесь можно выбрать точки осей слева или кнопки справа.

-8

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

Но сначала нужно поставить галочку «звуки в режиме передачи»

Схемы подключений.

Индикация лампы.

Прошивки.

https://disk.yandex.ru/d/_kk0fxgoPQYGxA

-9

Скорость текущая, ограничение скорости, время симулятора и позиции контроллера.

Прошивки.

https://disk.yandex.ru/d/_VTNbP9zb9_2pQ

-10

Манометры давление НМ, ТМ, УР, ТЦ вывод на шаговые двигатели X27-168.

Прошивки.

https://disk.yandex.ru/d/i9rnnF2yzE_yWw

-11