Jaepen schrieb:> - Wenn alle Kanäle über ein Signal übertragen werden, warum haben dann> solche Empfänger so viele Pins?
Weil die Kanäle auch irgendwo mal wieder getrennt werden, um sie z.B auf
die Servos zu verteilen.
> Welcher µC eignet sich zum einlesen der Signale.
Ein Atmel ATmega328 tut's auf jeden Fall.
PPM ist eigentlich nichts anderes als das Aneinanderreihen von
Servo-Impulsen (1-2ms).
Die Position des Servo-Motors wird durch eine Impulsdauer zwischen 1-2
ms bestimmt, wobei 1.5ms die Mittelstellung bedeutet. Dieser Impuls wird
alle 20ms wiederholt.
Bei PPM werden einfach N Impulse aneinandergereiht, wobei die Pause
zwischen den Impulsen einfach verkürzt wird, um in der gleichen Zeit
(20ms) mehr "Kanäle" übertragen zu können. Diese werden beim Empfänger
wieder aufgedröselt und pro Pin wird dann alle 20ms ein 1-2ms Signal
ausgegeben. Viele Servos bzw. BDLC-Treiber kommen aber auch mit 100-200
Hz Wiederholrate zurecht.
Timmo H. schrieb:> Bei PPM werden einfach N Impulse aneinandergereiht, wobei die Pause> zwischen den Impulsen einfach verkürzt wird, um in der gleichen Zeit> (20ms) mehr "Kanäle" übertragen zu können.
Na ja. Sagen wir mal: fast richtig
PPM ist nichts anderes als eine Abfolge von Pulsen, die den Empfänger so
ansteuert, dass er bei jedem Puls den gerade aktiven Ausgang auf 0
abschaltet und dafür den nächsten Ausgang aktiviert und dort den
Servopuls beginnt.
Eine entsprechend lange Pause im PPM Signal (größer als ca. 2.5ms) teilt
dem Empfänger mit, dass mit dem nächsten Puls wieder der erste Ausgang
drann ist.
Das PPM Signal und wie es im Empfänger dekodiert wird, mündet letzten
Endes in den bekannten Servosignalen, die vom Empfänger versetzt an den
Pins ausgegeben werden. Aber es sind nicht die Servopulse selbst, die
über den Funk gehen, sondern die entstehen erst durch die Aufbereitung
im Empfänger.
Zumindest war das so, als die Empfänger noch nicht mit µC vollgestopft
waren. Das war einfach nur ein Dekadenzähler, der von den Pulsen im PPM
Signal getrieben wurde, sowie ein RC-Glied, welches aus der längeren
Pause im PPM den Reset-Puls für den Dekadenzähler generiert.
An der Form oder Funktion der PPM Pulse hat sich nichts geändert.
Lediglich die Auswertung geschieht heute meistens mit einem µC anstatt
eines Dekadenzählers.
Schön zu lesen, dass sich mal jemand realistische Erstprojekte sucht und
nicht gleich autonome Unterwasservehicel bauen will, die um den Globus
fahren sollen.
RC Modellbau ist eine gute Spielwiese zum lernen und es gibt unmengen
Gimicks an denen man sich mit immer neuen Herausforderungen austoben
kann ohne sich sinnlos zu überfordern.
Du könntest es auch gleich wagen und einen losen Mega8 nehmen. Zu deiner
Aufgabenstellung wirst du zudem gerade mit DEM Controller massenhaft
Beispiele finden, weil der Mega8 lange Zeit "Everybodys Darling" war
(oder ist, bin nicht ganz sicher). Den hab ich auch Jahre lang benutzt
und für deine Aufgabe langt er dicke.
Wenn es dir noch nichts sagt, gibt es da noch das Roboternetz als Forum.
Speziell für Modellbau währe da noch Rc-line.de Dort findest du sicher
auch einige, die Ahnung von Controllern haben, aber Vorsicht, die
meisten Modellbauer stöpseln nur Systeme zusammen. Aber vielleicht gibts
da die passende Themenrubrik.
Hallo
Erst mal danke für die Antworten.
Dann ist es fast wie ich es mir gedacht hab.
Der Empfänger teild die Kanäle und pro Pin habe ich nur noch einen
Kanal.
Mit meinem µC messe ich die Pulsbreite eines einzelnen Kanals und alles
ist gut....
Bzgl des µC. Da bin ich nicht ganz neu und hab schon mehrere verschieden
µCs programmiert. Ein Bekannter schwärmt aktuell von dem Arduino Uno
daher würde ich den mal gerne verwenden. Ich dachte es gibt vielleicht
einen µC mit "PPM in" der irgendwelche speziellen vorteile hat. Aber das
Puls messen sollte keine Hexerei sein.
Zudem brauch ich etwas Rechenreserve, da später mal noch ein paar
Motorregler auf dem µC laufen sollen.
Nebenbei - gibt es eine "einsteiger Fernbedienung" die empfohlen wird?
Gruß
Jaepen schrieb:> Hallo>> Erst mal danke für die Antworten.> Dann ist es fast wie ich es mir gedacht hab.> Der Empfänger teild die Kanäle und pro Pin habe ich nur noch einen> Kanal.> Mit meinem µC messe ich die Pulsbreite eines einzelnen Kanals und alles> ist gut....
Dann bist du aber schon einen Schritt weiter. PPM interessiert dich dann
gar nicht mehr. Was du dann willst, sind Servo-Pulse auswerten.
Das sind 2 verschiedene Dinge. Servopulse entstehen zwar aus dem PPM
Signal. Aber selbst sind sie kein PPM Signal mehr.
> daher würde ich den mal gerne verwenden. Ich dachte es gibt vielleicht> einen µC mit "PPM in" der irgendwelche speziellen vorteile hat.
Nicht wirklich. In Relation zu der Geschwindigkeit eines heutigen µC
sind diese Pulse alle schnarchlangsam.
> Aber das> Puls messen sollte keine Hexerei sein.
Eben.
Timer mit Input Capture und gut ists.
Am besten ist ein Empfänger geeignet, der an einem Pin das PPM Signal
ausgibt, auch "Summensignal" genannt.
Dann liegt es natürlich an dir, die Kanäle aus dem Signal zu
extrahieren, aber wie schon oben geschrieben dafür ist die lange Pause
am Ende des Signales da.
Nicht alle Empfänger haben einen nach außen geführten Pin mit
Summensignal. Bei manchen kann man es vorsichtig im inneren abgreifen.
Ich habe "damals" an einer MC10 von Graupner und einem RJ700 getüftelt.
Aber die 40Mhz Techik ist im Grunde Outdated ;-)
Da währe vielleicht wirklich das RC-Line Forum oder die FPV-Community
sinnvoll, um nach für dich passenden Sender/Empfängerkombinatinen zu
fragen.
Hallo
Warum sollte ich die Signale wieder verUNDen?
Ich kann doch einfach pro Kanal einen Eingang meines µC verwenden und
dann dieses Servosignal auswerten.
Oder nicht?
Warum sollte ich mir die Arbeit machen um das PPM Signal abzugreifen uns
selbst zu zerlegen. Ich spare mir höchstens die Eingänge.....
Gruß
Jaepen schrieb:> Warum sollte ich mir die Arbeit machen um das PPM Signal abzugreifen uns> selbst zu zerlegen.
Tja. Du darfst dich nicht wundern. Im Eröffnungsposting hast du nach PPM
gefragt. Und erst nachher hat sich herausgestellt, dass du gar nicht PPM
willst sondern direkt am Servoausgang des Empfängers das Servosignal
abgreifen kannst.
Wobei ich mich allerdings auch frage: wozu?
So ein Fahrtregler aus dem Modellbau kostet nicht die Welt und wenn der
genug Power mitbringen soll, kannst du den selbst auch nicht billiger
bauen.
Aber ok. Des Menschen Wille ist sein Himmelreich.
Zum einlesen benutzt man i. d. R. einen Pin eines µC, der einen
Inputcapture bietet, so dass das PPM Signal den Timer dazu veranlasst,
einen Zeitstempel zu speichern, den man dann in der Interruptroutine
abholt.
Im Prinzip kann man auch jeden Kanal an einen Pin anschließen und
externe Interrupts auslösen und in der ISR den Timer auslösen, jedoch
wird dann der Zeitstempel eventuell ungenau wegen der Sprungzeit zur ISR
und eventuell anderer gerade aktiver Interrupts.
Ich denke wir sollten hier mal was klären, ehe noch mehr aneinander
vorbei reden.
Jaepen, was willst du wirklich tun.
Hast du einen Modellbauempfänger, an den du deine Schaltung anstecken
willst, die sich dann wie ein Servo verhält, oder hast du so etwas
nicht? Wo kommt das Signal her, das du ausmessen möchtest?
> wozu?
Wegen des Lernerfolges, wegen der Spaß an der Sache oder als
Zwischenprojekt zu einem anderen Vorhaben
Soll meine Oma aufhören zu stricken, weil man Schals in jeder beliebigen
Variation kaufen kann?
Maude schrieb:>> wozu?>> Wegen des Lernerfolges, wegen der Spaß an der Sache oder als> Zwischenprojekt zu einem anderen Vorhaben
Ich hab die Erfahrung gemacht, dass hier in den seltensten Fällen Leute
aufschlagen, die aus Spass an der Freude etwas machen wollen und dann
ihr Posting so anfangen
> Ich möchte gerne ein PPM Signal mit einem µC einlesen und weiter> verarbeiten, sprich einen Motor steuern.> Bzgl. PPM Signalen habe leider absolut keine Ahnung und habe> beim googeln sowas gefunden:> ...> Welcher µC eignet sich zum einlesen der Signale.
Da steckt schon was dahinter. Das macht er nicht nur aus Spass an der
Freude.
Ich wills ihm nicht ausreden! So ist das nicht. Aber wenns darum geht,
dass es in absehbarer Zeit auch zuverlässig funktionieren soll, dann
....
Ich hol den Beitrag mal wieder hoch.
Ich möchte als Anfänger zum Einstieg das PPM Signal decodieren ( im
Prinzip nur zum Lernen / Spass). Ich habe das von einem Empfänger als
Vorgabe ( also keine einzelnen PIN's der Servos ), 'höre' das mit und
möchte die Daten als eine Art Servomonitor auf einem Display ausgeben.
Hintergrund ist, das eine 'Umsetzerbox' von einem Summensignalempfänger
das PPM Signal bekommt und das dann als Eingangssignal eines anderen
Systems weitergibt.
Nettes Gimmick wäre halt das PPM Signal mit zu hören und die Daten auf
seinem Display auszugeben.
Ich habe zwar schon einiges gefunden, stehe aber teilweise bei dem Code
echt auf dem Schlauch:
TIMSK |= (1<<TOIE0);
TCCR0 |= ((1<<CS00) | (1<<CS02));
Solche Konstrukte sagen mir überhaupt nix. Wo find ich denn da ne
passende Einsteigerliteratur? Programmieren ist mir nicht ganz fremd,
bin es aber nur unter Windows mit dem .NET Studio gewohnt.