Diversity mit Videoqualität statt RSSI (wie EagleEyes oder Oracle) - selber bauen?

Nabazul

Erfahrener Benutzer
Also mal eine kleines Update. Habe die platine jetzt ausführlich getestet soweit funktioniert auch alles. Ich werde heute abend mal einen neuen Thread aufmachen und das ganze ausführlicher vorstellen. Alle interresenten die sich bis jetzt bei mir gemeldet haben habe ich auf einer liste vermerkt.

@ Treeda meine Version hat eigentlcih nichts mehr mit dem EagleEyes zu tun. Das ist eher ein Duo5800 receiver mit Display und SkyRF Modulen welcher das Diversity von hier verwendet. Vorbestückte Platinen kann ich derzeit leider nicht anbieten. Das würde den preis bei einer so kleinen auflage auch sehr unattraktiv machen.
 

Rangarid

Erfahrener Benutzer
Naja der vergleicht nur RSSI, wir vergleichen die Videoqualität...Ist hilfreich bei Empfängern ohne RSSI oder für Leute, die nicht am Empfänger rumlöten möchten.
 

Nabazul

Erfahrener Benutzer
Ich habe bei meinen Tests festgestellt, dass eine reine auswertung des rssi signals nicht unbedingt das optimum ist. Gerade wenn man mal mit nem Empfänger durch die Gegend rennt und ständig die rssi stärken vergleicht (die Nachbarn haben vlt blöd geschaut) das selbst bei einem RSSI-Wert von quasi 0 teilweise noch ein gutes bild vorhanden ist und der andere Empfänger mit einem besserem rssi wert gar nichts mehr anzeigt.

Mit dem reinem videodiversity habe ich allerdings auch noch einige probleme wenn beide Empfänger ein gutes Bild haben switche der bei mir ständig hin und her. Habe mir schon einen neuen diversityalorithmus der nach dem Hystereseprinzip arbeitet überlegt muss ihn nur noch in die Software implementieren.
 

nils1982ks

Erfahrener Benutzer
Hallo,

Hysterese ist bei uns doch drin. Einfach die Intervalllänge vergrößern und die Empfindlichkeit (Umschaltschwelle) so wählen, dass er nicht ständig hin und her schaltet.

Viele Grüße
Nils
 

nils1982ks

Erfahrener Benutzer
Achso, wichtig ist ja auch eigentlich nur der Grundgedanke einen Integrator durch das Array zu realisieren, ein Füllintervall und ein mindestens ebenso langes Auswerteintervall zu nutzen. Die Empfindlichkeit ist dann über den Unterschied des jeweiligen Intervalls zum Sollwert definiert. Vielleicht hast du aber auch noch eine bessere Idee. Das haben wir schon so bei der Software für die aller erste HW Version gemacht.

Viele Grüße
Nils
 

Nabazul

Erfahrener Benutzer
meine idee wäre jetzt folgende:

Fixe Sensitivity (oder auf Füllzeit) von 200ms für die videosynchs

Umchaltfunktion:
Y=(RSSI1*A+Synch1*B)-(RSSI2*A+Synch2*B)

Wenn y eingestellten wert überschreitet Schalten wenn zu klein nicht schalten. Über die faktoren A und B kann dann eingestellt werden wie groß der einfluss von RSSI oder Synchzahl sein soll
 

nils1982ks

Erfahrener Benutzer
Willst du aber dann schon über viele solcher Intervalle mitteln für die Auswertung? Falls nicht fehlt es dir einfach an Information, denn in 200 ms erwartet man ja gerade mal 5 syncs, da fällt es schwer die Qualität zu beurteilen. Darum die Idee der Mittelung über viele 200 ms Intervalle, z.B. 5, dann hat man schon 25 syncs und kann die Abweichung besser beurteilen. Gibt es eigentlich einen Vorteil der Auswertung der RSSI Signale?

Ich hatte mir für unseren Aufbau überlegt die RSSI Eingänge für zwei separate Empfängern zu nutzen und damit die Ausrichtung einer Richtantenne zu steuern.
 

Nabazul

Erfahrener Benutzer
hmm stimmt 200ms ist dann etwas wenig würde es dann wohl eher auf 600 setzen. Diversity über beides hat halt den vorteil, dass wen ein kriterium versagen sollte das andere das wieder ausgleicht. Ich selber habe mit dem diversity über dem lm1881 noch nicht so viel erfahrungen und weiß daher nicht wie zuverlässig das funktioniert. Habe da voll auf eure vorarbeit aufgebaut. Werde übers we mal etwas damit rumspielen.
 

