Как стать автором
Обновить
1359.48
Timeweb Cloud
То самое облако

Оживляем электронный кран машиниста от электровоза

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.1K
Приветствую всех!
Если вы хотя бы раз видели кабину локомотива или электрички, то наверняка знаете, что для управления тормозами там используется кран машиниста — достаточно сложный пневматический прибор, призванный изменять давление в тормозной магистрали. В новых поездах эти устройства перестали быть чисто пневматическими, в них появилась ещё и электроника.
Мне всегда хотелось раздобыть такой экземпляр и показать, как он устроен. И вот наконец мне удалось это сделать, так что самое время вернуть его к жизни и узнать, на что он ещё способен.



Итак, в сегодняшней статье поговорим про такой артефакт наших железных дорог как кран машиниста №130. Узнаем, как устроен его контроллер и попробуем его восстановить. Традиционно будет много интересного.

Суть такова




Так получилось, что основными приборами управления тормозами на нашем подвижном составе являются краны машиниста №394 и №395. В плане пневматики это по сути один и тот же кран, единственное отличие заключается в наличии у триста девяносто пятого контроллера управления электропневматическим тормозом (та самая круглая коробочка сверху). Также на фото виден маленький кран вспомогательного тормоза №254, служащий для управления тормозами локомотива.



Само собой, этими двумя моделями список не ограничивается. Вот, например, кран №334, применяющийся на вагонах метро (а ещё раньше — на локомотивах и МВПС). Модель очень старая, по найденным сведениям, выпускался он аж с 1904 года и ставился ещё на паровозы.



Кран №013, устанавливающийся на практически все новые вагоны метро, а также рельсовые автобусы РА1.



А вот довольно экзотический кран №172 (он же 4ВК), применяющийся в частности на трамваях с пневмотормозом (ЛМ-68М, ЛВС-86К, РВЗ-6М2...).

Что же это за кран №130?




Предмет сегодняшнего обзора — так называемый кран с дистанционным управлением. В отличие от предыдущих экземпляров, этот — электронный, состоящий из контроллера крана машиниста в кабине и пневмопанели в аппаратном отсеке. По части положений это всё тот же кран №395. Вообще, про то, как работают краны №394 и №395, отлично рассказывал maisvendoo в своём посте про приборы управления, так что не вижу особого смысла повторяться тут.



Эти устройства ставятся на новый подвижной состав. Вот, например, этот кран в кабине электрички ЭП2Д (его ручка видна в правой части пульта, слева контроллер машиниста).



А вот он же в электровозе ЭП20.
По сравнению с более старыми кранами непосредственного действия, разработанными полвека назад, этот — совсем новый, его внедрение началось лишь в нулевые годы.



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

Обзор оборудования




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



Шкала с положениями. Они здесь всё те же, что и в кране №395. Ручка приятно тугая, переключается с характерным щелчком.



Заводская табличка. Делает эти устройства АО МТЗ-Трансмаш. На табличке почему-то не заполнено ни одно из полей.



Снизу ничего интересного, только крышка, в которую некогда был вставлен разъём.

Внутренности


Давным-давно я писал про контроллер машиниста. Там код позиции задавался кулачками, нажимавшими на самые обычные микрики. Этот же контроллер — бесконтактный.



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



Самая главная часть контроллера — вот этот рычаг, на конце которого закреплён магнит. Соответственно, на плате находятся датчики Холла, считывавшие его положение.



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

Собираем плату управления


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



Дома завалялась целая куча вот таких вот побитых жизнью макетных плат, выпущенных в ныне несуществующей ГДР. Какие-то были совершенно пустыми, а какие-то всё ещё хранили наследие былой эпохи вроде раритетных радиодеталей или остатков монтажа навивкой. Как мне подсказали, это остатки от ЗИПа к какой-то модели Robotron, впрочем, состояние позволяло использовать эти платы исключительно как обычные макетки.



