Balíček brian.motors¶
Podbalíčky¶
modul brian.motors.EV3LargeMotor¶
modul brian.motors.EV3MediumMotor¶
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á:
MotorPortAlreadyInUse – When trying to create new Motor on a port that is already in use.
MotorInitializationFailedError – Pokud automatické detekování selže (motor není připojen nebo je neznámého typu).
- __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¶
modul brian.motors.MovementEnd¶
modul brian.motors.NXTMotor¶
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