2026 Model Uydu Yarışması için geliştirilmiş masaüstü yer istasyonu uygulaması.
Takım: STERIA (No: 9999) · Versiyon: 2.0.0
- 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ü
- Python 3.10+
- Bağımlılıklar
requirements.txtiçinde
# 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.txtpython main.pyDonanım bağlı değilse "Simülasyon" butonuyla test edebilirsin.
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)
Ş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>
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