چرا FPV و LoRa همزمان کار میکنند؟
FPV آنالوگ در باند ۵.۸GHz کار میکند. LoRa در ۴۳۳MHz. این دو باند ۱۳ برابر در فرکانس از هم فاصله دارند — هیچ تداخلی نیست. یک UGV میتواند همزمان: تصویر زنده از ۵.۸GHz بفرستد و دستور کنترل از ۴۳۳MHz بگیرد — دقیقاً مثل هواپیماهای FPV حرفهای.
نکته مهم: آنتن LoRa (سیم بلند ۱۶cm) را از VTX دور نگه دار (حداقل ۵cm). آنتنهای Cloverleaf FPV اصلاً با LoRa تداخل ندارند.
🛠️ کارت پروژه
| سیستم | FPV 5.8G + LoRa 433MHz روی یک UGV |
| برد مؤثر | ~۵۰۰m تصویر / ~۲km کنترل |
معماری سیستم یکپارچه
| Link | باند | جهت | محتوا |
|---|---|---|---|
| FPV Video | 5.8GHz | UGV → اپراتور | تصویر زنده + OSD |
| LoRa Uplink | 433MHz | اپراتور → UGV | دستور throttle/steering |
| LoRa Downlink | 433MHz | UGV → اپراتور | باتری، GPS، temp |
کد یکپارچه UGV (گیرنده LoRa + ارسال تلهمتری)
#include <SPI.h>
#include <LoRa.h>
#include <TinyGPS++.h>
int rcThrottle=0, rcSteering=0;
unsigned long lastCmd=0, lastTelem=0;
void loop(){
// دریافت دستور
int pkt = LoRa.parsePacket();
if(pkt >= 4){
int8_t thr = (int8_t)LoRa.read();
int8_t str = (int8_t)LoRa.read();
rcThrottle = thr; rcSteering = str;
lastCmd = millis();
}
// Safety: اگر ۵۰۰ms دستور نرسید توقف
if(millis()-lastCmd > 500){
rcThrottle=0; rcSteering=0;
}
applyControl(rcThrottle, rcSteering);
// ارسال تلهمتری هر ۲ ثانیه
if(millis()-lastTelem > 2000){
lastTelem = millis();
LoRa.beginPacket();
LoRa.print("T:"); LoRa.print(rcThrottle);
LoRa.print(",V:"); LoRa.print(readBattery(),1);
LoRa.print(",L:"); LoRa.print(gps.location.lat(),5);
LoRa.print(",N:"); LoRa.print(gps.location.lng(),5);
LoRa.endPacket();
}
}
float readBattery(){
return analogRead(A7) * (12.6 / 1023.0); // voltage divider
}