2x GELÖST: ACT DSL-8 RSSI an EZOSD

Status
Nicht offen für weitere Antworten.

Steffen Graap

Erfahrener Benutzer
#21
Hey moscito

Wenn du mit C Anfangen/weitermachen möchtest, dann lege ich die als Entwicklungsumgebung eclipse + WinAVR ans Herz. Das ganze ist kostenlos, und dadurch das die eclipse Platform ein OpenSource-Projekt ist gibt es dafür noch unendlich viele Adons. Aber selbst die eclipse allein stellt schon so manchen kaufbaren C-Compiler in den Schatten.

Zwecks Checksummenprüfung:
In meinen Projekten lasse ich die ankommenden COM-Daten per TX-Interrupt in einen Puffer legen. Aus diesem Puffer wird bei jedem Hauptschleifendurchlauf alle Daten einer Sequenz (solange vorhanden)entnommen, auf Startbyte, Datenanzahl und Cheksumme geprüft, und wenn alles I.O. ist die Daten verarbeitet, und über Variablen den weiteren Programmfunktionen zur Verfügung gestellt. Somit brauchst du dich nicht mehr mit der Com-Funktionalität herumschlagen, und die Daten stehen überall zur verfügung. Auch lässt sich so einen TimeOut-Überwachung einbauen, die nach TimeOut die Variablen löscht.

Übrigens habe ich mal ein keines C-Projekt für den Tiny 45 gemacht, um einen Vergleich zwischen Floatmultiplikation und Ganzzahlmultiplikation zu erhalten. Die Übernahme aus USIDR (universal serial Data Register) musste ich machen, da der Compiler bei einer festen Zahl die Berechnung sonst im Precompiler erledigt. Hier der C-Code:

#include <avr/io.h>

float Data_Out = 0;
float Data_In = 0;
//unsigned int Data_Out = 0;
//unsigned int Data_In = 0;
#define FAKTOR 3

int main (void)
{
Data_In = USIDR;

Data_Out = Data_In * FAKTOR;

return 0;
}

Ich habe jeweils mit float- oder int-Variablen compiliert, wobei die jeweils anderen Rasukommentiert ( // ) wurden. Dann hab ich in AVR-Studio die Ausführungszeit gemessen, dabei ist folgendes herrausgekommen:
Variablentyp---Zeit---------Flashgröße--RAMgröße
float----------3065 Takte--2070 Byte---272 Byte
INT-----------88 Takte----136 Byte-----4 Byte

Du siehst die Unterschiede sind gewaltig.

Gruß Steffen
 

Carlson

Erfahrener Benutzer
#22
Hallo Moscito,

ich hoffe, Dein Projekt geht weiterhin mit so großen Schritten voran wie bisher. Ich bin nach den ersten Testflügen an eine Herausforderung gestoßen und würde gerne wissen, ob sie Dir auch schon aufgefallen ist und wie Du damit umgehst:

Ich lese das RSSI Signal vom Empfänger aus und gebe linear weiter an das OSD (vereinfacht ausgedrückt). Sobald ich jetzt in einer Entfernung von mehr als 200 Metern fliege, zeigt das OSD nur noch Werte zwischen ca. 0 und 20 % an obwohl ich mich noch lange nicht am Rand der Reichweite befinde. Ich habe bei ACT mal gelesen, daß die Ausgabe des RSSI Signals bewusst restriktiv dargestellt wird, da man Auffälligkeiten dadurch angeblich besser erkennen kann. Mir ist das in der Vergangenheit auch an den internen LOGs der ACT Empfänger aufgefallen: Fast der gesamte Flug wurde dort meist im unteren Fünftel der Empfangsstärke aufgezeichnet.

Ist Dir das auch schon aufgefallen?

Mein Lösungsansatz ist nun, das eingelesene RSSI Signal nicht mehr linear weiterzugeben sondern in eine Exponentialkurve umzurechnen damit der Bereicht der geringeren Signalstärke mit einer größeren Skalierung dargestellt wird (ähnlich der Expo Funktion im RC Sender: Kleine Knüppelbewegung = großer Ausschlag).


Grüße,

Georg
 

moscito

Neuer Benutzer
#23
@ Steffen,

sorry für die späte Rückmeldung. Musste mal eben kurz meinen Arbeitgeber wechseln :D
Ich hatte mir vor geraumer Zeit mal Eclipse für ein Amateur Java Script Projekt (Ethernet Steckdose mit Webserver) angekuckt. Das Teil war mir zu gewaltig. Bin dann auf Visual Cafe umgeschwenkt.
Werde mir jetzt mal WinAVR reinziehen und am besten noch nen AVR C-Kurs voraus... Mehr dann in ein paar Monaten :S:

Das mit dem Tx Interrupt hatte ich mir erst auch überlegt - haperte dann aber an der mangelnden Hardware Uart des Tiny 45.

Die Unterschiede zwischen float und int sind ja echt gewaltig - da muss man sich echt mal einen Gedanke um die Wichtigkeit der Nachkommastellen machen.


@Georg:

das ist ein schwieriges Thema.
Zum Einen zeigt der DSL8 immer nur maximal 63% Signallevel an zum Anderen ist das Verhalten des Signals nicht ganz einfach zu identifizieren.
Mein Eindruck bisher war, daß der Signallevel des ACT von 0 auf 161 immer gleich springt: 0-8-16-32-64-128-161 (oder so ähnlich).Auf jeden Fall stufenweise und stark zeitverzögert.
Weiterhin scheint noch ein Bug im EZOsd zu sein, der große Sprünge nicht verarbeiten kann (siehe extra Thread hier im Unterforum).

Und jetzt mal zu meinen Werten:
Habe bisher nur einige wenige Flüge mit OSD aufgezeichnet - alle mit dem EzOSD/Analog Konverter in der Urversion. Dieser setzt die 161 in 100% um.
Ich habe während des Fluges eigentlich nur zwei Situationen:
1.) 100% RSSI
2.) Voll abkackendes Signal - bis runter auf 0. Eigentlich immer in der Wende in der die Antenne die kleinste Fläche abbildet. Das Signal fängt sich aber immer gleich wieder.

Selbst bei einer Höhe von 450m und 400m Entfernung ist der Grundlevel nicht unter 100% gefallen.

Mein letzter Crash ließ sich aber astrein auf den niedrigen RSSI Level zurückführen, wie die Videoauswertung später zeigte. Ursache war ein schlechter geografischer Aufbau der entscheidenden Komponenten.

Ich hoffe bald eine neue Testreihe mit dem neuen Konverter machen zu können - zuerst muss aber erst mal der Job in trockene Tücher gebracht werden ...


Cheers

Moscito
 

Steffen Graap

Erfahrener Benutzer
#24
Hey Moscito

Ja das eclipse ist schon gewaltig. Mit dem PlugIn für den Win Avr geht es aber schon, man muss ja nicht die ganze Funktionalität benutzen.

Zum Thema AVR C-Kurs habe ich noch zwei Links. Der eine ist ein reines C-Lexikon im allgemeinen als Onlinebook. Der andere ist ein AVR-GCC-Tutorial.

http://openbook.galileocomputing.de/c_von_a_bis_z/
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Gruß Steffen
 

Carlson

Erfahrener Benutzer
#25
Du meinst, das RSSI Signal aus Deinem Empfänger kennt nur diese 7 Stufen (0-8-16-32-64-128-161)? Das kann ich nicht bestätigen. Ich lese das Signal in C mit dem Befehl „pulseIn“ aus und bekomme dadurch Werte zwischen ca. 800 und 2100. Dazwischen ist je nach Empfangsstärke alles möglich. Ich habe aber auch in der Empfängersoftware den RSSI Anteil zweimal auf den Kanal gemischt um einen doppelten Ausschlag => mehr Auflösung zu bekommen. Ein am RSSI Ausgang des Empfängers angeschlossenes Servo bewegt das Servohorn dadurch zwischen min. und max. ca. 90°. Hast Du mal versucht, ob sich ein Servo am RSSI Ausgang Deines Empfängers auch im Rahmen dieser 7 Stufen bewegt?

Nicht ganz passend zum Thema: Ich war erstaunt, wie stark der Empfang abnimmt, wenn man mit der Senderantenne auf den Flieger „zielt“. Da kann der Empfang in einer Entfernung um 200 Meter bis auf Null abfallen während schon ein ganz leichter Winkel reicht um auch in mehr als 800 Metern noch guten Empfang zu haben.

Grüße,

Georg
 

moscito

Neuer Benutzer
#26
@Steffen:

Danke für die Links! Der Kurs bei uC.net ist genau, was ich gesucht hatte. X-mal besser als die anderen, die ich bisher gefunden hatte. Da hab ich ja genug zu lesen :rot:

@Georg:

Definitiv in Stufen. Hab es mit nem Servo, mit PWM Auswertung über PulseIn und Abfrage des seriellen Datenstroms probiert. Immer das gleiche Ergebnis.
Mal ganz banal gefragt: welchen ACT benutzt Du? Bei mir ist es ein DSL-8 DSQ.

