Der sd21 Controller wird für die Steuerung der 18 Servos verwendet.
Für die Steuerung stehen insgesamt 64 Register mit 8-Bit Breite zur Verfügung.
Jedem Servo sind dabei die drei Register High, LOW und Speed zugeordnet.
Die Pulsbreite wird in High und Low aufgeteilt und direkt in die
entsprechenden Register geschrieben. Im dritten Register wird die Winkelgeschwindigkeit gespeichert, mit der sich der Servo
seiner neuen Position nähern soll. Diese Register können zwar theoretisch auch ausgelesen werden, in der Praxis sind die gelesenen und
die geschriebenen Werte jedoch stets identisch. Deshalb kann die Servobewegung nicht über die Registereinträge verfolgt werden.
Für die Laufsteuerungen fehlen daher wichtige Feedback - Informationen über die aktuelle Beinstellung.
Abbildung 5.13:
Steuerung der Servos durch den sd21 Controller
|
|
Die Register für die Servos sind in Tripeln angeordnet. Somit ist es möglich, die Register über Segment - und Offsetadressierung
anzusprechen, wobei die Segmentadresse den ausgewählten Servo bezeichnet und die Offsetadresse eines der
drei Register High, Low oder Speed adressiert.
Die Steuerwerte werden von einem OnBoard PIC18F2220 über den I2C Bus an der Adresse 0xC2 entgegengenommen.
Auf Grund der benötigten Strommenge von 21A (siehe Abschnitt 5.2)wird der Strom für die
Servos durch separate Leitungen geführt.
Markus Seemann und Jan Ryll, Fachhochschule Regensburg 2005