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.
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.
- 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
- Python
- PyQt5
- pyserial
- folium
- pyqtgraph
- PyQtWebEngine
main.py: Ana uygulama akışı, seri haberleşme, harita üretimi, paketleme ve mod yönetimiyeristasyonu.py: Ana pencere arayüzü, web harita görünümü ve istemci tarafı harita etkileşimleriyeristasyonu.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şlemleriyer_istasyonu_arduino_test_kodu.ino: Test amaçlı Arduino örnek kodurequirements.txt: Gerekli Python paketleri
Roket hattından gelen veriler virgülle ayrılmış metin olarak okunur. Beklenen temel sıra:
irtifagps_irtifaenlemboylamivme_xivme_yivme_zgyro_xgyro_ygyro_zaci
Görev yükü hattında beklenen temel sıra:
gps_irtifaenlemboylam
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtVarsayı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 yerine koordinat özeti gösterilir
- İnternet gerekmez
- Seri veri, grafik ve paketleme çalışmaya devam eder
- 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
- Uygulamayı çalıştırın.
- İsterseniz menüden
İnternetli ÇalıştırveyaÇevrimdışı Çalıştırmodunu seçin. Port Ayarlarıpenceresini açın.- Roket, görev yükü ve verici portlarını seçip
Tamamile onaylayın. Bağlanseçeneği ile haberleşmeyi başlatın.- Telemetri verilerini arayüz, grafik ve harita üzerinden takip edin.
- Haritada bir marker'a çift tıklayarak hedef takibini açıp kapatın.
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.
- 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.
PyQtWebEnginebulunmuyorsa etkileşimli harita yerine özet görünüm gösterilir..uidosyaları 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.
Projeye uygun modüllerin belirlenmesi ve yenilikçi fikirlerin geliştirilmesi konusunda aşağıdaki geliştiricilerden ve projelerinden örnek alındı: