Zum Hauptinhalt springen

Motoren

Die Motors-Klasse steuert die beiden Motoren von Eliobot und bietet Methoden zur Bewegung mit variabler Geschwindigkeit oder über eine präzise Distanz.

Initialisierung​

import board
import pwmio
import analogio
from elio import Motors

AIN1 = pwmio.PWMOut(board.IO36)
AIN2 = pwmio.PWMOut(board.IO38)
BIN1 = pwmio.PWMOut(board.IO35)
BIN2 = pwmio.PWMOut(board.IO37)
vBatt_pin = analogio.AnalogIn(board.BATTERY)

motors = Motors(AIN1, AIN2, BIN1, BIN2, vBatt_pin)
ParamètrePinDescription
AIN1IO36Moteur droit, sens 1
AIN2IO38Moteur droit, sens 2
BIN1IO35Moteur gauche, sens 1
BIN2IO37Moteur gauche, sens 2
vBatt_pinBATTERYLecture de la tension batterie

Kontinuierliche Bewegungen​

Diese Methoden starten die Bewegung, bis ein Stopp aufgerufen wird.

move_forward(speed=100)​

Gehen Sie geradeaus.

motors.move_forward(speed=80)

move_backward(speed=100)​

Geh direkt zurück.

motors.move_backward(speed=80)

turn_left(speed=100)​

Nach links abbiegen (linkes Rad nach hinten, rechtes Rad nach vorne).

motors.turn_left(speed=60)

turn_right(speed=100)​

Rechts abbiegen (rechtes Rad nach hinten, linkes Rad nach vorne).

motors.turn_right(speed=60)

turn_in_place(speed=30, direction="left")​

Auf der Stelle drehen (die beiden Räder stehen sich gegenüber).

motors.turn_in_place(speed=30, direction="left")
motors.turn_in_place(speed=30, direction="right")

spin_left_wheel_forward(speed=100) / spin_left_wheel_backward(speed=100)​

Dreht nur das linke Rad vorwärts oder rückwärts.

motors.spin_left_wheel_forward(speed=50)
motors.spin_left_wheel_backward(speed=50)

spin_right_wheel_forward(speed=100) / spin_right_wheel_backward(speed=100)​

Dreht nur das rechte Rad vorwärts oder rückwärts.

motors.spin_right_wheel_forward(speed=50)
motors.spin_right_wheel_backward(speed=50)

Stoppt​

motor_stop()​

Sofortiger Stopp (aktive Bremse).

motors.motor_stop()

slow_stop()​

Progressiver Anschlag (Freiläufe).

motors.slow_stop()

Distanz-/Winkelbewegungen​

Diese Methoden berücksichtigen die Batteriespannung, um die erforderliche Dauer abzuschätzen.

move_one_step(direction, distance=20)​

Bewegen Sie sich um eine bestimmte Distanz in Zentimetern vorwärts oder rückwärts.

motors.move_one_step("forward", distance=20)
motors.move_one_step("backward", distance=10)

turn_one_step(direction, angle=90)​

Dreht einen bestimmten Winkel in Grad.

motors.turn_one_step("left", angle=90)
motors.turn_one_step("right", angle=45)

Batterie​

get_battery_voltage()​

Gibt die aktuelle Batteriespannung in Volt zurück.

voltage = motors.get_battery_voltage()
print(f"Batterie : {voltage:.2f} V")

Farben (Dienstprogramm)​

rgb_color_wheel(wheel_pos) (statische Methode)​

Erzeugt eine RGB-Farbe aus einer Position (0–255) im Farbkreis.

r, g, b = Motors.rgb_color_wheel(128)

Physikalische Parameter​

ConstanteValeurDescription
SPACE_BETWEEN_WHEELS77.5 mmÉcart entre les deux roues
WHEEL_DIAMETER33.5 mmDiamètre d'une roue
DISTANCE_PER_REVOLUTION~10.52 cmDistance par tour de roue

Geschwindigkeitshinweise​

  • Die Geschwindigkeit wird als Prozentsatz ausgedrückt: 0 bis 100.
  • Unterhalb von 15 fügt die Bibliothek automatisch 15 hinzu, um sicherzustellen, dass die Motoren starten.
  • Der Wert wird intern in PWM (0–65535) umgewandelt.