Balíček brian.motors

Podbalíčky

modul brian.motors.EV3LargeMotor

class brian.motors.EV3LargeMotor.EV3LargeMotor(port: MotorPort)

Základy: Motor

Třída pro správu a ovládání operací motoru EV3LargeMotor.

__init__(port: MotorPort)

Inicializuje novou instanci motoru EV3LargeMotor na zadaném portu.

Tento konstruktor neselže, pokud motor ještě není připojen.

Parametry:

port – Motor port to use.

modul brian.motors.EV3MediumMotor

class brian.motors.EV3MediumMotor.EV3MediumMotor(port: MotorPort)

Základy: Motor

Třída pro správu a ovládání operací motoru EV3MediumMotor.

__init__(port: MotorPort)

Inicializuje novou instanci motoru EV3MediumMotor na zadaném portu.

Tento konstruktor neselže, pokud motor ještě není připojen.

Parametry:

port – Motor port to use.

modul brian.motors.Motor

class brian.motors.Motor.Motor(port: MotorPort)

Základy: object

Třída pro správu a ovládání operací motoru.

property limits: MotorLimits

Nakonfiguruje různé limity ovladače.

Vrací:

Objekt MotorLimits, který lze použít pro konfiguraci limitů.

property motor_type: MotorType

Zkontroluje, s jakým typem motoru byl tento objekt inicializován.

Vrací:

Vlastnosti a výchozí nastavení připojeného typu motoru.

__init__(port: MotorPort)

Tries to autodetect a motor, connected to the given port and initialize a new motor class.

Parametry:

port – Motor port to use.

Vyvolá:
__del__()

Uvolní port motoru pro další použití.

close_motor()

Uvolní port motoru pro další použití.

is_connected() bool

Ověří, zda je něco připojeno k portu.

Vrací:

True, pokud byl detekován neprázdný port; jinak False.

is_ready() bool

Ověří, zda je k portu připojen správný motor a zda je připraven k ovládání.

Test pro is_connected je proveden interně, pokud vrátí false, is_ready vždy vrátí false.

Vrací:

True, pokud je motor připojen a jeho typ je správný; jinak False.

wait_until_ready(timeout_ms: int | None = None) bool

Čeká, dokud nebude motor připraven. Tato funkce je blokující.

Parametry:

timeout_ms – Maximální počet milisekund k čekání. Pokud není zadán časový limit nebo je None, funkce bude čekat neomezeně.

vrátí úspěch:
  • True: The sensor is ready.

  • False: The sensor is not ready and timeout ran out.

current_angle() int

Zjistí aktuální úhel motoru.

Vrací:

Úhel osy motoru ve stupních.

reset_angle(new_value: int = 0) None

Nastaví akumulovaný úhel na zadanou hodnotu.

Za předpokladu, že se motor nebude pohybovat, funkce current_angle() začne vracet hodnotu newValue.

Parametry:

new_value – Nová pozice motoru ve stupních.

current_speed() int

Zjistí aktuální rotační rychlost motoru.

Vrací:

Rychlost otáčení osy motoru ve stupních za sekundu.

current_torque() int

Zjistí aktuální odhad točivého momentu motoru.

Vrací:

Točivý moment motoru v milinewtonmetrech.

is_stalled() bool

Ověří, zda je motor momentálně zablokován.

Vrací:

True, pokud motor překračuje stanovený limit; jinak False.

coast() None

Nechá motor volně otáčet.

Tím se odpojí vinutí motoru.

brake() None

Pasivně zabrzdí motor.

Tím se zkratují vinutí motoru.

hold() None

Aktivně zabrzdí motor na aktuální pozici.

Tímto se motor aktivně udržuje v aktuální pozici.

run_unregulated(fraction: float) None

Spustí motor při daném zlomku maximálního dostupného napětí.

Parametry:

fraction – Hodnota mezi -1.0 a +1.0, která určuje pracovní cyklus.

run_at_voltage(volts: float) None

Spustí motor při zadaném napětí.

Parametry:

volts – Požadované napětí na motoru, ve voltech. Užitečný rozsah je od -napětí baterie do +napětí baterie (cca. -8V až +8V). Maximální rozsah této funkce je -12V až +12V.

run_at_speed(deg_per_sec: int) None

Spustí motor konstantní rychlostí.

Parametry:

deg_per_sec – Požadovaná rotační rychlost ve stupních za sekundu.

rotate_by_angle(angle: int, speed: int, timeout: int | None = None) MovementEnd

Otočí motor do nové pozice vzhledem k aktuální pozici.

Parametry:
  • angle – Úhel, o který se má motor natočit (ve stupních).

  • speed – Rychlost pro manévr, udávaná ve stupních za sekundu. Pokud je hodnota záporná, použije se její absolutní hodnota.

  • timeout – Jak dlouho čekat (v milisekundách) na dokončení manévru. Pokud je nula, funkce se okamžitě vrátí. Po uplynutí časového limitu motor nezastaví.

Vrací:

Indikuje, zda čekání na dokončení bylo úspěšné, nebo proč bylo předčasně ukončeno.

rotate_to_angle(position: int, speed: int, timeout: int | None = None) MovementEnd

Otočí motor do nové pozice vzhledem k nulové pozici.

Parametry:
  • position – Úhel, na který se má motor natočit (ve stupních).

  • speed – Rychlost pro manévr, udávaná ve stupních za sekundu. Pokud je hodnota záporná, použije se její absolutní hodnota.

  • timeout – Jak dlouho čekat (v milisekundách) na dokončení manévru. Pokud je nula, funkce se okamžitě vrátí. Po uplynutí časového limitu motor nezastaví.

Vrací:

Indikuje, zda čekání na dokončení bylo úspěšné, nebo proč bylo předčasně ukončeno.

rotate_to_angle_without_speed_control(position: int) None

Pokusí se co nejrychleji dosáhnout zadané pozice.

Tato funkce ignoruje limity rychlosti a zrychlení – tyto musíte zadávat sami pravidelným voláním funkce s novými pozicemi.

Parametry:

position – Úhel, na který se má otočit relativně k nulové pozici, ve stupních.

movement_done() bool

Zjistí, zda bylo dokončeno poslední příkazové otočení.

Vrací:

True if the motor has reached the goal. True if the maneuver had to be interrupted (e.g., motor was unplugged). False if the motor is still moving.

wait_for_movement(timeout_ms: int | None = None) MovementEnd

Čeká, až motor dokončí poslední příkaz pozice.

Parametry:

timeout_ms – Jak dlouho čekat (v milisekundách) na dokončení manévru. Pokud je nula, funkce se okamžitě vrátí. Po uplynutí časového limitu motor nezastaví.

Vrací:

Indikuje, zda čekání na dokončení bylo úspěšné, nebo proč bylo předčasně ukončeno.

modul brian.motors.MotorPort

class brian.motors.MotorPort.MotorPort(*values)

Základy: Enum

Konstanty portu motoru

A = 0

Port motoru A

B = 1

Port motoru B

C = 2

Port motoru C

D = 3

Port motoru D

modul brian.motors.MovementEnd

class brian.motors.MovementEnd.MovementEnd(*values)

Základy: Enum

Důvody ukončení pohybu.

FINISHED = 0

Pohyb dokončen

TIMED_OUT = 1

Časový limit vypršel

modul brian.motors.NXTMotor

class brian.motors.NXTMotor.NXTMotor(port: MotorPort)

Základy: Motor

__init__(port: MotorPort)

Inicializuje novou instanci motoru NXTMotor na zadaném portu.

Tento konstruktor neselže, pokud motor ještě není připojen.

Parametry:

port – Motor port to use.

Obsah modulu

exception brian.motors.MotorException

Základy: Exception

Výchozí výjimka motoru

exception brian.motors.MotorAlreadyClosedError

Základy: MotorException

Vyvoláno při pokusu o přístup k uzavřenému motoru

exception brian.motors.MotorInitializationFailedError

Základy: MotorException

Vyvoláno, když inicializace motoru selže během innit

exception brian.motors.MotorPortAlreadyInUse

Základy: MotorException

Vyvoláno při pokusu o registraci motoru nebo sondy motoru s režimem portu na již použitý port