Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:4e4th:4e4th:start:msp430g2553_experimente:servotester

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
projects:4e4th:4e4th:start:msp430g2553_experimente:servotester [2014-07-18 02:32] – [Wie lange dauert das dann?] mkaprojects:4e4th:4e4th:start:msp430g2553_experimente:servotester [2014-07-18 02:39] – [Testprogramm für 8 Servos] mka
Zeile 12: Zeile 12:
 ===== Testprogramm für 8 Servos ===== ===== Testprogramm für 8 Servos =====
  
-Am Steuereingang werden [[http://de.wikipedia.org/wiki/Pulsweitenmodulation|Rechteckpulse]] im 50Hz Takt erwartet, also ca. alle 20ms. Annähernd Vollausschlag in die eine Richtung liegt vor bei einem [[http://www.electronicsplanet.ch/Roboter/Servo/intern/intern.htm|Puls]] von 1ms Breite, in die andere Richtung bei 2ms. Das ließe sich mit der PWM-Funktion der MCU machen, doch dann wäre bei zwei Servos Schluß, da nur zwei Timer da sind. Für eine ganze Reihe Servos muss ein Software-Timer her. Das Timing ist ja eher gemütlich, und so geht das bequem in high level Forth. +Am Steuereingang werden [[http://de.wikipedia.org/wiki/Pulsweitenmodulation|Rechteckpulse]] im 50Hz Takt erwartet, also ca. alle 20ms. Annähernd Vollausschlag in die eine Richtung liegt vor bei einem [[http://www.electronicsplanet.ch/Roboter/Servo/intern/intern.htm|Puls]] von 1ms Breite, in die andere Richtung bei 2ms. Das ließe sich mit der PWM-Funktion der MCU machen, doch dann wäre bei zwei Servos Schluß, da nur zwei Timer da sind. Für eine ganze Reihe Servos muss ein Software-Timing her. Das Timing ist ja eher gemütlich, und so geht das bequem in high level Forth. 
  
 Im Testprogramm erhalten die Servos ihren Puls einfach nacheinander. Auf diese Weise passen bis zu 9 Servo-Pulse in die 50Hz Wiederholrate, also die 20 ms Lücke die ein Servo erwartet. Das ist schnell genug für viele Modellbau Zwecke denke ich, zumal die Stellzeit so eines Servos für eine volle Fahrt vom linken zum rechten Anschlag ja im Bereich 500ms liegt .  Im Testprogramm erhalten die Servos ihren Puls einfach nacheinander. Auf diese Weise passen bis zu 9 Servo-Pulse in die 50Hz Wiederholrate, also die 20 ms Lücke die ein Servo erwartet. Das ist schnell genug für viele Modellbau Zwecke denke ich, zumal die Stellzeit so eines Servos für eine volle Fahrt vom linken zum rechten Anschlag ja im Bereich 500ms liegt . 
Zeile 126: Zeile 126:
  
 ==== Anmerkung ==== ==== Anmerkung ====
-Ein anderer Ansatz, die Servos praktisch gleichzeitig anzusteuern, wurde auch ausprobiert. Die Pulsbreite wure in einer Variablen abgelegt, zehn davon in einem Feld. Diese wurden zyklisch herunter gezählt, und beim Nulldurchgang wurde der zugehärige Puls beendet. Dieses Verfahren war aber in high level Forth zu langsam. Dabei konnten nur 3 Positionen am Servo gestellt werdeneine viel zu geringe zeitliche Auflösung also. Hier kommt man also an eine Grenze des 4e4th Forth auf dieser MCU. +Ein anderer Ansatz, die Servos praktisch gleichzeitig anzusteuern, wurde auch ausprobiert. Die Pulsbreite wurde in einer Variablen abgelegt, zehn davon in einem Feld. Diese wurden zyklisch herunter gezählt, um beim Nulldurchgang den zugehörigen Puls zu beenden. Dieses Verfahren, Software-Zähler mit preset zu bauen und diese zu pollen, war aber in high level Forth zu langsam. Damit konnten nur ca. verschiedene Positionen am Servo eingestellt werden. Es wurde also eine viel zu geringe zeitliche Auflösung erzielt. Hier kommt man also an eine Grenze des 4e4th Forth auf dieser MCU. 
  
-Im Rahmen der grundlegenden Experimente mit einer MCU wurde darauf verzichtet hier assemblierten, interrupt-getriebenen Code auszuarbeiten, der schnell genug für diesen Ansatz wäre. Denn es ging um das Prinzip der Servoansteuerung, und durchaus auch darum solche Grenzen zu erfahren. +Im Rahmen der grundlegenden Experimente wurde darauf verzichtet hier assemblierten, interrupt-getriebenen Code auszuarbeiten, der schnell genug für diesen Ansatz wäre. Denn es ging um das Prinzip der Servoansteuerung, und durchaus auch darum solche Grenzen zu erfahren. 
  
projects/4e4th/4e4th/start/msp430g2553_experimente/servotester.txt · Zuletzt geändert: 2018-05-02 17:58 von mka