Skip to content

bushushow/ground-station

Repository files navigation

STERIA Yer İstasyonu

2026 Model Uydu Yarışması için geliştirilmiş masaüstü yer istasyonu uygulaması.
Takım: STERIA (No: 9999) · Versiyon: 2.0.0


Özellikler

  • LoRa alıcısı üzerinden gerçek zamanlı telemetri alma (seri port)
  • Basınç, irtifa, iniş hızı, sıcaklık ve batarya voltajı grafikleri
  • Leaflet.js tabanlı interaktif GPS haritası
  • Gerçek zamanlı 3D uydu attitude (pitch/roll/yaw) görselleştirmesi
  • Canlı kamera görüntüsü (USB / RTSP / UDP)
  • ARAS (Otomatik Kurtarma ve Alarm Sistemi) izleme
  • Komut gönderme: taşıyıcı ayırma, acil paraşüt, station keeping
  • Bonus-2 S2D-IOT: RGB LED telekomut (format: 2R0G1B)
  • Bonus-3 Z.İ.R.H koruma modu
  • Telemetri verilerini CSV dosyasına kaydetme
  • Donanım olmadan test için uçuş simülatörü

Gereksinimler

  • Python 3.10+
  • Bağımlılıklar requirements.txt içinde

Kurulum

# 1. Repoyu klonla
git clone <repo-url>
cd ground-station

# 2. Sanal ortam oluştur ve aktive et
python -m venv venv

# Windows
venv\Scripts\activate

# macOS / Linux
source venv/bin/activate

# 3. Bağımlılıkları kur
pip install -r requirements.txt

Çalıştırma

python main.py

Donanım bağlı değilse "Simülasyon" butonuyla test edebilirsin.


Proje Yapısı

ground-station/
├── main.py                  # Giriş noktası
├── config.py                # Global ayarlar (port, baud, takım no…)
├── requirements.txt         # Python bağımlılıkları
├── core/
│   ├── models.py            # TelemetryPacket veri modeli
│   ├── telemetry_parser.py  # CSV string → TelemetryPacket + ARAS hesaplama
│   ├── serial_reader.py     # Seri port okuyucu (gerçek + simülatör)
│   ├── command_sender.py    # Uydua komut gönderme
│   └── simulator.py         # Uçuş simülatörü (test)
├── ui/
│   ├── theme.py             # Renk paleti ve global QSS
│   ├── main_window.py       # Ana pencere ve sinyal/slot yönetimi
│   └── widgets/
│       ├── info_panel.py    # Sol panel: bağlantı, ARAS, komutlar, S2D-IOT
│       ├── charts_panel.py  # 4 grafik (basınç, hız, irtifa, sıcaklık)
│       ├── chart_widget.py  # Tekrar kullanılabilir grafik bileşeni
│       ├── map_widget.py    # Leaflet.js GPS haritası
│       ├── attitude_3d.py   # 3D uydu görselleştirme
│       ├── battery_panel.py # Batarya voltajı grafiği
│       ├── camera_widget.py # Canlı kamera görüntüsü
│       └── telemetry_table.py # Paket geçmişi tablosu
└── telemetry_logs/          # CSV kayıt çıktıları (.gitignore'd)

Telemetri Formatı

Şartname §2.2'ye göre virgülle ayrılmış 17 alan:

<takım_no>,<paket_no>,<uydu_durumu>,<hata_kodu>,<gönderme_zamanı>,
<basinc>,<irtifa>,<iniş_hızı>,<sicaklik>,<pil_gerilimi>,
<gps_enlemi>,<gps_boylamı>,<gps_irtifası>,<pitch>,<roll>,<yaw>,
<iot_komutu>

Konfigürasyon

config.py içindeki değerleri değiştirerek takım bilgisi ve varsayılan port ayarlanabilir:

TEAM_NAME = "STERIA"
TEAM_NO   = 9999
DEFAULT_PORT     = "COM3"
DEFAULT_BAUDRATE = 115200

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages