INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Antennen Tracker für FPV
25.07.2015, 08:40
Beitrag #1
Antennen Tracker für FPV
Hallo zusammen,
ich bin absoluter Arduino-Neuling und habe derzeit ein paar Probleme bei der Verwirklichung meines ersten Projektes - einen Antennen Tracker.
Der Tracker soll das Videosignal beim FPV Fliegen empfangen, deshalb soll die Antenne dem Flugzeug nachgeführt werden.

Vorgestellt habe ich mir folgende Funktionsweise:

Es gibt 2 Antennen welche jeweils auf einem separaten Servo befestigt sind. Ein Servo schwenkt die gesamte Zeit über den maximal möglichen Winkel (derzeit 180°, aber ich werde versuchen zwei 360° Servos zu bekommen).
Die Antenne auf dem „Scanner_Servo“ empfängt je nach Ausrichtung das Videosignal und je nach Empfangsqualität wird ein mehr oder weniger hohes RSSI Signal ausgegeben (vermutlich als PWM Signal, muss ich noch kontrollieren).

Bis hierher funktioniert das Programm und meine aufgebaute Schaltung auch gut. Auch die kleinen Spielereien mit dem Display funktionieren gut.

Jetzt soll der Winkel mit dem dazugehörigen Signal in einem Array gespeichert werden. Wenn die Antenne das Ende (180°) erreicht hat, soll das Array ausgewertet werden. Der Winkel, bei dem die höchste RSSI Spannung gemessen wurde, soll an den 2. Servo (servo_antenne) übergeben werden, damit sich die Antenne dorthin ausrichtet.

Auf dem Rückweg soll das Array „geleert“ werden, so dass es neue Daten sammeln kann. Ist der Servo wieder in der 0°-Stellung, wird wieder der Winkel mit dem max. RSSI Signal an den 2. Servo übergeben usw.

Ein Schalter soll die Bewegung beider Servos stoppen und sie in die Mittelposition fahren lassen.

Würde mich freuen, wenn ihr mir beim Erstellen des Programms helfen könntet.

Danke Dirk

Anbei mein bisheriger Code:
-------------------------------------------------

#include <Servo.h> // include the servo library code
#include <LiquidCrystal.h> // include the Display library code

Servo servo_scanner; // Servo "Scanner"
Servo servo_antenne; // Servo "Antenne"

int Daten [400][2]; // Array für Winkel und RSSI Signal

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int timer1 = 30; // Timer 1 setzen
int timer2 = 50; // Timer 2 setzen
int pos1 = 0;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(8, INPUT);
digitalWrite(8, HIGH); // PullUp Widerstand aktivieren
pinMode(13, OUTPUT); // LED aus

lcd.begin(16, 2); // LCD Setup 16 Zeichen in 2 Reihen
lcd.print("Antennen Tracker"); // schreibe Kommentar in die 1.Zeile

servo_scanner.attach(9); //Servo 1 an PIN 9
servo_antenne.attach(6); //Servo 1 an PIN 6

digitalWrite(13, LOW);
}

void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(8) == HIGH)
{
digitalWrite(13, HIGH);

for (pos1 = 0; pos1 <= 180; pos1 += 1) // 0-180° immer plus 1
{
servo_scanner.write(pos1);
Serial.println(pos1); // Ausgabe über seriellen Monitor
lcd.setCursor(0, 1); // Curser auf 1 Stelle in Zeile 2
lcd.print(pos1);
lcd.print(" ");
lcd.setCursor(4, 1);
lcd.print("Grad");
delay(timer1);
}
for (pos1 = 180; pos1 >= 0; pos1 -= 1) // 180-0° immer minus 1
{
servo_scanner.write(pos1);
Serial.println(pos1); // Ausgabe über seriellen Monitor
lcd.setCursor(0, 1); // Curser auf 1 Stelle in Zeile 2
lcd.print(pos1);
lcd.print(" ");
lcd.setCursor(4, 1);
lcd.print("Grad");
delay(timer1);
}
}
else
{
digitalWrite(13, LOW);
for (pos1 = pos1; pos1 <= 90; pos1 += 1) // 0-90° immer plus 1
{
servo_scanner.write(pos1);
Serial.println(pos1); // Ausgabe über seriellen Monitor
lcd.setCursor(0, 1); // Curser auf 1 Stelle in Zeile 2
lcd.print(pos1);
lcd.print(" ");
lcd.setCursor(4, 1);
lcd.print("Grad");
servo_antenne.write(90); // Servo Antenne auf Mittelstllung
delay(timer2);
}
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 09:28
Beitrag #2
RE: Antennen Tracker für FPV
Ich glaube ich habe das noch nicht ganz verstanden. Also ein Servo mit einer Antenne bewegt sich ständig hin und her und misst die Feldstärke. Die Servoposition mit der größten Feldstärke wird dann and en zweiten Servo übergeben der sich danach ausrichtet. Ist das so korrekt?

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 11:53
Beitrag #3
RE: Antennen Tracker für FPV
Jein, an den 2. Servo wird nur die Position (also der Winkel) bei der max. Feldstärke übergeben.
Der 2. Servo hat selbst auch eine Antenne drauf, über die das Videosignal empfangen wird.
Der 1. Servo empfängt kein Videosignal sondern ermittelt nur den Winkel, wo das stärkste Signal zu Messen ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 13:21
Beitrag #4
RE: Antennen Tracker für FPV
Dann habe ich es ja doch richtig verstanden Big Grin

Wieso willst du den Wert speichern wenn der Servo am Ende angekommen ist, den Wert weißt du ja schon. Bringt das noch was wenn du eh auf einen 360° Servo umbauen willst?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 14:53
Beitrag #5
RE: Antennen Tracker für FPV
Evtl. habe ich mich nicht klar ausgedrückt oder es liegt daran, dass ich vom Arduino noch gar keine Ahnung habe. Ich erkläre es mal an einem Beispiel:
Das Flugzeug befindet sich in der Luft und ändert damit natürlich auch seine Position.
Servo 1 dreht von 0 – 180° (oder 0-360°) und misst dabei die Feldstärke. Winkel und Feldstärke werden als Datenpaar gespeichert (vermutlich benutzt man hierfür ein zweidimensionales Array). Bei 180° angekommen werden die abgespeicherten Datenpaar ausgewertet. Als Beispiel ist der max. Wert bei 110°.

Servo 2 dreht sich auf 110°.

Bevor Servo 1 zurückdreht und neue Daten sammelt, müsste man vermutlich den Speicher löschen.
Servo 1 dreht zurück von 180-0° (oder 360-0°) und sammelt ebenfalls wieder Datenpaare. Bei 0° angekommen werden die Datenpaar ausgewertet und der Winkel mit dem max. Wert (jetzt z.B. 90°) wird wieder an Servo 2 übergeben.

Und wieder von vorne…..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 16:09 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2015 16:22 von Scherheinz.)
Beitrag #6
RE: Antennen Tracker für FPV
Ja stimmt, der letzte Satz von mir war Müll.

Also ich hab von 2 dimensionalen Arrays keine Ahnung vorallem nicht wie man innherhalb davon vergleicht.
Ich hätte das bei mir in etwas so gemacht, ist jetzt eher symbolisch gemeint. Das Ganze kann man auch bestimmt in eine Funktion zusammenpacken.

Code:
int temp= 0; // Empfangsstärke
int ausrichtung = 0; // Servostellung

servo1.write(20);
empfang = analogRead(0);
   if (empfang > temp){
   temp = empfang;
   ausrichtung = 20;
   }
  
servo1.write(40);
empfang = analogRead(0);
   if (empfang > temp){
   temp = empfang;
   ausrichtung = 40;
   }
  
servo1.write(60);
empfang = analogRead(0);
   if (empfang > temp){
   temp = empfang;
   ausrichtung = 60;
   }
  
servo1.write(80);
empfang = analogRead(0);
   if (empfang > temp){
   temp = empfang;
   ausrichtung = 80;
   }

//usw.


servo2.write(ausrichtung);
ausrichtung = 0;
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.07.2015, 07:33
Beitrag #7
RE: Antennen Tracker für FPV
Hallo Scherheinz,
ich habe deinen Vorschlag in meine "for-Schleife" eingebaut und gestern die ersten Tests durchgeführt. Dank deines kleinen Denkanstoßes bin ich auf dem richten Weg.

RSSI Antennentracker

Nochmal Dank,
Gruß Dirk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.07.2015, 11:31
Beitrag #8
RE: Antennen Tracker für FPV
(27.07.2015 07:33)d.j. schrieb:  Hallo Scherheinz,
ich habe deinen Vorschlag in meine "for-Schleife" eingebaut und gestern die ersten Tests durchgeführt. Dank deines kleinen Denkanstoßes bin ich auf dem richten Weg.

RSSI Antennentracker

Nochmal Dank,
Gruß Dirk

Ja das macht auch mehr Sinn als die einzelnen Servo Werte anzugeben. Freut mich das ich helfen konnte. Was hast du denn für einen RSSI Empfänger?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino 1 Achsiger Solar Tracker Julian1990 1 1.096 11.05.2016 21:11
Letzter Beitrag: ardu_arne
Question Motorrad Alarmanlage mit GPS-Tracker copperhead 1 1.126 28.03.2016 22:07
Letzter Beitrag: Scheams
Big Grin Arduino mehr Personen GPS/WIFI/Funk Tracker Julian1990 1 1.621 30.07.2015 10:23
Letzter Beitrag: Hilgi

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste