Настольный радар на Raspberry Pi с круглым экраном
У многих разработчиков на рабочем столе стоит какой-нибудь компактный гаджет для вывода статусов: мини-дисплей с графиками загрузки серверов, криптотикер или просто часы на ESP32. Но автор проекта FlightScnr_Pi пошел дальше и собрал полноценный физический радар воздушного и морского трафика.
Устройство работает на Raspberry Pi и круглом 4-дюймовом сенсорном экране. Картинка выглядит как прибор из кабины пилота или пульта авиадиспетчера: зеленая полоса развертки скользит по кругу, метки бортов обновляются в реальном времени, а при тапе по экрану открывается карточка рейса с фото самолета и маршрутом.

Что под капотом и как это устроено
Проект написан на Python и оптимизирован под дисплей Waveshare 4″ DSI LCD (разрешение 720×720 точек). Круглый форм-фактор диктует свои правила в верстке интерфейса: все элементы сгруппированы так, чтобы углы не обрезались, а важные показатели оставались по центру или плавно следовали за круговой рамкой.
Данные о полетах подтягиваются из нескольких источников на выбор. Можно использовать открытый фид adsb.fi, Flightradar24 либо подключить локальный SDR-приемник с dump1090 или readsb. Если рядом есть порт или река, FlightScnr умеет отображать и суда через AIS-поток aisstream.io.
Управление полностью адаптировано под палец:
- свайп вправо переключает радар на карту конкретного выбранного рейса;
- свайп влево циклично перебирает домашнюю точку и сохраненные избранные локации;
- щипок двумя пальцами приближает или отдаляет карту.


Карты, слои и аудиопереговоры
Интерфейс не ограничивается одной монохромной сеткой. В системе зашито десять подложек карт: от темных тем CARTO и OpenStreetMap до спутниковых снимков Esri и американских аэронавигационных карт VFR.

Поверх базовой карты можно наложить массу полезных слоев:
- осадки в реальном времени через LibreWXR или RainViewer;
- раскраску меток по эшелонам высоты;
- очаги лесных пожаров по данным NASA FIRMS и CAL FIRE;
- информацию о землетрясениях от службы USGS с голосовым оповещением;
- погоду, направление ветра и индекс качества воздуха прямо в полупрозрачном HUD-виджете.

Для полного погружения автор добавил интеграцию с LiveATC. Если подключить к «малинке» колонку по Bluetooth или USB, прибор начинает транслировать радиообмен диспетчеров выбранного аэропорта.

Морской трафик тоже проработан: судно отображается отдельной иконкой, а в деталях подгружается его фотография из Wikimedia Commons. Правда, сам автор честно предупреждает в документации, что бесплатный стрим aisstream.io периодически сбоит на стороне провайдера.

Технические нюансы установки
Вся настройка после первого запуска происходит через встроенный веб-портал. Подключаться по SSH каждый раз, чтобы вбить API-ключ погоды или сменить громкость, не придется. Через веб-интерфейс ставятся и обновления прошивки (OTA).
Скрипт автоустановки берет на себя несколько системных правок:
- Переключает графическую сессию Raspberry Pi OS с Wayland на X11, иначе жесты масштабирования на тачскрине работают некорректно.
- Прописывает оверлей ядра
gpio-fanдля автоматического включения кулера на GPIO 14 при нагреве процессора выше 60°C. - Отключает режим энергосбережения Wi-Fi, чтобы плата не теряла соединение в режиме киоска.
Развертывание на чистую Raspberry Pi OS (64-bit с рабочим столом) выглядит так:
git clone https://github.com/yashmulgaonkar/FlightScnr_Pi.git ~/FlightScnr_Pi
cd ~/FlightScnr_Pi
sudo bash install-pi.sh
После перезагрузки достаточно открыть в браузере адрес http://<hostname>.local с ноутбука или телефона и сконфигурировать ключи сервисов. Корпуса под печать на 3D-принтере выложены на MakerWorld в двух вариантах: с посадочным местом под динамик и без него.
Кому проект будет полезен
Если у вас завалялась Raspberry Pi 4 или 5 и хочется собрать красивый физический проект на выходных, это отличный кандидат. Код открыт под лицензией CC BY-NC-SA 4.0, активно дорабатывается и не требует сложной пайки — экран подключается стандартным DSI-шлейфом.
Репозиторий проекта доступен на GitHub.
