Hallo,
ich suche nach einem Weg, einen Bürstenlosen Motor (aus dem
Modellflugbereich) per PC anzusteuern. Die Treiberschaltung des Motors
bekommt ihren Sollwert per Puls-Pausen-Modulation (standart Verfahren im
Modellbau).
Ich bräuchte also einen Puls-Pause-Signalgeneratur, den ich an meinen PC
hängen kann. Z.B. per USB, RS232 oder 0-10V Ausgangskarte. Wenn möglich
würde ich gerne was Fertiges nehmen und keine extra Schaltung
entwickeln. Hab schon ne weile gesucht und bisher nichts gefunden.
Sollte es doch eigentlich geben. Z.B. nen IC der 0-10V oder 0-5V auf
Puls-Pause wandelt. Hat jemand nen Tip für mich?
Danke im Vorraus
alb schrieb:> ich suche nach einem Weg, einen Bürstenlosen Motor (aus dem> Modellflugbereich) per PC anzusteuern. Die Treiberschaltung des Motors> bekommt ihren Sollwert per Puls-Pausen-Modulation (standart Verfahren im> Modellbau).
Ja, wenn du jetzt noch "Puls-Pausen-Modulation (standart Verfahren im
Modellbau)" näher definieren könntest, dann könnte dir vielleicht auch
geholfen werden...
Es gibt da nämlich keine Standard-Verfahren (und schon garkeine
"Standart"-Verfahren), sondern bestenfalls "allgemein übliche"
Verfahren.
Allgemein üblich wären z.B. für Servos 1..2ms Puls bei ~20ms Zyklus.
Bloß handelt es sich hier ja offensichtlich gerade nicht um einen
Solchen.
> Ich bräuchte also einen Puls-Pause-Signalgeneratur
Für den du erstmal definieren mußt, was der können soll... Wie man dann
sowas mit dem PC realisiert, ist erst der zweite Teil der Aufgabe.
Klar gibts sowas als fertiges Modul.
z.B. von Meilhaus.
Hier könnte man ein LabJack U3-LV (
http://www.meilhaus.de/labjack+u3-lv,i6.htm ) nehmen. Gibt auch noch
andere Anbieter, wie z.B. National Instruments, da wirds aber ganz
schnell sehr teuer.
Gruß
Rainer
Wenn du dich nicht so geschwollen ausdrücken würdest, dann hättest du
gesagt, dass deine 'Treiberschaltung' ein handelsüblicher
Modellbau-Motor-Controller ist. Und der wird bekanntlich wie ein ganz
normales Modellbauservo angesteuert.
Was du also suchst, sind Boards, mit denen du vom PC aus Servos
ansteuern kannst.
Zum Beispiel so etwas hier
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=223
Google findet sicherlich noch zig andere Anbieter.
@ c-hater: Blub Blub Blub, kann ich leider nicht. aber Schlaue und
willige Leute können trotzdem helfen
@ Rest: Danke für die Links, sowas sollte funktionieren.
alb schrieb:> @ c-hater: Blub Blub Blub, kann ich leider nicht.
Den Unterschied zwischen Pulspausensignal und Servosteuersignal
kannst Du anscheinend auch nicht. :-(
Harald Wilhelms schrieb:> Den Unterschied zwischen Pulspausensignal und Servosteuersignal> kannst Du anscheinend auch nicht. :-(
ich auch nicht, was unterscheidet denn die beiden?
5 Zeilen VB code um über die RS232 PWM oder PPM Signale auzugeben.
Wie vor 30 Jahren ;-)
Den Unterschied zw. PWM und PPM könnt ihr euch sonst wo hinstecken ;-)
> Joachim B. schrieb:>> Harald Wilhelms schrieb:>>> Den Unterschied zwischen Pulspausensignal und Servosteuersignal>>> kannst Du anscheinend auch nicht. :-(>>>> ich auch nicht, was unterscheidet denn die beiden?npn schrieb:> Nichts!> http://de.wikipedia.org/wiki/Puls-Pausen-Modulation
na wenn die nichts unterscheiden gibts auch keinen Unterschied den man
kennen müsste (wat fürn Lötzinn)
npn schrieb:> Joachim B. schrieb:>> Harald Wilhelms schrieb:>>> Den Unterschied zwischen Pulspausensignal und Servosteuersignal>>> kannst Du anscheinend auch nicht. :-(>>>> ich auch nicht, was unterscheidet denn die beiden?>> Nichts!> http://de.wikipedia.org/wiki/Puls-Pausen-Modulation
Sagen wir so. Es ist trivial aus einer PPM die eigentlichen Servosignale
zu generieren. PPM ist aber nicht dasselbe wie ein Servosignal. In einer
PPM steckt die anzufahrende Servoposition in der zeitlichen Distanz
einer steigenden Flanke zur nächsten steigenden Flanke. In einem
Servosignal ist dieselbe Information in der Pulslänge, von der
steigenden Flanke bis zur fallenden Flanke, kodiert.
Joachim B. schrieb:>> Joachim B. schrieb:>>> Harald Wilhelms schrieb:>>>> Den Unterschied zwischen Pulspausensignal und Servosteuersignal>>>> kannst Du anscheinend auch nicht. :-(>>>>>> ich auch nicht, was unterscheidet denn die beiden?>> npn schrieb:>> Nichts!>> http://de.wikipedia.org/wiki/Puls-Pausen-Modulation>> na wenn die nichts unterscheiden gibts auch keinen Unterschied den man> kennen müsste (wat fürn Lötzinn)
Der einzige Unterschied ist, daß das PPM für die Übertragung per Funk
ein invertiertes PWM darstellt. Das heißt, die Servos bekommen einen
positiven Puls von 1..2ms bei einer Pause von ca. 20ms. Und per Funk
wird das Signal so versendet, daß 1..2ms Unterbrechung und ein Signal
von ca. 20ms vorhanden ist. Also lediglich eine Invertierung (high/low).
Das, was der TO haben möchte, ist mit großer Wahrscheinlichkeit ein
1..2ms Puls mit 20ms Pause.
npn schrieb:> von ca. 20ms vorhanden ist. Also lediglich eine Invertierung (high/low).
Nope. Also das stimmt definitiv nicht.
PPM kommt auf der Funkstrecke zum Einsatz. Da müssen die Werte von n
Servos nacheinander übertragen werden!
> Das, was der TO haben möchte, ist mit großer Wahrscheinlichkeit ein> 1..2ms Puls mit 20ms Pause.
Dem stimme ich allerdings zu.
Karl Heinz schrieb:> npn schrieb:>>> von ca. 20ms vorhanden ist. Also lediglich eine Invertierung (high/low).>> Nope. Also das stimmt definitiv nicht.
Beachte auch, dass das animierte GIF in der Wikipedia falsch ist. Im
daneben stehenden Begleittext ist es richtig.
Bei PPM steckt die Servoposition im zeitlichen Abstand einer steigenden
Flanke zur nächsten steigenden Flanke. Die eigentliche Pulslänge ist bei
PPM eher uninteressant und muss nur lang genug sein, damit der Empfänger
den Puls sicher auswerten kann. Aber ansonsten ist die Pulslänge
wurscht.
Das Bild in der Wiki ist hier etwas missverständlich. Der wesentliche
Tatbestand des zeitlichen Abstands zwischen den steigenden Flanken kommt
da ein wenig zu kurz.
Karl Heinz schrieb:> Nope. Also das stimmt definitiv nicht.
Sondern?
Die Unterbrechung ist der negierte Impuls.
Was du meinst, ist die Pulspositionsmodulation. Die wird ebenfalls mit
PPM abgekürzt. Steht sogar bei Wikipedia:
1
Die in Modellfunkfernsteuerungen verwandte PPM ist nicht zu
2
verwechseln mit der Pulsphasenmodulation oder der
3
Pulspositionmodulation. Es wird für beide Verfahren dasselbe
4
Akronym (PPM) eingesetzt, daher werden die Verfahren häufig verwechselt.
npn schrieb:> Karl Heinz schrieb:>> Nope. Also das stimmt definitiv nicht.>> Sondern?> Die Unterbrechung ist der negierte Impuls.
Das, was einmal der Servopuls werden wird, ist nichts anderes als der
Abstand einer steigenden Flanke zur nächsten steigenden Flanke.
Die eigentliche Pulslänge bzw. die Länge der Pause zwischen den Pulsen
bzw. das Verhältnis der beiden spielt überhaupt keine Rolle, solange
sich die zeitliche Mindestdauer von 1ms von einer Flanke zur nächsten
Flanke ausgeht und die Pause noch lang genug ist, so dass die Auswertung
da sicher mitkommt.
Ausgewertet wurde eine PPM klassisch so, dass man mit diesem Signal ganz
einfach auf einen Dekadenzähler geht. An den einzelnen Ausgängen dieses
Dekadenzählers entstehen dann ganz von alleine die bekannten Servopulse
mit der Charakteristik 1-2 ms Pulslänge und einer Pause dahinter, so
dass man auf ca 20ms von einem Servo-Puls zum nächsten kommt. Jeder Puls
des PPM Signals schaltet einfach den Dekadenzähler um 1 weiter. Und erst
die hinten nachfolgende laaange Pause sorgt für ein Rücksetzen des
Zählers auf 0.
Die zu übertragene analoge Größe wird als Pausendauer zwischen
2
aufeinander folgenden Impulsen kodiert.
Also in der Pausendauer (1..2ms) steckt die Information. Das ist genau
die Definition des invertierten Servosignales. Das Bild ist nur insofern
mißverständlich, daß es nicht nur einen Kanal, sondern 6 Kanäle
darstellt. Deswegen ist da keine Pause von 20ms. Die Kanäle werden ja
zeitmäßig ineinandergeschachtelt für die Funkübertragung.
> Die zu übertragene analoge Größe wird als Pausendauer zwischen
2
> aufeinander folgenden Impulsen kodiert.
3
>
>> Also in der Pausendauer (1..2ms) steckt die Information.
Nochmal.
Das ist nicht richtig
Du kannst es wiederholen sooft du willst. Sieh dir einfach an, wie man
ein PPM Signal vor Einführung von Mikroporzessoren dekodiert hat.
>> Die zu übertragene analoge Größe wird als Pausendauer zwischen
2
>> aufeinander folgenden Impulsen kodiert.
3
>>
>>>> Also in der Pausendauer (1..2ms) steckt die Information.
Ausserdem steht in der Wiki eindeutig
1
Jede Pause ist 0,5 bis 1,5 ms lang.
Auch wenn diese Betrachtung so nicht ganz korrekt ist, folgt daraus
sofort, dass das keine invertierten Servopulse sein können, die (wie du
korrekt sagst) zwischen 1 und 2 ms lang sind.
alb schrieb:> Ich bräuchte also einen Puls-Pause-Signalgeneratur, den ich an meinen PC> hängen kann.
Jeder PC hat einen Puls-Pausen-Signalgenerator. Nennt sich
Soundkarten-Ausgang. Du baust Dir einen Buffer mit 0en und 1en und
schickst den einfach auf den Lautsprecher-Ausgang. Damit lassen sich
sogar sehr genaue Timings herstellen.
was im PPM Signal der zeitliche Abstand von einer steigenden Flanke zur
nächsten war, ist durch den Zähler in Pulslänge auf den Servoleitungen
umgesetzt worden. Die laaaange Pause im PPM Signal triggert die
Reset-Logik, die den Zähler wieder auf 0 zurücksetzt.
Die Leute waren vor 50 Jahren ja auch nicht dämlich und haben mit dem
gearbeitet was sie hatten. Ein Zähler ist einfach zu realisieren und
niemand muss an dieser Stelle der Verarbeitungskette irgendwelche
Pulslängen auswerten um die Aufteilung in die einzelnen Servokanäle zu
realisieren. Das einzige was sicher gestellt sein muss: die Pausen
zwischen den Pulsen müssen kurz genug sein, damit die Reset Logik nicht
anspricht. Erst die lange Pause nach dem letzten Puls einer Serie
triggert diese.
Karl Heinz schrieb:> dann entsteht durch den 4017
man wird natürlich damals noch keinen CD4017 benutzt haben, sondern
irgendeinen anderen derartigen Zähler. Wenn ich mir die Größe der ersten
Graupner Bausteine so ansehe, würde ich sogar sagen: diskret aus
Transistoren aufgebaut.
Nur damit da keine Missverständnisse aufkommen.
npn schrieb:> Karlheinz, du hattest (mal wieder) völlig recht.
Mich hat das vor einiger Ziet auch mal gewurmt, dass ich nicht verstehe
wie das eigentlich funktioniert. Ich hatte damals auch gedacht, dass da
direkt die Servopulse hintereinander über die Funkstrecke gehen und ich
hab mich gefragt, wie die das Zeug da früher auseinanderklamüsert haben.
Bis ich dann dahinter gekommen bin, dass die Pulse auf der PPM Strecke
eben nicht die eigentlichen Servopulse sind, sondern man die ev. besser
als Kanaltrennpulse ansehen sollte (Wortschöpfung jetzt in diesem Moment
von mir). Als ich das raus hatte, hab ich meinen Hut gezogen. So genial
wie einfach.
Varioprop hatte mal eine Zeitlang die Pausen genau halb so groß wie die
Pulsflanken-Abstände gemacht, auch beim Sync-Impuls.
Der Hintergrund ist einfach in der Maßgabe zu sehen, die Bandbreite des
modulierten Signals auf 10kHz zu begrenzen, damit in einem 27Mhz-,
35Mhz- oder 40Mhz-Band möglichst viele Kanäle störungsfrei nebeneinander
liegen können.
Eine "Pause" von 0,2ms bedeutet eine "Frequenz" von 5kHz, das ist für
ein 10kHz-Raster zuwenig. 0,2ms hatte man in der Transistor-Ära und
anfangs der TTL-Ära häufig verwendet. Deshalb ist man später auf
Austastlücken (so heißen die "Pausen") von 0,4ms gegangen (sind nur noch
2,5kHz) um im 10kHz-Raster arbeiten zu können. Varioprop wollte es
besonders gut machen und hat den Servopulsen eben eine Austastlücke von
einer halben Servopuls-Länge mitgegeben.
Im Sender wird (wurde) die Austastlücke von einem Monoflop generiert,
denn die Servopulse liegen auch im Sender unmittelbar hintereinander.
Blackbird
Karl Heinz schrieb:> So genial wie einfach.
Das stimmt. Und dabei war ich fest davon überzeugt, daß meine Infos
stimmen!
Und Wikipedia hat mich in meinem Wissen bestätigt. Aber offensichtlich
ging es anderen genauso, denn sonst hätten sie es ja nicht in Wiki
hinein geschrieben.
Blackbird schrieb:> anfangs der TTL-Ära häufig verwendet. Deshalb ist man später auf> Austastlücken (so heißen die "Pausen") von 0,4ms gegangen (sind nur noch> 2,5kHz) um im 10kHz-Raster arbeiten zu können.
Ah. Das ist natürlich ein auch ein Argument. Daran hatte ich noch gar
nicht gedacht. Ich dachte immer, die Pulslängen im PPM hätten
hauptsächlich damit zu tun, beim Empfänger den Reset-Puls für den Zähler
zu generieren. Denn im Prinzip reicht da ja ein RC-Glied, das mit jedem
nächsten Puls neu 'geladen' wird und kontinuierlich entladen wird. Ist
die Pause lang, dann fällt das RC Glied unter die Grenze und das wird
dann als Reset gewertet. Allerdings müssen die Pulse dann auch eine
Mindestlänge haben, damit das RC Glied auch sicher immer wieder
nachgeladen wird.
Aber an das Kanalraster hatte ich nicht gedacht, ist aber logisch.
> e Varioprop wollte es> besonders gut machen und hat den Servopulsen eben eine Austastlücke von> einer halben Servopuls-Länge mitgegeben.
Wobei das 'schöne' darin besteht, dass das nur eine Modifikation im
Sender bedeutet. An älteren Empfängern ändert sich ja nichts.
npn schrieb:> Karl Heinz schrieb:>> So genial wie einfach.> Das stimmt.
Das was mich am meisten verblüfft hat war, dass ich keine Möglichkeit
gefunden habe, wie man Servosignale einfacher direkt über die
Funkstrecke schicken kann. Egal was ich mir ausgedacht habe, es war
immer komplexer als diese Systematik. Und das sowohl was Sender als auch
Empfänger anbelangt.
Genial war auch die Lösung, das Empfangs- (Dekodier-) Schieberegister
(Zähler geht auch) mit Thyristor-Nachbildungen (aus je einem NPN- und
einem PNP_Transistor) aufzubauen. 2 Transistoren pro Kanal, 2 bis 3
Transistoren für die Takt- und die Reset- (Sync-) Aufbereitung - kleiner
geht es nicht.
Blackbird
@Karl Heinz
Das ist zwar richtig was du schreibst aber der TO hat nach dem
Servo-Signal gefragt und nicht nach dem Summensignal. Er will mit diesem
Signal ein ESC ansteuern.
Das Problem ist der Abstand der Flanken des zu erzeugenden Pulses.
Dieser Abstand enthält die (Drehzahl-)Information und sollte wenigstens
100µs, besser 20µs bis 50µs, Auflösung (Schrittweite) haben.
Die direkte Generierung durch den PC gelingt nur mit Soundcard oder der
seriellen Schnittstelle. Oder man lagert die Generierung des Pulses an
eine externe "Einheit" aus, zb. ein passend programierter Chip und
steuert den Chip per PC über irgendeine Schnittstelle.
Blackbird
jemand schrieb:> Das ist zwar richtig was du schreibst aber der TO hat nach dem> Servo-Signal gefragt und nicht nach dem Summensignal. Er will mit diesem> Signal ein ESC ansteuern.
Dieses hier ist kein Support-Forum irgendeines Herstellers, sondern ein
Diskussionsforum. Hier hat weder der TO einen Anspruch auf eine
Antwort seiner Frage noch erhebt sich allgemein ein Anspruch, dass
ausschließlich auf diese Frage zu antworten ist.
Ich fand Karl Heinz' Ausführungen sehr informativ. Dabei habe ich
persönlich etwas gelernt. Dafür ein Danke.
Frank M. schrieb:> jemand schrieb:>> Das ist zwar richtig was du schreibst aber der TO hat nach dem>> Servo-Signal gefragt und nicht nach dem Summensignal. Er will mit diesem>> Signal ein ESC ansteuern.>> Dieses hier ist kein Support-Forum irgendeines Herstellers, sondern ein> Diskussionsforum. Hier hat weder der TO einen Anspruch auf eine> Antwort seiner Frage noch erhebt sich allgemein ein Anspruch, dass> ausschließlich auf diese Frage zu antworten ist.
Im übrigen war die allererste Antwort von mir die, sich ein
hndelsübliches Servoboard zu kaufen, welches er mittels USB an den PC
anstecken kann.
Der Rest ist nur deswegen aufgekommen, weil der TO es in seiner Anfrage
nicht schafft, allgemein übliche Begriffe zu benutzen und sich klar und
deutlich bzw. richtig auszudrücken. Nur deshalb ist es zur Diskussion
Servosignal / PPM gekommen. Das er in seiner Aufgabenstellung es nicht
(wie er behauptet) mit einem PPM Signal zu tun haben wird, war mir von
Anfang an klar.
Im übrigen, jemand, lies noch mal das erte Posting. Er fragt definitiv
nach dem PPM, also dem Summensignal. Also wirf mir nicht vor, ich würde
das Thema verfehlen.
Frank M. schrieb:> Ich fand Karl Heinz' Ausführungen sehr informativ. Dabei habe ich> persönlich etwas gelernt. Dafür ein Danke.
Dem schließe ich mich an. Ich bin von falschen Informationen ausgegangen
und habe mich gern korrigieren lassen. Auch von mir "danke!".
Außerdem hat Karl-Heinz schon vorgestern(!) eine Lösung für den TO
aufgezeigt.
Karl Heinz schrieb:> Zum Beispiel so etwas hier> http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=223