Для того, чтобы считывать позиции, были взяты датчики Холла. Это те самые SS495A, оставшиеся у меня после экспериментов с магнитными ключами домофонов «Факториал». Датчиков нужно семь штук — на каждую из позиций по одному.



Также использовал MAX485 для передачи данных (почему именно её — расскажу чуть позже) и видавшую виды Arduino на базе чипа от LGT для управления.



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



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



И в соответствии с метками запаиваем датчики. Припаиваем провода.

Прошивка контроллера


Теперь очередь софта. Само собой, кран оживлялся для сборки домашнего пульта машиниста. И у меня была идея повесить все составляющие тренажёра на RS-485, чтобы не переделывать каждый раз плату, а просто модифицировать прошивку. Поэтому пишем такой скетч:

#define RX 9
#define TX 8
#define MAX485 7

#define SEND 1
#define RECEIVE 0

#define DEVICE_ID 0x82

#define MIN_SENSOR_VALUE 100

#include <SoftwareSerial.h>

SoftwareSerial host(RX, TX); // RX, TX

uint16_t hallReadings[7];

uint8_t getAbsolutePosition() {
  for (int i = 0; i < 7; i++) {
    hallReadings[i] = analogRead(i);
    Serial.print("Channel ");
    Serial.print(i + 1);
    Serial.print(" ");
    Serial.println(hallReadings[i]);
  }
  Serial.println();
  for (int i = 0; i < 7; i++) {
    if (hallReadings[i] <= MIN_SENSOR_VALUE) return i + 1;
  }
  return 0;
}

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  host.begin(4800);
  pinMode(MAX485, OUTPUT);
  digitalWrite(MAX485, RECEIVE);
}

void loop() {
  // put your main code here, to run repeatedly:
  uint8_t currentPosition = 0, previousPosition = 0;
  currentPosition = getAbsolutePosition();
  if (currentPosition != 0) {
    previousPosition = currentPosition;
  }
  if (host.available()) {
    if (host.peek() == DEVICE_ID) {
      host.read();
      digitalWrite(MAX485, SEND);
      host.write(previousPosition);
      digitalWrite(MAX485, RECEIVE);
    }
    else host.read();
  }

Тут всё просто — считываем код позиции и, если он не равен нулю (что бывает в момент переключения крана), сохраняем его. Попутно слушаем шину и в случае поступления байта 82h (что и есть 130 в десятичной системе) отправляем в ответ код позиции.

Собираем


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



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



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

Ещё раз про контроллер


Как оказалось, использованная изначально Raspberry Pico для такой задачи подошла так себе, в частности, несмотря на то, что USB HID с виду работал нормально, в некоторых играх (например, Metrostroi) контроллер либо в принципе не работал, либо работал неадекватно (перескакивая позиции или вообще зависая). С чем это связано, понять так и не вышло.



Поэтому в качестве контроллера ввода была взята Arduino Micro (на которую залит скетч на базе библиотеки Joystick.h), с которой проблем не наблюдалось. На плате разместился чип 74HC165 для приёма сигналов с контроллера и два DIP-переключателя, пока что зарезервированных. Также там была установлена та самая MAX485, к которой будет подключено всё остальное железо, включая этот кран.

Софт


Изначально я подключал контроллер к Trainz. Но товарищи, уже имевшие опыт в создании пультов машиниста, подсказали, что лучше всего использовать ZDSimulator.



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



Назначаем позиции джойстика на кран машиниста, запускаем игру, и всё, можно трогаться.

Вот как-то так


Вот так удалось вернуть к жизни очередной девайс из мира ЖД, попутно приблизив ещё на шаг готовый домашний тренажёр машиниста.
Само собой, я уже попробовал кататься с этим краном, ощущения непередаваемые. Никакой джойстик и уж тем более клавиши не смогут обеспечить того же.
Такие дела.

Ссылки





Возможно, захочется почитать и это:

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале

Теги:
Хабы:
+53
Комментарии9

Публикации

Информация

Сайт
timeweb.cloud
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Timeweb Cloud