Skip to content

Poyraxx/Asteria_Teknofest_Yer_istasyonu

Repository files navigation

Asteria HYİ

Bu script Teknofest Roket yarışması A1 kategorisi finalisti ve Örnek Takım seçilen Asteria Takımının kullandığı Hyzi İletişim Yazılımıdır.

Yazılım PyQt5 tabanlı bir yer istasyonu uygulamasıdır. Roket, görev yükü ve verici hatları üzerinden seri haberleşme kurar; telemetri verilerini arayüzde, grafikte ve harita üzerinde canlı olarak gösterir; ayrıca yarışma formatına uygun veri paketi üretip gönderir.

UI Öngösterim

Genel Bakış

Bu proje özellikle Teknofest roket yer istasyonu senaryosu için hazırlanmıştır. Uygulama; roket telemetrisi, görev yükü telemetrisi, takım ID yönetimi, paket oluşturma, veri kaydı ve harita takibi gibi işlevleri tek pencerede toplar.

Öne Çıkan Özellikler

  • Roket, görev yükü ve verici için ayrı seri port seçimi
  • Canlı telemetri verisi gösterimi
  • İrtifa verisinin grafik üzerinde izlenmesi
  • İnternetli ve çevrimdışı çalışma modu
  • Folium tabanlı etkileşimli harita
  • Roket, görev yükü ve bilgisayar konumunu aynı anda gösterebilme
  • Haritada kullanıcı pan/zoom görünümünü koruma
  • Marker'a çift tıklayarak hedefe kilitlenme ve tekrar çift tıklayarak kilidi kapatma
  • Harita üzerinde takip kilidi bildirimleri
  • Başlangıç ve güncel konum arasında mesafe hesabı
  • 78 baytlık yarışma paketi oluşturma ve gönderme
  • Gönderilen paketler için zaman damgalı log kaydı
  • Takım ID doğrulaması ve bağlantı durumu takibi

Kullanılan Teknolojiler

  • Python
  • PyQt5
  • pyserial
  • folium
  • pyqtgraph
  • PyQtWebEngine

Proje Yapısı

  • main.py: Ana uygulama akışı, seri haberleşme, harita üretimi, paketleme ve mod yönetimi
  • yeristasyonu.py: Ana pencere arayüzü, web harita görünümü ve istemci tarafı harita etkileşimleri
  • yeristasyonu.ui: Qt Designer ana pencere tasarımı
  • bağlantı_penceresi.py: Port ayar penceresi arayüzü
  • bağlantı_penceresi.ui: Port ayar penceresi tasarımı
  • bağlantı_penceresi_fonksiyon.py: Port seçimi, baud ayarı ve onay akışı
  • data.py: Paket ve yardımcı veri işlemleri
  • yer_istasyonu_arduino_test_kodu.ino: Test amaçlı Arduino örnek kodu
  • requirements.txt: Gerekli Python paketleri

Beklenen Veri Formatı

Roket hattından gelen veriler virgülle ayrılmış metin olarak okunur. Beklenen temel sıra:

  • irtifa
  • gps_irtifa
  • enlem
  • boylam
  • ivme_x
  • ivme_y
  • ivme_z
  • gyro_x
  • gyro_y
  • gyro_z
  • aci

Görev yükü hattında beklenen temel sıra:

  • gps_irtifa
  • enlem
  • boylam

Kurulum

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

Çalıştırma

Varsayılan açılış modu çevrimdışıdır:

python main.py

İstersen başlangıç modunu komut satırından da seçebilirsin:

python main.py --online
python main.py --offline

Harita Modları

Çevrimdışı Mod

  • Harita yerine koordinat özeti gösterilir
  • İnternet gerekmez
  • Seri veri, grafik ve paketleme çalışmaya devam eder

İnternetli Mod

  • Folium tabanlı etkileşimli harita açılır
  • İlk açılışta mümkünse bilgisayarın sistem konumu merkez alınır
  • Roket, görev yükü ve bilgisayar konumu farklı marker'larla birlikte gösterilebilir
  • Kullanıcı haritayı elle taşıdığında görünüm korunur, veri yenilenince otomatik geri sarmaz
  • Bir marker'a çift tıklayarak o hedefe takip kilidi açılabilir
  • Aynı marker'a tekrar çift tıklayarak takip kilidi kapatılabilir

Kullanım Akışı

  1. Uygulamayı çalıştırın.
  2. İsterseniz menüden İnternetli Çalıştır veya Çevrimdışı Çalıştır modunu seçin.
  3. Port Ayarları penceresini açın.
  4. Roket, görev yükü ve verici portlarını seçip Tamam ile onaylayın.
  5. Bağlan seçeneği ile haberleşmeyi başlatın.
  6. Telemetri verilerini arayüz, grafik ve harita üzerinden takip edin.
  7. Haritada bir marker'a çift tıklayarak hedef takibini açıp kapatın.

Paket Yapısı

Uygulama dışarıya 78 baytlık bir yarışma paketi üretir. Paket içinde başlık bilgisi, takım ID, sayaç, uçuş verileri, durum bilgisi, checksum ve satır sonu baytları bulunur. Paketleme mantığı ağırlıklı olarak main.py ve data.py içinde yer alır.

Notlar

  • Uygulama özellikle Windows ortamında seri port kullanımına uygun şekilde hazırlanmıştır.
  • İnternetli modda ilk PC merkezleme için işletim sisteminde konum izni açık olmalıdır.
  • PyQtWebEngine bulunmuyorsa etkileşimli harita yerine özet görünüm gösterilir.
  • .ui dosyaları Qt Designer ile düzenlenip tekrar Python dosyasına dönüştürülebilir.
  • Proje saha donanımına ve veri akışına göre özelleştirilebilir.

Credits

Projeye uygun modüllerin belirlenmesi ve yenilikçi fikirlerin geliştirilmesi konusunda aşağıdaki geliştiricilerden ve projelerinden örnek alındı:

About

TEKNOFEST Roket Yarışması için geliştirilmiş ve Finallerde Finalist Asteria Takımı Tarafından kullanılmış gerçek zamanlı telemetri ve veri görselleştirme yer istasyonu yazılımı.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors