Motor a motorová skupina#

Zavedení#

Motory a skupiny motorů řídí pohyb částí robota. Motor ovládá jeden nakonfigurovaný inteligentní motor, zatímco MotorGroup ovládá více nakonfigurovaných inteligentních motorů společně, takže se pohybují v tandemu. Motory a skupiny motorů lze použít ke zvedání ramene, otáčení čelistí, otáčení kola nebo pohybu jiné části konstrukce. Dva nebo čtyři motory mohou spolupracovat jako pohon pro pohyb a otáčení celého robota.

Každý motor nebo skupina motorů se konfiguruje v okně Zařízení. V závislosti na sestavení se názvy motorů a skupin motorů mohou měnit. Tato stránka používá jako příklady názvů motor_1 a motor_group_1 V případě potřeby je nahraďte vlastními nakonfigurovanými názvy.

Motor VEX V5 zobrazující směr otáčení vpřed označený znaménkem plus a šipkou označující, že se otáčí doleva nebo proti směru hodinových ručiček. Motor VEX V5 ukazuje opačný směr otáčení, který je označen znaménkem mínus a šipkou označující, že se otáčí doprava, neboli ve směru hodinových ručiček.

Ve výchozím nastavení FORWARD otáčí motor proti směru hodinových ručiček a REVERSE otáčí motor ve směru hodinových ručiček. Pokud je motor nastaven na zpětný chod, směr otáčení se přepne.

Existuje mnoho způsobů, jak kódovat motory a skupiny motorů. Níže je uveden seznam všech metod pro motory a skupiny motorů:

Akce – Zastavení a roztočení motorů a skupin motorů.

  • spin — Roztočí motor nebo skupinu motorů dopředu nebo dozadu navždy.

  • spin_for — Roztočí motor nebo skupinu motorů o určitou vzdálenost.

  • spin_to_position — Otočí motor nebo skupinu motorů do určité polohy.

  • stop — Zastaví otáčení motoru nebo skupiny motorů.

Mutátory – Upravte nastavení motoru a skupiny motorů.

  • set_position — Změní aktuální polohu motoru nebo skupiny motorů na novou hodnotu.

  • set_velocity — Říká motoru nebo skupině motorů, jak rychle se má otáčet.

  • set_stopping — Nastavuje, jak se motor nebo skupina motorů zastaví: brzděním, doběhem nebo pozastavením.

  • set_max_torque — Nastavuje, jak silně se motor nebo skupina motorů může otáčet.

  • set_timeout — Nastavuje, jak dlouho se bude motor nebo skupina motorů snažit dokončit pohyb.

  • set_reversed — Změní, zda se směr otáčení motoru obrátí.

  • reset_position — Změní aktuální pozici motoru nebo skupiny motorů na 0.

Gettery – Kontrola stavu motoru a skupiny motorů.

  • is_done — Vrátí jako booleovskou hodnotu, zda byl pohyb motoru nebo skupiny motorů dokončen.

  • is_spinning — Vrátí, zda se motor nebo skupina motorů otáčí, jako booleovskou hodnotu.

  • position — Vrátí aktuální pozici motoru nebo skupiny motorů.

  • velocity — Vrátí rychlost otáčení motoru nebo skupiny motorů.

  • current — Vrátí, kolik elektrického proudu motor nebo skupina motorů spotřebovává.

  • power — Vrátí, kolik energie motor nebo skupina motorů spotřebovává.

  • torque — Vrátí hodnotu krouticího momentu, který motor nebo skupina motorů používá.

  • efficiency — Vrátí, jak efektivně motor nebo skupina motorů využívá energii.

  • temperature — Vrátí teplotu motoru nebo skupiny motorů.

  • count — Vrátí počet motorů ve skupině motorů.

  • get_timeout — Vrátí aktuální dobu trvání časového limitu motoru nebo skupiny motorů.

Konstruktory – Ruční inicializace a konfigurace motorů a skupin motorů.

Akce#

spin#

spin roztočí motor nebo skupinu motorů dopředu nebo dozadu navždy. Motor nebo skupina motorů se bude otáčet, dokud nedostane jinou akci, například se roztočí jiným směrem nebo se zastaví.

Usage:
motor_1.spin(direction, velocity, units)

Parametry

Popis

direction

Směr otáčení motoru nebo skupiny motorů: FORWARD nebo REVERSE.

velocity

Volitelné. Rychlost otáčení od 0 % do 100 % při použití PERCENTMůže to být celé číslo integer nebo desetinné číslo (float).

units

Volitelné. Jednotka rychlosti:

  • PERCENT
  • RPM (výchozí) — Otáčky za minutu
  • VelocityUnits.DPS — Stupně za sekundu
  • VOLT — Napětí

# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()

spin_for#

spin_for roztočí motor nebo skupinu motorů o určitou vzdálenost. Otáčení je relativní vzhledem k aktuální poloze motoru nebo skupiny motorů. Projekt počká, dokud se motor nebo skupina motorů nedotočí, než se spustí další řádek kódu.

Usage:
motor_1.spin_for(direction, angle, units, velocity, units_v, wait)

Parametry

Popis

direction

Směr otáčení motoru nebo skupiny motorů: FORWARD nebo REVERSE.

angle

Vzdálenost, o kterou se motor nebo skupina motorů otočí. Může to být integer nebo desetinné číslo (float).

units

Volitelné. Jednotka vzdálenosti: DEGREES (výchozí) nebo TURNS.

velocity

Volitelné. Rychlost otáčení od 0 % do 100 % při použití PERCENTMůže to být celé číslo integer nebo desetinné číslo (float).

units_v

Volitelné. Jednotka rychlosti:

  • PERCENT
  • RPM (výchozí) — Otáčky za minutu

wait

Volitelné.

  • wait=True (výchozí) — Projekt počká, dokud se motor nebo skupina motorů nedotočí, než se spustí další řádek kódu.
  • wait=False — Další řádek kódu se spustí okamžitě.

# Spin the motor forward once, then reset
motor_1.spin_for(FORWARD, 90, DEGREES)
wait(1, SECONDS)
motor_1.spin_for(REVERSE, 90, DEGREES)

spin_to_position#

spin_to_position otočí motor nebo skupinu motorů do určité polohy.

Poloha motoru nebo skupiny motorů udává, o kolik se otočil, měřeno v DEGREES nebo TURNSJedna otáčka se rovná 360 stupňům. Na začátku projektu je poloha motoru nebo skupiny motorů nastavena na 0 stupňů. Polohu motoru nebo skupiny motorů lze také nastavit metodou set_position.

Hodnoty polohy jsou absolutní. To znamená, že směr otáčení závisí na aktuální poloze motoru nebo skupiny motorů.

Například pokud se motor nebo skupina motorů spustí na 0 stupních a otočí se do polohy 720 stupňů, otočí se o dvě otáčky dopředu. Pokud se poté otočí do polohy 360 stupňů, otočí se o jednu otáčku dozadu, protože 360 ​​je menší než 720.

Usage:
motor_1.spin_to_position(rotation, units, velocity, units_v, wait)

Parametry

Popis

rotation

Hodnota polohy, do které se motor nebo skupina motorů otočí. Může to být integer nebo desetinné číslo (float).

units

Jednotka polohy: DEGREES nebo TURNS.

velocity

Volitelné. Rychlost otáčení od 0 % do 100 % při použití PERCENTMůže to být celé číslo integer nebo desetinné číslo (float).

units_v

Volitelné. Jednotka rychlosti:

  • PERCENT
  • RPM — Otáčky za minutu
  • VelocityUnits.DPS — Stupně za sekundu

wait

Volitelné.

  • wait=True (výchozí) — Projekt počká, dokud se motor nebo skupina motorů nedotočí, než se spustí další řádek kódu.
  • wait=False — Další řádek kódu se spustí okamžitě.

# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)

stop#

stop zastaví otáčení motoru nebo skupiny motorů.

Usage:
motor_1.stop(mode)

Parametry

Popis

mode

Volitelné. Jak se motor nebo skupina motorů zastaví:

  • BRAKE — Okamžité zastavení.
  • COAST — Zpomalení do úplného zastavení.
  • HOLD — Okamžitě zastavení a udržení polohy motoru.

# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()

Mutátory#

set_position#

Poloha motoru nebo skupiny motorů udává, o kolik se otočil, měřeno v DEGREES nebo TURNSJedno otočení se rovná 360 stupňům. set_position změní aktuální polohu motoru nebo skupiny motorů na novou hodnotu.

Například pokud se motor nebo skupina motorů otočily o 180 stupňů, nastavení polohy na 0 stupňů resetuje tuto polohu ze 180 na 0 stupňů. Motor nebo skupina motorů se pak mohou otáčet do pozic na základě této nové hodnoty.

Usage:
motor_1.set_position(position, units)

Parametry

Popis

position

Hodnota pozice, která se má nastavit pro motor nebo skupinu motorů. Může to být integer nebo desetinné číslo (float).

units

Volitelné. Jednotka polohy: DEGREES (výchozí) nebo TURNS.

# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)

set_velocity#

set_velocity určuje rychlost otáčení motoru nebo skupiny motorů. Vyšší procento způsobí, že se motor nebo skupina motorů otáčí rychleji, a nižší procento způsobí, že se motor nebo skupina motorů otáčí pomaleji.

Každý projekt začíná s každým motorem nebo skupinou motorů, které se standardně otáčí rychlostí 50 %.

Poznámka: Vyšší rychlost způsobí, že se motor nebo skupina motorů otáčí rychleji, ale může to být méně přesné. Nižší rychlost způsobí, že se motor nebo skupina motorů otáčí pomaleji, ale může to být přesnější.

Usage:
motor_1.set_velocity(velocity, units)

Parametry

Popis

velocity

Rychlost otáčení od 0 % do 100 % při použití PERCENTMůže to být celé číslo integer nebo desetinné číslo (float).

units

Volitelné. Jednotka rychlosti:

  • PERCENT
  • RPM (výchozí) — Otáčky za minutu
  • VelocityUnits.DPS — Stupně za sekundu

# Spin forward at the default velocity
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)

# Spin slower
motor_1.set_velocity(20, PERCENT)
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)

# Spin faster
motor_1.set_velocity(100, PERCENT)
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)

set_stopping#

set_stopping nastavuje, jak se motor nebo skupina motorů zastaví: brzděním, doběhem nebo pozastavením.

Usage:
motor_1.set_stopping(mode)

Parametry

Popis

mode

Jak se motor nebo skupina motorů zastaví:

  • BRAKE — Okamžité zastavení.
  • COAST — Zpomalení do úplného zastavení.
  • HOLD — Okamžitě zastavení a udržení polohy motoru.

Pokud se tato metoda nepoužije, motor při zastavení použije BRAKE.

set_max_torque#

Točivý moment ukazuje, jak silně může motor nebo skupina motorů tlačit nebo táhnout během otáčení.

set_max_torque nastavuje maximální krouticí moment, který může motor nebo skupina motorů použít.

Vyšší procento umožňuje motoru nebo skupině motorů tlačit silněji, například při zvedání těžkého předmětu. Nižší procento omezuje, jak silně může motor nebo skupina motorů tlačit. To může pomoci chránit robota, pokud se motor nebo skupina motorů zasekne nebo dosáhne konce možného pohybu.

Každý projekt začíná s výchozím nastavením krouticího momentu každého motoru nebo skupiny motorů na 50 %.

Usage:
motor_1.set_max_torque(value, units)

Parametry

Popis

value

Maximální točivý moment, který může motor nebo skupina motorů použít. Může to být integer nebo desetinné číslo (float).

units

Volitelné. Jednotka točivého momentu:

  • PERCENT
  • TorqueUnits.NM (výchozí) — Newtonmetry
  • TorqueUnits.INLB — Palce-libry
  • CurrentUnits.AMP

set_timeout#

set_timeout nastavuje, jak dlouho se bude motor nebo skupina motorů pokoušet dokončit pohyb. Pokud motor nebo skupina motorů nedokáže v tomto čase dokončit pohyb, přestane se snažit a přesune se na další řádek kódu. Tím se zabrání tomu, aby se motor nebo skupina motorů zasekly na pohybu.

Usage:
motor_1.set_timeout(value, units)

Parametry

Popis

value

Doba, po kterou se motor nebo skupina motorů může pokusit dokončit pohyb. Může se jednat o kladné celé číslo integer nebo desetinné číslo (float).

units

Volitelné. Jednotka času:

  • SECONDS
  • MSEC (výchozí) — Milisekundy

set_reversed#

set_reversed mění, zda se směr otáčení motoru obrací. Tato metoda funguje stejně jako nastavení parametru reverse na True při konstrukci Motor.

Poznámka: Tato metoda bude fungovat pouze s motorem, nikoli se skupinou motorů.

Usage:
motor_1.set_reversed(value)

Parametry

Popis

value

Zda je směr otáčení motoru obrácen:

  • True — Obrací směr otáčení motoru.
  • False — Vrátí směr otáčení motoru na výchozí hodnotu.

reset_position#

reset_position změní aktuální polohu motoru nebo skupiny motorů na 0.

Usage:
motor_1.reset_position()

Parametry

Popis

Tato metoda nemá žádné parametry.

Gettery#

is_done#

is_done vrací booleovskou hodnotu, zda je pohyb motoru nebo skupiny motorů dokončen. Tuto hodnotu lze použít k řízení načasování dalších chování na základě pohybu motoru.

  • True — Pohyb motoru nebo skupiny motorů je dokončen.

  • False — Motor nebo skupina motorů se stále pohybuje.

Tato metoda spolupracuje s následujícími metodami Motion, které mají parametr wait : spin_for a spin_to_position.

Usage:
motor_1.is_done()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Drive forward until the motor is done spinning
motor_1.spin_for(FORWARD, 200, wait=False)
while True:
  if motor_1.is_done():
    drivetrain.stop()
  else:
    drivetrain.drive(FORWARD)

is_spinning#

is_spinning vrací booleovskou hodnotu, zda se motor nebo skupina motorů otáčí. Tuto hodnotu lze použít k řízení načasování dalších chování na základě pohybu motoru.

  • True — Motor nebo skupina motorů se otáčí.

  • False — Motor nebo skupina motorů se neotáčí.

Tato metoda spolupracuje s následujícími metodami Motion, které mají parametr wait : spin_for a spin_to_position.

Usage:
motor_1.is_spinning()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Drive forward until the motor is done spinning
motor_1.spin_for(FORWARD, 200, wait=False)
while True:
  if motor_1.is_spinning():
    drivetrain.drive(FORWARD)
  else:
    drivetrain.stop()

position#

Poloha motoru nebo skupiny motorů udává, o kolik se otočil, měřeno v DEGREES nebo TURNSJedna otáčka se rovná 360 stupňům. position vrací aktuální polohu motoru nebo skupiny motorů.

Na začátku projektu je poloha motoru nebo skupiny motorů nastavena na 0 stupňů. Pokud se motor nebo skupina motorů otočí o jednu otáčku dopředu, poloha bude 360 ​​stupňů neboli 1 otáčka. Pokud se motor nebo skupina motorů otočí opačným směrem, poloha bude záporná.

Usage:
motor_1.position(units)

Parametry

Popis

units

Volitelné. Jednotka pro vrácení polohy motoru nebo skupiny motorů v: DEGREES (výchozí) nebo TURNS.

# Display the motor's position after spinning
brain.screen.print(motor_1.position())
brain.screen.next_row()

motor_1.spin(FORWARD)
wait(1, SECONDS)
brain.screen.print(motor_1.position())

motor_1.stop()

velocity#

velocity vrací rychlost otáčení motoru nebo skupiny motorů v procentech od -100 % do 100 % nebo v otáčkách za minutu od -127 ot/min do 127 ot/min.

Kladná hodnota znamená, že motor nebo skupina motorů se otáčí dopředu. Záporná hodnota znamená, že se otáčí dozadu.

Usage:
motor_1.velocity(units)

Parametry

Popis

units

Volitelné. Jednotka rychlosti, která se má vrátit:

  • PERCENT
  • RPM (výchozí) — Otáčky za minutu
  • VelocityUnits.DPS — Stupně za sekundu

current#

current vrací množství elektrického proudu spotřebovaného motorem nebo skupinou motorů, měřeno v ampérech od 0,0 do 1,2 A. Proud je množství elektřiny protékající motorem nebo skupinou motorů.

Vyšší hodnota proudu znamená, že motor nebo skupina motorů spotřebovává více elektrického proudu. K tomu může dojít, když motor nebo skupina motorů zvedá něco těžkého, tlačí na nějaký předmět nebo se snaží pohnout zaseknutým předmětem.

Toto lze použít ke kontrole, zda motor nebo skupina motorů během pohybu nemá problémy. Pokud proud zůstává vysoký, motor se může zahřívat nebo méně efektivně využívat energii.

Usage:
motor_1.current(units)

Parametry

Popis

units

Volitelné. Aktuální jednotka, která se má vrátit:

  • CurrentUnits.AMP (výchozí) — Amps

power#

power vrací množství energie spotřebované motorem nebo skupinou motorů, měřené ve wattech od 0,0 do 22,0 W. Výkon ukazuje, jak rychle motor nebo skupina motorů spotřebovává energii.

Vyšší hodnota výkonu znamená, že motor nebo skupina motorů spotřebovává energii rychleji. K tomu může dojít, když motor nebo skupina motorů zvedá něco těžkého, tlačí na nějaký předmět nebo se snaží pohnout zaseknutým předmětem.

Toto lze použít k porovnání pohybů nebo ke kontrole, zda motor či skupina motorů nemají problémy. Pokud výkon zůstává vysoký, motor se může zahřívat nebo méně efektivně využívat energii.

Usage:
motor_1.power(units)

Parametry

Popis

units

Volitelné. Vracená jednotka výkonu:

  • PowerUnits.WATT (výchozí) — Watt

torque#

Točivý moment ukazuje, jak silně se motor nebo skupina motorů otáčí, tlačí nebo táhne během otáčení.

torque vrací hodnotu točivého momentu, který motor nebo skupina motorů používá, měřeno v palcích-librách (InLb) od 0,0 do 22,0 nebo v Newtonmetrech (Nm) od 0,0 do 2,1.

Vyšší hodnota točivého momentu znamená, že motor nebo skupina motorů tlačí nebo táhne silněji. K tomu může dojít, když motor nebo skupina motorů zvedá něco těžkého, tlačí na nějaký předmět nebo se snaží pohnout zaseknutým předmětem.

To lze použít ke kontrole, zda motor nebo motorická skupina má potíže, nebo k porovnání, kolik tlaku potřebují různé pohyby.

Pro nastavení točivého momentu motoru nebo skupiny motorů použijte set_max_torque.

Usage:
motor_1.torque(units)

Parametry

Popis

units

Jednotka krouticího momentu, která se má vrátit:

  • TorqueUnits.NM (výchozí) — Newtonmetry
  • TorqueUnits.INLB — Palce-libry

efficiency#

efficiency vrací, jak efektivně motor nebo skupina motorů využívá energii, v procentech od 0 % do 100 %.

Účinnost ukazuje, kolik energie motoru nebo skupiny motorů se využívá k pohybu. Vyšší hodnota účinnosti znamená, že se k pohybu využívá více energie motoru nebo skupiny motorů. Nižší hodnota účinnosti může nastat, když motor nebo skupina motorů pracuje intenzivně, ale příliš se nepohybuje, například když je zaseknutý nebo tlačí na nějaký předmět.

To lze použít k porovnání pohybů nebo ke kontrole, zda motor nebo skupina motorů plýtvá energií, místo aby ji využívala k pohybu.

Usage:
motor_1.efficiency(units)

Parametry

Popis

units

Volitelné. Jednotka účinnosti, která se má vrátit:

  • PERCENT (výchozí)

temperature#

temperature vrací teplotu motoru nebo skupiny motorů.

Teplota motoru ukazuje, jak je motor nebo skupina motorů zahřátý. Vyšší teplota znamená, že se motor nebo skupina motorů během provozu zahřívá. Motor by měl zůstat pod 55 °C, aby fungoval na plný výkon.

Pokud se motor nebo motorová skupina příliš zahřeje, sníží svůj maximální proud, aby se chránil. Při 70 °C se motor zastaví, dokud se neochladí.

Toto lze použít ke kontrole, zda se motor nebo skupina motorů příliš nezahřívá během opakovaných pohybů, dlouhých jízd nebo když tlačí na nějaký předmět.

Usage:
motor_1.temperature(units)

Parametry

Popis

units

Volitelné. Jednotka teploty, která se má vrátit:

  • TemperatureUnits.CELSIUS (výchozí)
  • TemperatureUnits.FAHRENHEIT
  • PERCENT

count#

count vrací počet motorů ve skupině motorů.

Poznámka: Tato metoda bude fungovat pouze se skupinou motorů.

Usage:
motor_group_1.count()

Parametry

Popis

Tato metoda nemá žádné parametry.

get_timeout#

get_timeout vrací aktuální hodnotu timeout motoru nebo skupiny motorů v milisekundách.

Usage:
motor_1.get_timeout()

Parametry

Popis

Tato metoda nemá žádné parametry.

Konstruktéři#

Konstruktory se používají k ručnímu vytvoření Motor a MotorGroup mimo okno Devices.

Motor#

Motor vytvoří motor.

Usage:
Motor(port, gears, reverse)

Parametr

Popis

port

Inteligentní port, ke kterému je motor připojen, zapsaný jako Ports.PORTx, kde x je číslo portu.

gears

Volitelné. Převodový poměr motoru:

  • GearSetting.RATIO_1_1 (výchozí) — poměr 1:1
  • GearSetting.RATIO_2_1 — poměr 2:1
  • GearSetting.RATIO_3_1 — poměr 3:1

reverse

Volitelné. Nastavuje, zda se směr otáčení motoru obrací:

  • True — FORWARD se otáčí ve směru hodinových ručiček.
  • False (výchozí) — FORWARD se otáčí proti směru hodinových ručiček.

# Create a Motor in Port 1 with default values
motor_1 = Motor(Ports.PORT1)

"""
Create a motor with the following values:
- In Port 1
- 2:1 ratio
- Reversed
"""
motor_1 = Motor(Ports.PORT1, GearSetting.RATIO_2_1, True)

MotorGroup#

MotorGroup vytvoří skupinu motorů.

Usage:
MotorGroup(motors)

Parametr

Popis

motors

Názvy dříve vytvořených objektů Motor Motor které mají být zařazeny do skupiny motorů, oddělené čárkami (,). Do skupiny lze přidat až Motor.

# Create the Motors
motor_1 = Motor(Ports.PORT1)
motor_2 = Motor(Ports.PORT2)

# Create a Motor Group
motor_group_1 = MotorGroup(motor_1, motor_2)