habrahabr

Кто сообщает картам, где едет ваш транспорт

  • воскресенье, 16 марта 2025 г. в 00:00:12
https://habr.com/ru/companies/timeweb/articles/889116/
Приветствую всех!
Когда-то давно здесь уже был пост про то, как работает отображение движения транспорта на Яндекс-Картах. С тех пор мне не раз предлагали рассказать про то, что происходит на «транспортной» стороне: что вообще за устройства установлены на подвижном составе, в каком формате они передают положение и что с этими данными делают дальше. Самое время восполнить это упущение.



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

Суть такова


image

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



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

Что это вообще за железки?




Обычно такие девайсы называются бортовыми навигационно-связными терминалами. Некоторые экземпляры (например, Гранит-навигатор) в инструкции именуются возимыми радиостанциями.



Наибольшее распространение они получили после 2018 года, когда всех пассажирских перевозчиков обязали установить практически на весь свой транспорт оборудование ГЛОНАСС. Впрочем, в крупных городах подобные устройства использовались и ранее: их установка обеспечивала улучшение контроля за движением и за соблюдением расписания.

Автоинформаторы


Помимо упомянутых БНСТ существуют и «традиционные» информаторы, оснащённые приёмником GPS/ГЛОНАСС исключительно для автоматического объявления остановок. Как нетрудно догадаться, принцип их работы довольно схожий.



К примеру, вот такие вот девайсы модели ИР-0651 стоят практически во всех питерских трамваях.



А вот информатор «Орбита» с таким же принципом работы.

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


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



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



С обратной стороны кронштейн и разъёмы MicroFit для подключения. С нижнего торца кнопка Reset, разъёмы для SIM-карты и microSD, а также гнездо miniUSB для подключения к компьютеру и 3,5 мм для тангенты. Также видны прорези контрольного динамика, однако в моей модификации его нет.



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



С обратной стороны мало интересного.



Снизу два разъёма. По бокам ещё три — под карту памяти (полноразмерную SD), miniUSB и 8P8C для подключения тангенты. Сверху красная кнопка SOS. По назначению она несколько отличается от той, что можно увидеть в системах вроде «Эра-ГЛОНАСС»: действие при её нажатии настраивается в ПО для конфигурации.



Тангента для объявлений в салон или для связи с диспетчером.

Гранит


Самое время попробовать запустить. Начнём с «Гранита». Согласно распиновке из инструкции подаём питание — ничего не происходит.



Разбираем. В глаза сразу бросается отлетевший конденсатор справа. Один из них всё ещё припаян, а вот второй просто валялся в корпусе.
Девайс построен на микроконтроллере LPC2468FET208 на ядре ARM7TDMI. Также на плате расположены GSM-модем, ГЛОНАСС-приёмник Geostar, GPS-модуль Fastrax и керамическая антенна. В белом прямоугольнике некогда был приклеен аккумулятор, который, видимо, когда-то давно вздулся и был выкинут. Разъёмы по периметру промазаны некоей гадостью, в которой легко угадывается обычный поксипол. На нераспаянном разъёме видна нумерация контактов.



Обратная сторона платы.



На дисплее маркировка UDLP-GT240128B, даташит сходу не гуглится.



Припаял отвалившийся конденсатор на место. За кадром выяснил и причину неисправности: отвалилась пайка одного из контактов разъёма. Расковырял эту заливку и пропаял всё нормальным свинцовым припоем.



Подал питание, и девайс успешно ожил. Можно собирать.

Запускаем Гранит




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



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



Первая кнопка — вызов диспетчера. Здесь ничего особенного: при её нажатии девайс совершает звонок на прошитый в него номер.



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



Наконец, две последних — информатор и громкая связь.

BlazeMaster


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



Для настройки этой штуки используется такой софт как BlazeMaster. Хотя он не гуглится, найти его не составляет проблем: он лежит на сайте производителя (Сантэл-Навигация).



У меня нет реально использовавшихся в каких-то городах записей (ни для Гранита, ни для Орбиты), так что пришлось создать какой-то тестовый маршрут.



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



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



Но, к сожалению, заставить его видеть файлы маршрута у меня так и не вышло. Я пробовал разные карты памяти, форматировал их в FAT и FAT32, однако аппарат упорно прикидывался кирпичом и файлов не видел. Пообщавшись с теми, кто занимался этими приборами, узнал, что под него было несколько прошивок и, вероятно, у меня стоит сборка, где информатор отключен.

Орбита


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



Вот он в кабине трамвая 71-931М «Витязь-М».



Он же в электробусе БКМ Е321.



Орбита-Информатор в модернизированном трамвае 71-605 (маленькая штучка с тремя кнопками над пультом).



Автобус ЛиАЗ-6213 с весьма характерного вида табло из комплекта «Орбиты».



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



Плата управления. GSM-модуль SIM900R, урезанная версия некогда очень популярных в среде AVRщиков модулей SIM900 и SIM900D. Довольно специфический МК dsPIC33EP256MU810, выпускаемый Microchip специально для автомобильной электроники.



Обратная сторона платы. Дисплей на этот раз текстовый от МЭЛТ, HD44780-совместимый. Маленький аккумулятор поддерживает работу устройства, когда двигатель автобуса заглушен или низковольтные цепи трамвая или троллейбуса отключены. Реле коммутирует салонный динамик, благодаря чему при отсутствии трансляции он не издаёт посторонних звуков.



Этот экземпляр оказался полностью рабочим. При подаче питания он сходу загрузился и автоматически подтянул дату и время по GPS.





Интерфейс здесь на этот раз текстовый. В плане пунктов меню он практически полностью идентичен предыдущему экземпляру, так что демонстрировать его подробно я не буду.



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



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

Передаём данные


У меня нет софта, который используется организаторами перевозок, поэтому для демонстрации работы железки воспользуемся чем-то более простым. Большинство таких транспортных навигационных терминалов могут отправлять данные в формате NDTP (Navigation Data Transfer Protocol) и EGTS (протокол Эра-ГЛОНАСС). «Орбита» не исключение. Второй протокол нас и интересует: его могут принимать некоторые открытые сервисы для мониторинга транспорта. Для нашего девайса воспользовался сайтом free-gps.ru, основанным на софте Traccar. Выбран он был благодаря упоминанию данного прибора на сайте.



Так что регистрируемся и добавляем наш девайс. В качестве идентификатора указываем IMEI.



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



Теперь настраиваем параметры для связи с сервером.



Записываем конфигурацию. Девайс подвиснет, перезагрузится и напишет «USB Bootloader». Ещё через полминуты он будет готов к работе.



Втыкаем симку, включаем аппарат и ждём чуда.



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

Выход в город


Увидеть на карте метку с этим девайсом, конечно, круто, но как насчёт прогуляться с ним по городу и посмотреть, каких данных он там накидает?



Больше всего думал над питанием: от USB ни один экземпляр не работает, а брать с собой свинцовый аккумулятор от ИБП не хотелось. В итоге по-быстрому был собран вот такой девайс, состоящий из сгоревшего энергобанка (обычно в них дохнут аккумуляторы, а тут, на удивление, вылетела плата зарядки, которую у меня всё не доходят руки попробовать оживить), некоторого количества проводов с разъёмами, платы защиты и модуля повышающего преобразователя на чипе MT3608. Поскольку это всё разовый опыт (хотя после этого я всерьёз задумался над тем, что надо бы собрать компактный автономный источник питания на 12 или 24 В), просто замотал детали в пупырку.



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



Убеждаемся, что связь установилась, и едем по своим делам.



А вот так в нём работает GPS-спидометр.



Вернувшись домой, смотрим, что же передал прибор.



Здесь всё так же, как с обычными GPS-трекерами (потому что по сути это и есть навороченный GPS-трекер): маршрут, пробег, скорость и тому подобные параметры.



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

Что дальше делают с этими данными?


Во время движения ТС девайс передаёт данные на сервер депо, парка или же сразу организатору перевозок. Принятые от обслуживаемого предприятием транспорта данные обрабатываются для оценки работы этого маршрута, а также преобразуются в какой-то воспроизводимый формат (например, небезызвестный в узких кругах GTFS) и передаются или продаются другим сервисам (тем самым 2GIS, Яндекс и другим). В разных городах дела с форматом, передачей и прочими нюансами обстоят по-разному: где-то «сырые» данные лежат в открытом виде (например, в Питере они есть тут), где-то с их получением сложнее (в Челябинске некогда можно было забрать тут, но сейчас такой возможности нет). Помню, как в Челябинске несколько месяцев не работал Bustime, так как тот источник данных, откуда он их брал, перестал быть доступен.

Про маршруты




Помню, в посте от Яндекса меня удивило, что номер маршрута не «подтягивается» из передаваемых бортовым устройством данных (ведь, казалось бы, он должен их передавать), а рассчитывается исходя из трассы. Как оказалось, EGTS и вправду их не передаёт, при выборе такого протокола эти параметры передаются на сервер автопарка отдельно.



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

Что же в итоге?


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



Отдельно стоит сказать про GPS-приёмник «Орбиты»: этому экземпляру удавалось найти спутники даже в глубине квартиры. Единственным имеющимся у меня девайсом, который тоже так может, оказался КПК Asus MyPal A639 (тот самый КПК с откидной GPS-антенной).
Такие дела.

Ссылки





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



Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите кэшбэк на баланс.