Nabazul

Erfahrener Benutzer
So ich habe heute mal viel rumgespielt hab habe folgende Beobachtung gemacht: Die syncs bei dem lm1881 gehen relativ schnell gegen 0 obwohl eigentlich ein noch zum fliegen taugliches Bild vorhanden ist. Das ist der Punkt wo dann der vergleich zum RSSI einspringt. Hier mal meine Aktuelle Auswertevariante:

Code:
int kfps = 10;
int krssi = 1;
int sensitivity = 50;

// Select Videosource Routine
void selectVideo()
{
  // Calculate Delta Switching
  deltaS = ((syncs[1] - syncs[0])*kfps) + ((analogRead(RSSI2) - analogRead(RSSI1))*krssi);

  //Check if we have to switch
  if (deltaS > sensitivity)
  {
    activeSource = 2;
  }
  else if (deltaS < (sensitivity*(-1)))
  {
    activeSource = 1;
  }
  // Switch source if new source needs to be selected
  if (source != activeSource)
  {
    if (activeSource == 1) {
      digitalWrite(EN, LOW);
      digitalWrite(IN, LOW);
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, LOW);
    }
    else 
    {
      digitalWrite(EN, LOW);
      digitalWrite(IN, HIGH);
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, HIGH);
    }
    
    // Buzzer Beep ?
    if (beeponswitch == 1)
    {
      digitalWrite(BUZZER, HIGH);
      delay(5);
      digitalWrite(BUZZER, LOW); 
    }
  }
  source = activeSource;
  clearSyncs();
}
 

scott09876

Einfach zu wenig Zeit
Hallo,
bin jetzt endlich mal dazu gekommen das Board zu testen. Alledings wird der Kanal nicht umgeschaltet. Das Poti zeigt keine Wirkung, die LED blinkt nur. Was kann ich am Mäuseklavier einstellen?

Grüße
Jürgen
 

nils1982ks

Erfahrener Benutzer
Hallo Jürgen,

welche Version der Software hast du denn installiert?
Bisher haben nicht alle Schalter des Mäuseklaviers eine Wirkung, in der letzten Version glaube ich waren zwei zum Aktivieren der Unterspannungswarnung bzw. eines akustischen Signalisieren, welcher Kanal verwendet wird vorgesehen. Das sollte aber im Code stehen. Wenn gar nichts will solltest du erstmal testen, ob beide Kanäle sauber durchgeschaltet bzw. gezählt werden, dazu muss man die serielle Ausgabe aktivieren und das Ausgangssignal mal mit einem Monitor betrachten.

Viele Grüße
Nils
 

Nabazul

Erfahrener Benutzer
ich habe auch schon über einen 4 fach receiver nachgedacht. allerdings dann eine variante wo man die dominator module reinstecken kann. so könnte man auch 2.4 ghz und 5.8 ghz module kombinieren und muss nicht immer zwei empfänger mitschleppen. Das ganze scheitert aber gerade an der nicht vorhandenen zeit. und man bräuchte auch noch einen guten 4fach switch.
 

kofferfisch

Erfahrener Benutzer
Die Idee kam einfach auf, weil

- das Board so gut funktioniert
- aus Freude am Diversity-Switchen:)
- ich bald ein drittes Empfängermodul (Nexwave) testen möchte
- Spaß an der Technik
- der Tracker gespart werden könnte

Vielleicht ergibt sich mit der Zeit ja was...;)
 

Rangarid

Erfahrener Benutzer
Aus Zeitmangel gebe ich eine meiner Diversityplatinen ab. Komplett bestückt und funktional. Wer sie haben möchte kann sich gerne bei mir melden.

 
Zuletzt bearbeitet:

QuadMax

Erfahrener Benutzer
Bin grade am Bau meiner zweiten Platine.
Hardwaretechnisch ist alles an ihr in Ordnung, allerdings funktioniert diese nicht.
Habe den Bootloader geflasht und Arduino hat "job done" ausgegeben.
Da die erste Platine schon ein wenig her ist, hatte ich leider das Programm nicht mehr und habe es neu zusammengebastelt.
Hier glaube hier liegt das Problem, auch wenn Arduino beim Überprüfen keinen Fehler ausgiebt.

Ich hoffe ihr könnt mir helfen,
QuadMax

Edit: Problem gelöst
 

Anhänge

Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten