Отслеживание самолетов с использованием сигналов ADS-B с Raspberry Pi и RTL-SDR

В этом примере показано, как создать станцию дистанционного зондирования, которая отслеживает самолеты с помощью радио Raspberry Pi™ и RTL-SDR. Вы узнаете, как развернуть модель Simulink ®, которая обрабатывает сигналы Automatic Dependent Surveillance-Broadcast (ADS-B) и отправляет демодулированные данные на хост-ПК с помощью пакетов UDP для визуализации.

Необходимое аппаратное и программное обеспечение

Чтобы запустить этот пример, вам нужно следующее оборудование:

  • Радио RTL-SDR

  • Малиновый Пи

и следующее программное обеспечение

Полный список платформ SDR, поддерживаемых Communications Toolbox, см. в разделе «Поддерживаемые аппаратные средства» страницы Программно определяемого радио (SDR).

Введение

Введение по реализации приемника ADS-B в Simulink смотрите в примере Отслеживание самолетов с использованием сигналов ADS-B в Simulink, изображенном ниже. Мы также рекомендуем заполнить пример начала работы с пакетом поддержки MATLAB для оборудования Raspberry Pi (пакет поддержки MATLAB для оборудования Raspberry Pi).

modelName = 'ADSBSimulinkExample';
open_system(modelName);
set_param(modelName, 'SimulationCommand', 'update');

Удаленный приемник ADS-B с Raspberry Pi

Вы можете настроить станцию дистанционного зондирования для слежения за самолетом с помощью оборудования Raspberry Pi с подключенным к ней радио RTL-SDR. Можно запустить блок PHY Layer приемника ADS-B на Raspberry Pi и отправить полученные данные через Интернет с помощью пакетов UDP. Можно получить эти пакеты UDP на локальном компьютере и запустить блоки Message Parser и Средство Просмотра, чтобы визуализировать результаты. Ниже приведена измененная модель удаленного приемника ADS-B, которая работает на Raspberry Pi.

close_system(modelName)
modelName = 'ADSBRaspberryPiSimulinkExample';
open_system(modelName);
set_param(modelName, 'SimulationCommand', 'update');

Запуск модели приемника ADS-B на оборудовании Raspberry Pi

Выполните следующие шаги, чтобы запустить модель приемника ADS-B на оборудовании Raspberry Pi.

1. Подключите радио RTL-SDR к одному из USB-портов оборудования Raspberry Pi

2. Откройте отслеживающие самолеты, используя сигналы ADS-B с малиной Pi - модель датчика

3. Дважды кликните по блоку UDP Send. Откройте маску блока и введите IP address of your host computer в окне редактирования Удаленного IP-адреса. Для примера, если IP-адрес вашего хоста-компьютера 10.10.10.1, введите '10.10.10.1' в маске блока. Не изменяйте параметр Удаленный IP-порт. Нажмите кнопку ОК, чтобы сохранить и закрыть маску блока.

4. В модели Simulink нажмите кнопку «Развернуть на оборудовании» на панели инструментов.

5. Модель, работающая на оборудовании Raspberry Pi, начнет отправлять UDP-пакеты на порт 25000 вашего хосты-компьютеры.

Запуск модели агрегатора ADS-B на Хост-компьютер

Выполните следующие шаги, чтобы запустить модель хоста, которая получает пакеты UDP, отправленные моделью, работающей на оборудовании Raspberry Pi.

1. Откройте Отслеживающие самолеты Используя ADS-B Signals - Aggregator. Эта модель имеет блок UDP Receive, который сконфигурирован для приема пакетов UDP, отправленных моделью, работающей на оборудовании Raspberry Pi. Дважды кликните маску блока UDP Receive. Обратите внимание, что для локального IP-порта задано значение 25000, а для выхода данных задано значение «uint8».

2. Нажмите кнопку Play, чтобы запустить модель.

close_system(modelName)
modelName = 'ADSBAggregatorSimulinkExample';
open_system(modelName);
set_param(modelName, 'SimulationCommand', 'update');

Следующие рисунки иллюстрируют, как приложение отслеживает и перечисляет детали рейса и отображает их на карте.

Остановите модель, работающую на оборудовании Raspberry Pi

Когда вы хотите остановить работу модели на Raspberry Pi, выполните следующее в командной строке MATLAB ®.

rPi = raspberrypi;
stop(rPi,'ADSBRaspberryPiSimulinkExample');

Поиск и устранение проблем

Если вы не можете получить никаких данных о модели хоста, убедитесь, что Raspberry Pi и ваши хосты-компьютеры находятся в одной локальной сети. Другими словами, убедитесь, что первые три номера IP-адресов совпадают.

Кроме того, убедитесь, что программное обеспечение безопасности Интернета позволяет передавать и принимать пакеты UDP на порту 25000.

close_system(modelName)