-
-
Ich würde mal tippen dass Die Signale die Am LPT ausgegeben werden dem Servo nicht passen.
Arbeitet dein Programm mit einem 100ns Intervall für die Zeitmessung?
Oder einfach mit dem 0815 1ms intervall?
Besorg dir die exakten Signale die das Servo braucht.
So wird das Rechteckpulssignal bei manchen mit 50Hz gebraucht und andere wieder mit 60Hz.
Auch die Pulsbreiten sind von Typ zu Typ unterschiedlich.
Am Besten ist du schaust dir die Signale eines passenden Empfängers auf einem Oszi an.
Normalerweise liegt die Mittelstellung eines Servos bei ca. 1,5ms Pulsbreite.
Die Pulsbreiten bewegen sich im Bereich von 1ms bis 2ms.
Es gibt aber aber bei der Pulsbreite von Hersteller zu Hersteller gewisse Abweichungen.
Am Besten ist du schaust dass du zuerst die richtige Frequenz findest. (60 oder 50Hz.)
Als einfach mal ein 50Hz-Signal mit 1ms Pulsbreite ausgeben und dann ein 60Hz-Signal mit 1ms Pulsbreite.
Bei der Einstellung bei der das Servo ruhig bleibt bleibst du dann.
Wenn du die Frequenz hast kannst du dann ausprobieren welche Pulsbreiten dein Servo verarbeiten kann.
Am Besten lässt du das Steuerprogramm unter Dos laufen.
(Da läuft das Programm konstanter.)
Wenn du aber Windows verwenden mußt schau dass KEINE anderen Programme laufen.
Das heißt:
Kein MP3-Player, kein Internet oder anderes Netzwerk, kein Antivirus Programm, keine Firewall oder was sonst noch so im Hintergrund läuft.
Also nur dass was für das laufen des Programms umbedingt benötigt wird.
Und trotzdem kann es immer wieder zu "zuckungen" des Servos kommen.
Der Grund ist der dass Windows in keinster Weise echtzeitfähig ist und desswegen Zeitkritische Signale nicht immer rechtzeitig abgearbeitet werden können.
Es gibt zwar Programme die solche Probleme kompensieren können, aber die sind für eine Privatperson unerschwinglich.
-
Super-Moderator
Robotik Visionär
Vielleicht kann man auch eine WAV-File zusammeneditieren (mit Träger)und mit einem Schmitt am analogausgang wieder schön rechteckisieren. Müßt ich mal mit Oszi gucken, ob das so geht. mfg
-
Das dürfte zu ungenau sein.
Weiters binn ich jetzt durch Versuche darauf gekommen dass man die Signale unter Windows nicht Zeitgerecht ausgeben kann.
Da kommt es immer wieder vor dass das Signal etwas zu Spät kommt.
Die einzig venünftigen Ergebnisse hab ich unter DOS erhalten.
Unter Windows hatte ich immer dass Problem dass das Servo einfach herumzappelte.
(Auch in der Dosbox)
erik.rostock kann es so machen:.
Entweder Dos installieren oder über einen Mykrokontroller arbeiten.
Das mit dem Mikrokontroller könnte so funktionieren:
Du giebst an den Mikrokontroller über eine Schnittstelle Binär die Position aus die angefahren werden soll und der Miikrokontroller kiebt das passende Signal an das Servo weiter bis er einen neuen Befehl erhält.
Damit minimierst du die Probleme die du unter Windows hast.
mfg Bastlwastl
-
Am sinnvollsten ist es wenn Du einen µC nimmst der die Signale für die Servos eigenständig erzeugt. Über die RS232 oder LPT-Schnittstelle verklickerst Du dem Controller welchen Servo er wo hinbewegen soll.
Windoof beherrscht solche Zeitkritischen Dinge nicht.
-
Wenn du meinen letzten Beitrag gelesen hättest, hättest du gemerkt dass ich das gleiche vorgeschlagen hab.
(Auch wenn ich einige Rechtschreibfehler gemacht hab und mich etwas umständlich ausgedrückt habe.)
Das mit dem über Dos direkt ansteuern hab ich jetzt auch ausgeschlossen weil der Rechner etwas zickt bei der benötigten Geschwindigkeit.
(Hab noch nicht exakt lokalisieren können obs an der Soft- oder Hardware liegt.)
mfg Bastlwastl
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen