Pixhawk telemetrisi neden kalabalık sahada kopuyor
Telemetri tek başına sorunsuzken kalabalık sahada kopuyor. RSSI okuması dBm değildir; varsayılan NETID paylaşan radyolar frekans atlamada çakışabilir.
Telemetri evde, atölyede, masada sorunsuz çalışıyor. Sahaya çıkıp beş altı takım aynı anda uçurmaya başlayınca Mission Planner'daki bağlantı kopuyor, ekrandaki veri donuyor ya da link kaybı uyarısı geliyor. Bunun nedeni genelde drone ya da kablo değil, sahadaki ortamdır.
Bağlantı tek başına sorunsuzsa önce sahadaki diğer radyolara bak. Telemetri radyon kendi sinyal gücünü ve hata sayısını MAVLink akışına kendisi ekler; tahmin yürütmek yerine bu sayılara güven.
Aynı sahadaki radyolar birbirine nasıl karışır
SiK telemetri radyosu tek bir kanalda durmaz, kanaldan kanala atlar. Atlama sırasını radyonun ağ numarası belirler ve fabrikadan çıkan her radyoda bu numara aynıdır.
Aynı sahada uçan iki takım da numarayı değiştirmemişse iki çift radyo birebir aynı atlama sırasını üretir ve düzenli aralıklarla aynı kanalda çakışır. Şekilde iki takımın sırasının nasıl üst üste bindiğine, numara değişince nasıl ayrıldığına bak.
Atlama sırasını NETID belirler: aynı numara, aynı sıra
Bu çakışmayı kablo ya da anten arızası sanma. Numarayı sahaya girmeden kendine göre ayarla, çakışma biter.
Ağ numarası atlama sırasını nasıl belirler
Bu numaranın adı NETID ve fabrika varsayılanı NETID=25'tir. SiK radyo firmware kaynağında (ArduPilot/SiK deposu, Firmware/radio/freq_hopping.c) shuffleRand() fonksiyonu frekans atlama sırasını doğrudan NETID parametresiyle tohumluyor.
Yani NETID'i değiştirmeyen her takım aynı sırayla atlar. Sahaya girmeden önce takımına özel bir NETID seç.
Örnek: Sürü yarışmasında kendi iki aracını da aynı yer istasyonundan izliyorsan ve iki telemetri çifti de fabrikadan çıktığı gibi NETID 25'te kaldıysa, rakip takımı beklemene gerek yok; kendi iki çiftin şekildeki soldaki panel gibi aynı sırayla atlar ve birbirini bozar. Her araca ayrı bir NETID ver, yanındaki takımların kullandığı numaralardan da uzak dur.
Sinyal sayısını doğru oku
Mission Planner'ın gösterdiği ham RSSI ve REMRSSI değerleri 0-255 arasında bir sayıdır, dBm değildir. Resmî dönüşüm formülü: sinyal(dBm) = (RSSI_ham / 1.9) − 127.
Formülle birkaç tanıdık değerin karşılığı:
| Ham değer | Sinyal (dBm) | Not |
|---|---|---|
| 0 | −127 | aralığın alt ucu |
| 190 | yaklaşık −27 | resmî 1 metre testinin beklediği alt sınır |
| 255 | yaklaşık +7,2 | aralığın üst ucu |
Resmî "1 metre testi" bu ham değerin 190'ın üzerinde olmasını bekler. Sahadaki gerçek okumanı aynı formülle kendin çevirip referansla karşılaştır; tek bir sabit eşiğe göre karar verme.
Kendi ölçümünü nasıl alırsın
Radyo kendi durumunu akışa RADIO_STATUS mesajıyla ekler: rssi, remrssi, rxerrors ve fixed alanları. Aşağıdaki kod bağlı olduğun telemetri hattından bu mesajı okur ve RSSI/REMRSSI değerlerini dBm'e çevirir. PORT satırını kendi seri portuna ya da UDP adresine göre değiştir.
from pymavlink import mavutil
# Kendi telemetri bağlantına göre değiştir: '/dev/ttyUSB0', 'COM5' ya da 'udp:127.0.0.1:14550'
PORT = "udp:127.0.0.1:15552"
BAUD = 57600
m = mavutil.mavlink_connection(PORT, baud=BAUD)
m.wait_heartbeat(timeout=15)
print("baglanti kuruldu, sysid", m.target_system)
msg = m.recv_match(type="RADIO_STATUS", blocking=True, timeout=10)
if msg is None:
print("RADIO_STATUS gelmedi: kablo, baud ya da MAVLink parametresine bak")
else:
yerel = (msg.rssi / 1.9) - 127
uzak = (msg.remrssi / 1.9) - 127
print(f"yerel={yerel:.1f}dBm uzak={uzak:.1f}dBm rxerrors={msg.rxerrors} fixed={msg.fixed}")Kod çalışınca şuna benzer iki satır yazar. Buradaki sayılar örnektir; kendi radyonda çalıştırdığında göreceğin sayılar farklı olacak.
baglanti kuruldu, sysid 1
yerel=-23.8dBm uzak=-68.1dBm rxerrors=310 fixed=41Hata Mesajları
Yukarıdaki kod 10 saniye içinde RADIO_STATUS mesajı alamazsa "RADIO_STATUS gelmedi: kablo, baud ya da MAVLink parametresine bak" satırını yazar. Mesajın söylediği sırayla kabloya, baud hızına ve MAVLink parametresine bak.
Konunun devamı kursta
NETID seçimi, frekans atlama çakışması ve saha vakalarının tamamı İHA Haberleşme Teknolojileri eğitiminde yeni bir derste.
Bu yazı işinize yaradı mı?
Bu konuyu baştan sona öğrenin
Sezon: altı eğitimin hepsi 9 ay, ayda ₺790. Lise ve üniversite öğrencisine ayda ₺390, üye kodunuzla ilk ay ₺351. İstediğiniz ay bırakırsınız. Sezon'a başlayın · Öğrenciyim