Ich habe es am COM Port gemacht und es HAT funktioniert...
PC: Intel Pentium 4 1,5GhZ, Windows XP, compiliert
In diesem Buch sehr gut beschrieben:
http://www.amazon.de/PC-Schnittstell...053379&sr=8-12
Druckbare Version
Ich habe es am COM Port gemacht und es HAT funktioniert...
PC: Intel Pentium 4 1,5GhZ, Windows XP, compiliert
In diesem Buch sehr gut beschrieben:
http://www.amazon.de/PC-Schnittstell...053379&sr=8-12
Oha, das ist natürlich beachtenswert. Aber du hast etwas gaanz anderes gemacht hat, als da einige Posts weiter oben behauptet wurde. Du hast Daten über den Seriellen Anschluss übertragen. Das ist natürlich grossartig und erfreulich, aber dafür brauche ich nicht mal eine port.dll. Und timingprobleme gibts ja in einer asynchronen Betriebsart auch nicht.
Btw wie sieht bei dir das Interface zwischen seriellen pc Anschluss und Servo aus? Hat zwar nichts mit den obigen Behauptungen zu tun, aber könnte durchaus interessant sein.
grüsse,
Hannes
Ich habe keine DATEN übertragen(wie kommst du eig. darauf und wie könnte man damit ein Servo steuern??)... die Port.dll stellt einen Timer zur Verfügung, der es ermöglicht z.B. den "DTR Pin" des COM Ports mit hohen Frequenzen zu beschalten. Dieser bevor man den Timer verwenden kann muss man durch die Funktion REALTIME die Applikation in eine art... naja Echtzeit versetzen.
Dieser Timer ist dann shr viel hochauflösender als die üblichen (bei Delphi z.b. die TTimer Komponente; diese kann man theoretisch bis 1ms herunter betreiben, sie arbeitet dann aber wie du schon sagtest nicht mehr "konstant")
Mit diesem Timer kann man dann ein Rechtecksignal an einem beliebigen
O- Pin des COM Ports erzeugen, dass den Anforderungen eines Servosignals entspricht...
Zum Interface: Naja, der modulierte Pin wird mit der Signalleitung des Servos verbunden und das Servo an eine Stromquelle angeschlossen ;-)
u.U. braucht man nicht mal einen gemeinsamen Massepunkt, wenns aber nicht funktionieren sollte hilft es wenn man GND des Comports auf - am Servo legt.
Ich hoffe ich konnte helfen...
Wenn beim Com-Port eine Steuerleitung als Signal für den Servo verwendet wird, gäbe es durchaus Parallelen zum Betrieb am LPT-Port. Dann müsten die Zeiten auch berechnet werden.Zitat:
Ich habe es am COM Port gemacht
Vielleicht wird auch mit einer passenden Baudrate ein Bitmuster seriell zum Servo übertragen? Diese High-Low-Folge könnte dann vom Servo als PWM interpretiert und als Steuerimpulse auswertet werden? Startbit+Highs in Dauer des PWM-Impulses (die ca. 1ms), dann Lows+Stopbits um den Zyklus zu beenden. Die Baudrate müsste dann eben so groß sein, dass ein Zeichen in 20 ms gesendet wird. Klingt gut? Keine Ahnung ob's funzt, ich teste es mal bei Gelegenheit, wenn niemand Einspruch erhebt.
Gruß
mic
[Edit]Sorry Xtreme, das habe ich erst nach dem Absenden meines Beitrags gelesen. (War abgelenkt *GG*) So in der Art hatte ich es auch vermutet, die COM-Steuerleitungen sind flotter als der LPT.[/Edit]
So, hab mir grad mal die Arbeit gemacht und das vom PC modulierte Signal am Oszi angeschaut (leider bin ich anscheinend zu doof das Bild vernünftig ab zu fotografieren... wie macht ihr das immer??)
Bild hier
Zwei Signale... eins am RTS eins am DTR abgegriffen.
Ich glaube man erkennt, dass eines doppelt so lang ist wie das andere...
Kannst du so das Impuls zu Pause bzw. 1ms zu 20ms Verhältniss nachmessen?
Hallo xtreme,
danke für die ausführlichere Info. So kann ich mir schon was vorstellen. Werd jetzt einmal nach diesem Echtzeitmodus recherchieren.
Welche Pegel hast du denn auf dem seriellen Anschluss?. Das Servo direkt an einen rs232 Pegel zu hängen ist allerdings eine riskante Sache und wenn das wirklich so funktionieren sollte, dann ist das ein Zufallstreffer, ebenso kann die Servoelektronik Schaden nehmen. MINUS 15 V ist für TTL schon ein Hammer. + 15 V aber auch. Nicht jedes Servo verkraftet das.
Zwei Schutzdieoden und ein Strombegrenzungswiderstand wären das Minimum einer Beschaltung.
Ohne Anschluss der Masse, kannst du niemal eine störsichere Übertragung realisieren.
Wie genau funktioniert das jetzt eigenlich?
* Wie fein kannst du abstufen?
* Wie breit streuen die Impulszeiten bei einer bestimmten Vorgabe?
Hast du schon mit Servo getestet? Wie ruhig sind die Servos, knurren und brummen sie in bestimmten Stellungen?
Wenn du das Signal innerhlb von 10 Sekunden von 1 ms kontinuierlich bis 2 ms und wieder zurückverstellst, wie folgt das Servo? Ruckt es? Erkennt man eine Rasterung?
grüsse
Das Oszi hat natürlich ein Raster, das sieht man nur auf dem Foto nicht ;-) Also mit dem geht das natürlich...Zitat:
Kannst du so das Impuls zu Pause bzw. 1ms zu 20ms Verhältniss nachmessen?
@vohopri
Mit dem Pegel hast du natürlich recht. Wenn ich mir das so überlege war es anscheinent wirklich Zufall dass das Servo keinen Schaden nahm..
Ich werde morgen mal ein Video mit Ton machen und die von dir vorgeschlagenen Tests aufnehmen. Da kannst du dir dann sprichwörtlich selbst ein Bild machen
So, hab nun mal ein Video erstellt.
Das von mir verwendete Servo ist ein billiges altes Multiplex Servo.
Auf Wunsch kann ich auch noch andere Servos testen... u.a. Hitec digital.
Das Servo wird in 10s von einer Endstellung in die Andere und zurück bewegt.
Der verwendete Timer nimmt Werte bis 1µs an. (so viel zur Abstufung)
Wie genau er dann noch arbeitet habe ich allerdings mangels Zeit noch nicht geprüft.
http://video.google.de/videoplay?doc...86741785920351
Tolles Video - sehr überzeugend.
1 µs Abstufung ist sicher um einiges genauer als diese Servos das reproduzieren können, also mehr als gut genug.
grüsse,
Hannes