Главная | Софт | ADSBox

ADSBox - бесшумный и экономичный сервер для трансляции ADS-B!

Сайт автора: http://diseqc.org.ua/projects/hard/adsb/index.html

Обсуждение на форуме

Скачать последнюю скомпилированную версию ADSBox

   Предлагаемая конструкция состоит из приёмника miniADSB, декодера, собранного на микроконтроллере Atmega8 и разработанного программного обеспечения Adsbox (скачать последние версии здесь), работающего на ОС Linux. Всё программное обеспечение приведено в исходных кодах. Система собрана в виде макета. Опробована работа совместно с программой PlanePlotter, организована трансляция принимаемых данных на сайт flightradar24.com.

Декодер.

   Выход приёмника соединён с декодером, основной частью которого является микроконтролер. За основу декодера взята конструкция с сайта http://www.lll.lu/~edward/edward/adsb. Однако, был переработан исходный код прошивки микроконтроллера: за неимением контроллера Atmega48, был применён контроллер Atmega8-16PI; кроме того была убрана часть кода, управляющая sat-тюнером, применявшимся в оригинальной разработке. Схема включения микроконтроллера полностью соответствует указанной на сайте, поэтому здесь не приводится. Декодер собран на макетной плате.

Следует отметить, что хотя чип Atmega8-16PI предназначен для работы с максимальной частотой 16МГц, отдельные экземпляры, видимо, работают на частоте 20МГц, что и было с успехом использовано. Работу декодера можно проверить, подключив к его последовательному порту терминальную программу. Будут выводиться данные, как показано на рис.

Исходный код декодера на ассемблере - здесь. Откомпилированный код HEX - здесь.

 

ПО Adsbox.

Предполагается круглосуточная работа ADS-B декодера, однако, имющееся ПО, предназанченное для декодирования работает на персональных компьютерах, постоянная работа которых не всегда возможна. Поэтому было принято решение разработать собственное программное обеспечение, а в качестве платформы использовать плату, оснащенную процессором ARM9 AT91SAM9XE512 и ОС Linux, и потребляющую мало энергии (вся система работает от блока питания со стабилизатором 7805). Плата была приобретена на сайте starterkit.ru.

Плата была доработана - выведен второй порт RS-232, для соединения с декодером; первый порт используется в качестве консоли. Кроме того, к плате подключён USB WiFi модуль D-Link DWA-131, что позволяет подключать систему к домашней беспроводной сети.

Конечно, остаётся возможность работы программы на персональном компьютере с ОС Linux. Вообще, выбор аппаратной платформы ограничивается наличием для неё компилятора gcc. Общий вид собранной системы показан на рис.

Сборка.

   ПО Adsbox поставляется в виде архива с исходным кодом. Перед сборкой необходимо отредактировать файл Makefile для выбора платформы, на которой будет работать программа. Если надо собрать программу для платформы ARM соответствующая строка в Makefile должна быть такой:

CC=arm-linux-gcc

Такая сборка предполагает наличие среды разработки arm-toolchain, включающей в себя кросс-компилятор. Если надо собрать программу для платформы Intel, то строка в Makefile должна выглядеть так:

CC=gcc

Сборка исполняемого файла производится командой make. После её выполнения в каталоге появится исполнимый файл adsbox, который и осуществляет передачу данных клиентским приложениям.

Запуск и работа.

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

Имеется возможность указать своё местоположение (координаты можно взять на Google Maps), в этом случае на консоль выводится информация о дальности до самолёта и подавляются сообщения о местоположении самолёта дальностью более 300 км (такие сообщения трактуются как ошибочные).

 Опции командной строки:
-d работать в режиме демона
-s последовательный порт, например /dev/ttyS1
-l широта приёмника, например 55.0584
-g долгота приёмника, например, 39.3514

  Аспекты декодирования ADS-B пакетов выходят за рамки этой статьи. После запуска программа запускает сервер, прослушивающий TCP-порт 30003. Клиентские приложения должны использовать этот порт для получения данных. Возможна одновременная работа нескольких приложений. Данные поступают клиентам в формате SBS1 BaseStation. С описанием формата можно ознакомиться на сайте. Этот формат выбран как подходящий для работы с различными программами-визуализаторами данных ADS-B, таких как PlanePlotter, а также для трансляции на сайт flightradar24.com. После запуска программы можно проконтролировать её работу присоединившись программой telnet к порту 30003 - см. рис. набрав следующую команду:

telnet localhost 30003

Для автоматического запуска программы после загрузки системы потребуется редактирование инициализирующих скриптов. Подробнее об этом можно узнать из документации на ОС Linux.

Работа с PlanePlotter.

Для отображения данных в программе PlanePlotter необходимо сделать следующие настройки:
-в меню Options-IO Settings отметить галку Mode-S/ADS-B, выбрать тип приёмника SBS1/RBv3 TCP;
-в меню Mode-S receiver-Kinetic SBS1-IP address прописать IP адрес сервера, на котором запущено ПО Adsbox;
-нажать кнопку Start
Через некоторое время, при наличии в радиусе приёма самолётов, на в окне программы на карте появятся их изображения.

Организация трансляции на сайт flightradar24.com.

ПО Adsbox может быть использовано для организации передачи данных на FR24. Для этого необходимо обратиться к администрации сайта и запросить клиентское программное обеспечение (подробнее описано на странице Трансляция). Программное обеспечение поступает в виде набора файлов, из которых для работы потребуется всего несколько. Кроме того, необходимо наличие интерпретатора PHP на целевой платформе. Порядок действия следующий.

-создать каталог, например, /root/fr24
-скопировать в него файлы sbs1station.php, uploader.php, config.ini из набора, присланного flightradar24.com
-создать в том же каталоге исполнимый shell-скрипт fr24.sh такого содержания

#!/bin/sh
cd /root/fr24
/usr/bin/php /root/fr24/sbs1station.php &
/usr/bin/php /root/fr24/uploader.php

-запустить ПО Adsbox в режиме демона
-запустить трансляцию командой

/root/fr24/fr24.sh > /dev/null 2>&1 &

Далее, можно открыть сайт flightradar24.com и убедиться, что на нём присутствуют данные нашего радара. Можно добавить команду, запускающую скрипт fr24.sh в инит-скрипты, чтобы трансляция начиналась после загрузки системы.

 

На основе ПО ADSBox была разработана конструкция, прочитать о которой можно в статье: Собираем бесшумный и экономичный сервер для трансляции ADS-B!

Ветка на форуме

 

 
 
 

Комментарии

Clicky

Яндекс.Метрика