Motorcontroller-Firmware

From Nibo

(Difference between revisions)
Line 72: Line 72:
==PID Regler==
==PID Regler==
 +
Zur Regelung der Motoren dient folgender, modifizierter PID Regler:
 +
[[image:Regler.png]]

Revision as of 15:39, 10 July 2007

Contents

Kommandos

Die folgenden Kommandos können über die TWI Schnittstelle zum Motorcontroller geschickt werden.

Kommando Größe Byte0 Byte1 Byte2 Byte3 Byte4
Stop 1 0x00 - - - -
SetPWM 5 0x01 PWM links PWM rechts
SetSpeed 5 0x02 Soll links Soll rechts
SetParameters 4 0x03 Ki Kp Kd -
ResetOdometry 5 0x04 Odo links Odo rechts

Stop

Die beiden Motoren werden sofort abgeschaltet. Der Motorcontroller befindet sich nach dem Einschalten oder nach einem reset in diesem Zustand.

SetPWM

Das Puls/Pause-Verhältnis wird für die beiden Motoren auf die übertragenen Werte festgesetzt. Die Wertebereich liegt im Interval -1024 (-100%) bis +1024 (+100%).

SetSpeed

Der PID Regler versucht die angegebenen Soll-Drehzahlen für die Motoren zu halten. Die Geschwindigkeit wird in Ticks/Sekunde angegeben, wobei 20 Ticks einer Radumdrehung entsprechen.

SetParameters

Mit diesem Befehl werden die Konstanten für den PID-Regler in das EEPROM des Motorcontrollers übertragen. Sie bleiben auch nach einem Ausschalten des Roboters erhalten.

ResetOdometry

Dieser Befehl setzt die internen Odometriezähler auf die übertragenen Werte zurück.

Zustand

Das folgende Datenpaket kann über die TWI Schnittstelle vom Motorcontroller abgefragt werden und beschreibt den aktuellen Zustand:

Größe Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7
8 Odo links Odo rechts Geschw. links Geschw. rechts

16-Bit Werte

16-Bit Werte werden immer folgendermaßen übertragen:

Byte0 Byte1
Hi-Byte Lo-Byte

PID Regler

Zur Regelung der Motoren dient folgender, modifizierter PID Regler: image:Regler.png

Personal tools