Fernsteuer-Servos sind preiswert und sehr einfach anzusteuern.
Sie kommen deshalb sofort in die engere Wahl, wenn man einfache Bewegungsmodelle bauen möchte. Die Ansteuerung mit dem Palm ist nicht schwierig.Servos werden mit ca. 5 V betrieben. Die Betriebsspannung braucht nicht sehr konstant zu sein, da die Elektronik für Akkubetrieb ausgelegt ist. Nur für eine direkte Versorgung vom Palm aus ist der Strombedarf mit rund 100 mA erheblich zu groß. Daher benötigt man eine zusätzliche Stromquelle. Der Palm liefert nur die erforderlichen Steuersignale.
Die genaue Impulslänge bestimmt die Position. Ein Servo hat theoretisch eine unendliche Auflösung, d.h. der Motor kann in jeder gewünschten Position stehenbleiben. Allerdings muss dazu auch die Impulslänge beliebig fein eingestellt werden können. Die Wiederholfrequenz der Impulse soll bei etwa 50 Hz liegen, dieser Wert ist jedoch nicht kritisch.
Wenn die Impulse ganz ausbleiben, bleibt das Servo in der letzten Position stehen. In der Praxis reicht es, wenn man eine bestimmte Position durch etwa 30 bis 50 Impulse ansteuert. In der Zeit hat der Motor seine Sollposition erreicht und braucht dann keine weitere Ansteuerung mehr.
Ansteuerung des Servos durch die Impulslänge
Für den Palm ist es zumindest mit HotPaw Basic nicht möglich, derart kurze Impulse mit ausreichender Genauigkeit durch einfaches Ein- und Ausschalten einer Steuerleitung zu erzeugen. Aber es gibt einen Ausweg: Man kann die Impulse durch die Aussendung einzelner Bytes über die RS232-Leitung TXD erzeugen. Der Anschluss des Servos ist einfach. Man benötigt nur eine Diode, um negative Pegel vom Servo fernzuhalten. Der Eingangswiderstand eines typischen Servos wurde mit 22 k gemessen. Das bedeutet, der Low-Pegel wird ohne weitere Maßnahmen sicher eingehalten.
Anschluss eines Servos
Die Ansteuerung erfolgt durch Aussenden ganz bestimmter serieller Bytes mit der passenden Baudrate.
Leider bedeutet dies eine begrenzte Auflösung. Die Impulslänge kann nur in Stufen einzelner Bitlängen variieren. Das bedeutet nach Abb. 3.15 für eine Aussendung mit 4800 Baud, dass es fünf verschiedene Positionen gibt.
Immerhin ergibt sich damit eine Mittelstellung und je zwei Positionen links und rechts.
Die erzeugten Abstufungen der Bewegungen sind daher relativ grob. Die Konstanz der Impulslängen ist andererseits sehr gut. Das typische Zittern von Servos in funk-gesteuerten Flugmodellen gibt es hier nicht. Eine einmal angefahrene Position steht absolut ruhig.
Impulslängen bei 4800 Baud
Hier ein passendes Programm in HotPaw Basic.
Die erlaubten Bytes (240, 224, 192, 128 und 0) sind hier in einem Datenfeld gespeichert. Ein einziger Befehl reicht aus, um einen von fünf möglichen Impulsen zu erzeugen:
put #5,d(s)
Das Programm verwendet eine grafische Steuerung des Servos. Der Anwender kann den Schirm an bestimmten Stellen antippen, um eine neue Position anzusteuern. Eine einfache Balkenanzeige zeigt die aktuelle Position. Die Funktion
x = fn pen(1)
liefert die aktuelle x-Koordinate der letzten Berührung mit dem Stift. Das Ergebnis liegt im Bereich 0 bis 159. Das Programm berechnet daraus die nächstliegende Rasterposition und bestimmt so die Position s im Bereich 0 bis 4.
#Servo.bas
dim D(4)
D(0)=240: D(1)=224
D(2)=192: D(3)=128:D(4)=0
open "com1:",4800 as #5
draw -1
draw 0,40,159,10,4
draw "-2",10,20
draw "-1",40,20
draw "M",70,20
draw "+1",100,20
draw "+2",130,20
while 1
x = fn pen(1)
if x> 139 then x= 139
x=X+10
s=int (x/30)
x= 15 +s* 30
draw 0,40,x,10,7
draw x,40,159-x,10,-7
draw 0,40,159,10,4
t$= str$(s)
draw t$,75,60, 2
put #5,d(s)
a= fn wait(0.02)
wend
close #5
end
Listing 3.8 Direkte Steuerung eines Servos

Das Anzeige- und Bedienfeld
Die passende Ergänzung zu diesem Artikel:
 | AVR-RISC Embedded Software selbst entwickeln Hardcover, 240 Seiten, CD-ROM ISBN 978-3-7723-4107-6 Versandkostenfrei* direkt beim Verlag bestellen
39,95 € 
|