C Code Modellbau

Gast #135905
Lesenswert?

Hallo,  ein frohes neues Jahr wünsche ich.

Ich bin auf der sucghe nach einem C Code um die Fersteuersignale meiner
Futaba Robbe Anlage auszuwerten.

Z.B. möchte ich eine LED schneller oder langsamer blinken lassen,
je nachdem, wie weit ich den Prop Kanal der Anlage steuere.

Oder per PWM heller oder dunkler leuchten lassen.

Leider habe ich bis jetzt nichts gefunden.

Wer hilft mir weiter?

Gruß Toby
Gast #135906
Lesenswert?

>>Wer hilft mir weiter?
ich würd mal schwer auf google tippen

>>Leider habe ich bis jetzt nichts gefunden.
wonach hast du denn gesucht?
Bzw. worin liegt dein Problem?

Der Servoimpuls kommt alle 20ms und ist zwischen 1 und 2 ms lang (1,5ms
entspricht Mittelstellung). Miß die Dauer des Eingangssignals,
"verrechne" die Dauer entsprechend deiner Anwendung und steuere deine
Ausgänge.

grüße leo
Gast #135909
Lesenswert?

Hi,

es geht mir nicht darum, "nur" eine LED in verschiedenen
Geschwindigkeiten blinken zu lassen.

Da ich recht Unerfahren in Sachen Mc's bin, möchte ich einfach bei
kleinen Dingen anfangen, um später mal meine Ideen zu verwirklichen.

Ich würde gerne einfach mit dem Fernsteuersignal verschiedene
Dinge steuern,
- LED schneller/langsamer blinken lassen
- mehr oder weniger LEDs an bei verschiedenen Steuerausschlägen
- einschalten mehrerer LEDs nacheinander
- usw.
aber dazu brauch ich ja nunmal erst die Auswertung des Signals.

Gruß Toby
Gast #135910
Lesenswert?

Tipp: Fang mit noch kleineren Dingen an. Ein Fernsteuersignal
auszuwerten ist als Anfänger nicht so trivial.
Zwar ist es einfacher, fertigen Code irgendwo abzuschreiben, aber so
richtig verstanden hat man ihn nicht, und das Erfolgserlebnis, wenn man
es dann doch geschafft hat, ist umso größer...
Auch, wenn hier immer wieder erzählt wird, C-Code sei portierbar - er
ist es nicht. Also nutzt Dir ein C-Code für den MCS-51 nichts auf einem
Mega-8...
Ich würde in dieser Reihenfolge vorgehen: LED zum Leuchten bringen, LED
blinken lassen, Eingänge abfragen, und dann auch mal die
Spezialfunktionen des Timer1 anschauen.
Gast #135912
Lesenswert?

Hallo thkais,

sooo unerfahren bin ich nun auch wieder nicht.

Ich kann wohl schon eine LED per Timerüberlauf ein und aus schalten.
Oder auch, durch setzen eines DDR Bits, eine LED dauernd zum leuchten
bringen.

Mir geht es halt nur um ein paar Tips, wie und womit ich die Signale
einlesen und auswerten kann.

Außerdem suchte ich ein C Code beispiel für den Mega8 und den WinAVR
Compiler.

Gruß Toby
Gast #135913
Lesenswert?

Servosignal auf Int-Eingang. Steigende Flanke startet zwei Timer (einer
für Messung, so skaliert dass 2ms z.B. 200 ergibt, der zweite so dass
255 nach ca. 25ms erreicht ist) und konfiguriert Int auf fallende
Flanke.
zweiter Int nach weniger als 1ms -> Impuls ungültig
-"- nach 1..2ms -> gültiger Impuls
zweiter Timer löst int aus -> Impuls zu lang -> ungültig und int wieder
auf steigende Flanke konfigurieren.

Den dritten Timer kannst du als Zeitbasis für die Blinklichter
verwenden.

grüße leo
Gast #135917
Lesenswert?

Hallo,

