Motoren

Dokumentation der Klasse

class compLib.Motor.Motor

Klasse zum Ansteuern der Motoren

static multiple_power(*arguments: tuple[int, float])

Mehrere Motoren auf eine prozentuale Leistung der Höchstgeschwindigkeit einstellen

Parameter

arguments – tuple von port, percentage

Raises

IndexError

static multiple_pulse_width(*arguments: tuple[int, float])

Setzen den Pulsbreite mehrerer Motoren in Prozent der Periode

Parameter

arguments – tuple von port, prozent

Raises

IndexError

static multiple_speed(*arguments: tuple[int, float])

Geschwindigkeit mehrerer Motoren einstellen

Parameter

arguments – tuple von port, Geschwindigkeit in Radianten pro Sekunde (rad/s)

Raises

IndexError

static power(port: int, percent: float)

Motor auf eine prozentuale Leistung der Höchstgeschwindigkeit einstellen

Parameter
  • port – Port, an welchen der Motor angesteckt ist. 0-3

  • percent – Prozentsatz der Höchstgeschwindigkeit. zwischen -100 und 100

Raises

IndexError

static pulse_width(port: int, percent: float)

Setzen den Pulsbreite eines Motors in Prozent der Periode

Parameter
  • port – Port, an welchen der Motor angesteckt ist. 0-3

  • percent – Prozent der Periode zwischen -100 und 100

Raises

IndexError

static speed(port: int, speed: float)

Geschwindigkeit des Motors einstellen

Parameter
  • port – Port, an welchen der Motor angesteckt ist. 0-3

  • speed – Drehzahl, mit der sich ein Motor dreht, in Radianten pro Sekunde (rad/s)

Raises

IndexError

Genauere Informationen

Power vs Speed vs PulseWidth

Zur ansteuerung der Motoren kann entweder Motor.power(...), Motor.speed(...) oder Motor.pulse_width(...)` verwendet werden. Der Unterschied der 3 Funktionen liegt dabei in der Einheit des 2. Parameters.

Bei Motor.power() wird dabei ein Wert zwischen -100% und 100% der maximalen Geschwindigkeit angegeben.
Motor.speed() verwendet die Encoder um die Geschwindigkeit der Motoren mittels closed-loop zu steuern. Diese Funktion sollte nur verwendet werden, wenn Motor.power() nicht zur Ansteuerung ausreicht.
Motor.pulse_width() stellt die Geschwindigkeit des Motors mittels der Pulsbreite der PWM-Steuerung des Motors ein. Diese Funktion ist so nah an der Hardware wie möglich und sollte auch nur verwendet werden, wenn es einen expliziten Grund dafür gibt.

Normal vs Multiple

Der Aufruf der funktionen kann entweder über Motor.power(port, percent) oder Motor.power((port, percent), (port, percent), ..) erfolgen. Der zweite Aufruf ermöglicht dem Entwickler dabei beide Motoren in einem Aufruf anzusteuern und bringt einen kleinen Vorteil in der Leistungsfähigkeit der Software.

Beispiele

Vorwärts fahren

Mit folgenden Programm drehen sich beide Motoren mit 50% ihrer maximalen Geschwindigkeit. Dabei ist zu beachten, dass ein Motor in die entgegengesetzte Richtung zum aneren Motor gedreht werden muss, da diese spiegelverkehrt montiert sind.

Zusätzlich ist ein time.sleep(5) notwendig, welches das Programm für 5 Sekunden pausiert. Diese Pause wird benötigt, da der Roboter automatisch alle Motoren beim Ende des Progammes deaktiviert.

from compLib.Motor import Motor
import time

Motor.power(0, -50)
Motor.power(3, 50)

time.sleep(5)