Ja das mit der Antenne ist so eine Sache. Da könnte ich noch zehn weitere Threads aufmachen.
Lass mal eben zusammenfassen: Am Anfang war der EZStar mit Bürste und alles war cool, außer meine Flugkünste. Dann war alles im Griff und es kam der erste brushless Motor. Von diesem Augenblick an hatte (habe) ich wenns doof läuft Reichweiten unter 50m. Hab inzwischen ALLES bereits x-Mal gewechselt und auch das DSL-8 Set als Diversity eingebaut, aber alles für den Popo. Das Thema brauchen wir auch nicht mehr vertiefen - Fakt ist, daß der Aufbau der elektrischen Komponenten im EZ mehr als suboptimal ist. Inzwischen fliegt eh der Twinny und der EZ verstaubt ...

Das blöde an der ganzen Sache ist schlichtweg, daß ich die 2,4 GHz für's Video brauche und deshalb noch mit 35MHz fliegen muss :dodgy:

Cheers

Moscito
 

Carlson

Erfahrener Benutzer
#27
Ich fliege 2 ACT DDS 10 PMC als Diversity wobei ich sagen muss, daß der Futaba R149 DP im direkten Vergleich eigentlich genauso gut ist. Erstunlich, daß die Ausgabe der RSSI Signals so unterschiedlich ist. Ich würde direkt mal bei ACT anfragen ob das so gewollt ist. Haben die Empfänger nicht lebenslange Garantie?

BL Motoren in Verbindung mit 35 MHz können schon zu einem abendfüllenden Thema werden... Ich habe lange Zeit in diversen Fliegern und nicht zuletzt in einem 450er Heli (alle Komponenten auf engstem Raum) damit herumgefriemelt.

Nach meiner Erfahrungen streuen die Störungen des BL Motors fast immer durch die Stromversorgung in den RC Empfänger und weniger durch Antenne und Leitungen, wie so oft behauptet wird. Versuche es mal spaßeshalber mit einem separaten 4 Zellen NI-XX Akku für den RC Empfänger. Achte dabei aber darauf, die + Leitung vom RC Empfänger zum Regler zu unterbrechen weil der Regler die Doppelstromversorgung normalerweise nicht verträgt. Ich bin mir fast sicher, daß damit Deine Sorgen mit Störungen durch den BL Motor Vergangenheit sind.

Ich drücke die Daumen!

Grüße, und viel Erfolg im neuen Job!

Georg
 

moscito

Neuer Benutzer
#28
So langsam wird es klarer.
Die DDS 10 sind komplett anders als die DSL-8.
Hatte unlängst einen 10er von einem Bekannten in der Mangel.
Dagegen ist der 8er ein kastriertes Garnichts.
Die Anfrage bei ACT kann ich mir wohl schenken, da beide 8er sich gleich verhalten.
Wir wollen es jetzt auch mal nicht überspitzt darstellen.
Die 8er sind natürlich auch eine andere Preisklasse und den Zweck erfüllt das RSSI ja auch - wenngleich auch grob.

Bei der Empfangsqualität kann ich allerdings zustimmen. Mein einfacher Jamara Compa 6x steht da in Nichts nach. ABER: Die Failsafe- und Mixqualitäten des ACT sind sehr gut gelöst. Insbesondere die Servostretchlösung durch aufmischen des eigenen Signals.
Das Ganze wird allerdings wieder durch die chaotische Hompage und undurchsichtige Dokumentation getrübt.

...
Den separaten Receiverakku hatte ich natürlich längst getestet. Mit getrennter 5V Leitung und einem Pfund Ferroringe -> Nada.
Natürlich nur gute Ware verbaut. Hacker,Jeti,Saehan,Act.
Entweder kommt der Müll über die Masseleitung, oder durch immense Magnetfelder. Wie auch immer - ruhe er in Frieden ...

Danke für die Wünsche zum neuen Job. Der erste Tag war schonmal aufregend :wow:


Cheers

Moscito
 

Karsten J.

Erfahrener Benutzer
#29
Hallo

Hat sich hier mittlerweile noch was getan ?

Gibt es mittlerweile eine einfache Lösung, ein RSSI Signal aus dem ACT DSQ8 für das OSD rauszubekommen ?

Falls nicht, gibt es doch die Möglichkeit, ein Servo anzusteuern und am Poti vom Servo das analoge Spannungssignal abzugreifen, oder ?
Welche Kabel muss ich dort anzapfen ? (Ich nenne es jetzt einfach mal das linke, das mittlere oder das rechte Kabel :))

Gruß Karsten
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten