Antenna Tracker چیست؟ (مبتدی)
در پروازهای دوربرد UAV، معمولاً از آنتن جهتدار (مثل Yagi یا Patch) برای دریافت بهتر سیگنال استفاده میشود. مشکل: باید آنتن را دستی به سمت پهپاد نگه دارید. یک Antenna Tracker این کار را خودکار میکند — موقعیت GPS پهپاد را دریافت میکند و سروهای Pan (چپ/راست) و Tilt (بالا/پایین) را تنظیم میکند.
ESP32 موقعیت پهپاد را از تلهمتری MAVLink دریافت میکند، سپس Azimuth (زاویه افقی) و Elevation (زاویه عمودی) را از موقعیت خود نسبت به پهپاد محاسبه میکند و سروها را میچرخاند.
محصولی که میسازید
یک Antenna Tracker Pan-Tilt خودکار با دقت ±۵ درجه.
- هزینه: ۵۰۰ هزار تومان (سرو+ESP32+Pan-Tilt)
- دقت: ±۵ درجه Azimuth
- پروتکل: MAVLink روی Serial
کد ESP32 — Antenna Tracker
#include <ESP32Servo.h>
#include <TinyGPS++.h>
#include <HardwareSerial.h>
Servo pan, tilt;
HardwareSerial mavSerial(1); // تلهمتری MAVLink
TinyGPSPlus gpsHome; // GPS زمین (موقعیت tracker)
// موقعیت خانه (tracker):
double homeLat = 35.7448; // تهران
double homeLon = 51.3753;
void setup() {
pan.attach(13); // سرو Pan (Azimuth)
tilt.attach(14); // سرو Tilt (Elevation)
pan.write(90); tilt.write(45); // مقدار اولیه
Serial.begin(115200);
mavSerial.begin(57600, SERIAL_8N1, 16, 17); // UART2
}
double calcAzimuth(double lat1,double lon1,double lat2,double lon2) {
double dLon = (lon2-lon1)*PI/180;
lat1*=PI/180; lat2*=PI/180;
double y = sin(dLon)*cos(lat2);
double x = cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(dLon);
return fmod(atan2(y,x)*180/PI + 360, 360);
}
double calcElevation(double dist, double alt) {
return atan2(alt, dist*1000)*180/PI; // alt متر، dist km
}
void loop() {
// دریافت GPS هواپیما از MAVLink
// (سادهشده — در پروژه واقعی MAVLink parse کنید)
double uavLat = 35.7500; // از تلهمتری
double uavLon = 51.3800;
double uavAlt = 100; // متر
double dist = TinyGPSPlus::distanceBetween(homeLat,homeLon,uavLat,uavLon)/1000.0;
double az = calcAzimuth(homeLat,homeLon,uavLat,uavLon);
double el = calcElevation(dist, uavAlt);
// نگاشت به سرو:
int panAngle = map(az, 0, 360, 0, 180); // محدود به ۱۸۰° سرو
int tiltAngle = constrain(map(el, 0, 90, 45, 135), 0, 180);
pan.write(panAngle);
tilt.write(tiltAngle);
delay(200);
}
چکلیست کالیبراسیون
| بررسی | روش |
|---|---|
| موقعیت Home دقیق است؟ | GPS خانه را در کد وارد کنید |
| سرو Pan در ۹۰° به شمال اشاره دارد؟ | کالیبراسیون مکانیکی |
| وقتی پهپاد در ۱۰۰° شرق → Pan به ۱۰۰°؟ | ☐ |
| Tilt در ۴۵° افق افقی نگه میدارد؟ | ☐ |