ich habe nun nach reichlich Forenblätterei und einiger Hilfe, die ich
hier gefunden habe, einen C-Code erstellt,
um mehr oder weniger LED's leuchten zu lassen, bei verschiedenen
Impulslängen meines RC-Emfängers.

Die LED's sind aber invertiert angesteuert, da das STK500 die lED's
gegen VCC hat.

Für weitere Tips und Anregungen bin ich offen.

Gruß Toby
Angehängte Dateien:
Gast #135920
Lesenswert?

Axel,

OK, ich kann also sowohl bei steigender als auch bei fallender Flanke
einen Interrupt haben. Aber ich verstehe noch nicht ganz, was mir das
im konkreten Fall helfen könnte. Das genannte PPM-Signal definiert ja
einen Servo-Impuls nicht über die Länge, sondern den Abstand zwischen
zwei Flanken. Also:
       __ __ ____ _ __
PPM:        _    _ 
          _
Servo1:___   _________
             ___
Servo2:______     ____

usw.

Achim.
Gast #135921
Lesenswert?

Hallo,

Achim, woher bekommst du das PPM Signal,
(___-____--_____---__)
in dem die Servos hintereinander einen High>Low Puls bekommen?

Aus einem Empfängerkanal für das Dementsprechende Servo kommt doch
"nur" ca. alle 20ms ein Impuls für das demetnsprechende Servo.
(___-________________), Kanal1
(________--__________), Kanal2
(_______________---__), Kanal3
...
...

Oder versteh ich da jetzt was nicht?

Gruß Toby
Gast #135922
Lesenswert?

> Achim, woher bekommst du das PPM Signal,

Oh, sorry. Hätte ich vielleicht noch mit dazu schreiben sollen. Die
Fernsteuerung setzt die einzelnen Steuersignale zu dem sog. PPM-Signal
zusammen und sendet es. Manche Empfänger geben dieses Signal dann
wieder nach aussen weiter. Bei meinem Graupner C19 liegt es am
unbenutzten 3. Pin des Batterieanschlusses an, muss aber noch verstärkt
werden. Dieses benutze ich dann als Trigger.

Für ein anderes Forum hatte ich das neulich dokumentiert. Vielleicht
hilft die folgende Seite weiter:
http://www.voidpointer.de/tmp/ppm.html

Ich weiss nicht, ob Robbe / Futaba auch das PPM-Signal verfügbar macht,
habe mal sowas gehört. Kannst ja mal mit nem Oszi nachschauen.

Gruß, Achim.
Gast #135924
Lesenswert?

Der Demodulatorausgang ist selbst bei meiner billigen 2Kanal Anlage
herausgeführt.
Ich habe mir das eben mal angesehen:
rutscht der 2.Kanal dichter ran, wenn der erste Kanal nur eine
Impulsdauer von 1000uS hatte, oder bleibt ein Zeitfenster für jeden
Kanal von 2ms reserviert? Wenn dem nicht so ist, also die Impulse der
nächsten Kanäle an den vorigen ohne Pause anknüpfen, reicht natürlich
die Steigende Flanke.
Gast #135925
Lesenswert?

Wenn die Pulsweiten der Servos kleiner werden, rücken die Flanken enger
zusammen. Sieh lustig aus auf dem Oszi ;-)

@HanneS: Ja klar, an den Demodulatorausgang ist auf jeden Fall
ranzukommen. Aber ich habe lieber eine Black Box mit rausgeführtem
Signal, als in dem Empfänger herumlöten zu müssen.
Gast #135926
Lesenswert?

Die Flanke reicht, denn die Tastimpulse sind mit typisch 0,5ms immer
gleich.
Ein Telegramm mit lauter 1ms-Werten ist also schneller fertig, es
bleibt eine größere Pause bis zum nächsten Kanal 1.

...
Gast #135927
Lesenswert?

@Achim:
Das ist wohl wahr... Das erfreut aber nicht jeden Hersteller. Denn der
möchte nicht so gern, dass man seine billige Zweikanalanlage mit
eigenen (vielkanaligen) Encodern und Decodern betreibt. Der möchte
lieber seine Mehrkanalanlagen verkaufen.

...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren