Ga naar hoofdinhoud

Motoren

De Motors-klasse bestuurt de twee motoren van Eliobot en biedt methoden om met variabele snelheid of over een precieze afstand te bewegen.

Initialisatie

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

Continue bewegingen

Deze methoden starten de beweging totdat er een stop wordt gemaakt.

move_forward(speed=100)

Ga rechtdoor.

motors.move_forward(speed=80)

move_backward(speed=100)

Ga direct terug.

motors.move_backward(speed=80)

turn_left(speed=100)

Draai links (linkerwiel naar achteren, rechterwiel naar voren).

motors.turn_left(speed=60)

turn_right(speed=100)

Draai rechts (rechterwiel achteruit, linkerwiel vooruit).

motors.turn_right(speed=60)

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

Draai op zijn plaats (de twee wielen tegenover elkaar).

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)

Draait alleen het linkerwiel naar voren of naar achteren.

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)

Draait alleen het rechterwiel naar voren of naar achteren.

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

Stopt

motor_stop()

Onmiddellijke stop (actieve rem).

motors.motor_stop()

slow_stop()

Progressieve stop (freewheels).

motors.slow_stop()

Afstand-/hoekbewegingen

Deze methoden houden rekening met de accuspanning om de benodigde duur te schatten.

move_one_step(direction, distance=20)

Ga een bepaalde afstand in centimeters vooruit of achteruit.

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

turn_one_step(direction, angle=90)

Roteert een bepaalde hoek in graden.

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

Batterij

get_battery_voltage()

Retourneert de huidige accuspanning in volt.

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

Kleuren (utiliteit)

rgb_color_wheel(wheel_pos) (statische methode)

Genereert een RGB-kleur vanuit een positie (0–255) op het kleurenwiel.

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

Fysieke parameters

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

Snelheidsnotities

  • Snelheid wordt uitgedrukt als een percentage: 0 tot 100.
  • Onder 15 voegt de bibliotheek automatisch 15 toe om ervoor te zorgen dat de motoren starten.
  • De waarde wordt intern omgezet naar PWM (0–65535).