Motor és Motorcsoport#
Bevezetés#
A motorok és motorcsoportok szabályozzák a robot egyes részeinek mozgását. Egy Motor egy konfigurált intelligens motort vezérel, míg egy MotorGroup több konfigurált intelligens motort vezérel együtt, így azok együttesen mozognak. A motorok és motorcsoportok segítségével fel lehet emelni egy kart, el lehet forgatni egy karot, meg lehet forgatni egy kereket, vagy egy másik szerkezeti részt lehet mozgatni. Két vagy négy motor működhet együtt hajtásláncként a teljes robot mozgatásához és forgatásához.
Minden motor vagy motorcsoport az Eszközök ablakban konfigurálható. A felépítéstől függően a motor- és motorcsoport-nevek változhatnak. Ez az oldal motor_1 és motor_group_1 névváltozatokat használja példaként. Szükség szerint cserélje le ezeket a saját konfigurált nevekkel.
Alapértelmezés szerint FORWARD beállítás az óramutató járásával ellentétes irányba forgatja a motort, REVERSE beállítás pedig az óramutató járásával megegyező irányba. Ha egy motor hátramenetre van állítva, akkor ezek az irányok felcserélődnek.
A motorok és motorcsoportok kódolásának számos módja van. Az alábbiakban felsoroljuk az összes motor- és motorcsoport-metódust:
Műveletek — Motorok és motorcsoportok leállítása és megforgatása.
spin— Egy motort vagy motorcsoportot előre vagy hátra forgat örökké.spin_for— Megadott távolságra megpörget egy motort vagy motorcsoportot.spin_to_position— Egy motort vagy motorcsoportot egy adott pozícióba forgat.stop— Leállítja a motor vagy motorcsoport forgását.
Mutátorok – Motoros és motoros csoportbeállítások módosítása.
set_position— A motor vagy motorcsoport aktuális pozícióját új értékre módosítja.set_velocity— Megadja egy motornak vagy motorcsoportnak a forgási sebességét.set_stopping— Beállítja, hogy egy motor vagy motorcsoport hogyan álljon le: fékezéssel, szabadonfutással vagy tartással.set_max_torque— Beállítja, hogy egy motor vagy motorcsoport milyen erősen nyomhatja forgás közben.set_timeout— Beállítja, hogy egy motor vagy motorcsoport mennyi idő alatt próbálja meg befejezni a mozgást.set_reversed— Megváltoztatja, hogy a motor forgásiránya megfordul-e.reset_position— Egy motor vagy motorcsoport aktuális pozícióját 0-ra módosítja.
Getterek – Motor és motorcsoport állapotának ellenőrzése.
is_done— Logikai értékként adja vissza, hogy a motor vagy motorcsoport mozgása befejeződött-e.is_spinning— Logikai értékként adja vissza, hogy a motor vagy a motorcsoport forog-e.position— Visszaadja a motor vagy motorcsoport aktuális pozícióját.velocity— Visszaadja a motor vagy motorcsoport forgási sebességét.current— Visszaadja, hogy mennyi elektromos áramot fogyaszt a motor vagy motorcsoport.power— Visszaadja, hogy mennyi energiát fogyaszt a motor vagy motorcsoport.torque— Visszaadja, hogy mennyi nyomatékot használ a motor vagy motorcsoport.efficiency— Visszaadja, hogy a motor vagy motorcsoport mennyire hatékonyan használja fel az energiát.temperature— Visszaadja a motor vagy motorcsoport hőmérsékletét.count— Visszaadja a motorcsoportban lévő motorok számát.get_timeout— Visszaadja a motor vagy motorcsoport aktuális időtúllépési időtartamát.
Konstruktorok – Motorok és motorcsoportok manuális inicializálása és konfigurálása.
Motor— Létrehoz egy motort.MotorGroup— Létrehoz egy motorcsoportot.
Műveletek#
spin#
spin Egy motort vagy motorcsoportot előre vagy hátra forgat örökre. A motor vagy motorcsoport addig forog, amíg egy másik műveletet nem kap, például egy másik irányba forgatást vagy leállítást.
Usage:
motor_1.spin(direction, velocity, units)
Paraméterek |
Leírás |
|---|---|
|
A motor vagy motorcsoport forgásiránya: |
|
Opcionális. A forgási sebesség 0% és 100% között, ha |
|
Opcionális. A sebesség mértékegysége:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
spin_for#
spin_for Egy motort vagy motorcsoportot egy adott távolságra megpörget. A pörgés a motor vagy motorcsoport aktuális pozíciójához képest értendő. A projekt megvárja, amíg a motor vagy motorcsoport befejezi a pörgést, mielőtt a következő kódsort futtatná.
Usage:
motor_1.spin_for(direction, angle, units, velocity, units_v, wait)
Paraméterek |
Leírás |
|---|---|
|
A motor vagy motorcsoport forgásiránya: |
|
A motor vagy motorcsoport által megpörgetett távolság. Ez lehet |
|
Opcionális. A távolság mértékegysége: |
|
Opcionális. A forgási sebesség 0% és 100% között, ha |
|
Opcionális. A sebesség mértékegysége:
|
|
Opcionális.
|
# 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 Egy motort vagy motorcsoportot egy adott pozícióba forgat.
Egy motor vagy motorcsoport pozíciója azt jelzi, hogy milyen messzire fordult el, DEGREES vagy TURNSegységben mérve. Egy fordulat 360 foknak felel meg. Egy projekt elején a motor vagy motorcsoport pozíciója 0 fokra van állítva. A motor vagy motorcsoport pozíciója a set_position metódussal is beállítható.
A pozícióértékek abszolútak. Ez azt jelenti, hogy a forgás iránya a motor vagy motorcsoport aktuális pozíciójától függ.
Például, ha a motor vagy motorcsoport 0 fokról indul, és 720 fokos pozícióba forog, akkor két fordulatot előre fog forogni. Ha ezután 360 fokos pozícióba forog, akkor egy fordulatot vissza fog forogni, mivel a 360 fok kisebb, mint 720.
Usage:
motor_1.spin_to_position(rotation, units, velocity, units_v, wait)
Paraméterek |
Leírás |
|---|---|
|
A motor vagy motorcsoport forgási pozícióértéke. Ez lehet |
|
A pozíció mértékegysége: |
|
Opcionális. A forgási sebesség 0% és 100% között, ha |
|
Opcionális. A sebesség mértékegysége:
|
|
Opcionális.
|
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
stop#
stop leállítja a motor vagy motorcsoport forgását.
Usage:
motor_1.stop(mode)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. Hogyan áll le a motor vagy motorcsoport:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
Mutátorok#
set_position#
Egy motor vagy motorcsoport pozíciója azt jelzi, hogy milyen messzire fordult el, DEGREES vagy TURNSegységben mérve. Egy fordulat 360 foknak felel meg. set_position parancs a motor vagy motorcsoport aktuális pozícióját egy új értékre módosítja.
Például, ha egy motor vagy motorcsoport 180 fokra forgott, a pozíció 0 fokra állítása visszaállítja ezt a pozíciót 180-ról 0 fokra. Ezután a motor vagy motorcsoport az új érték alapján foroghat a pozíciókba.
Usage:
motor_1.set_position(position, units)
Paraméterek |
Leírás |
|---|---|
|
A motorhoz vagy motorcsoporthoz beállítandó pozícióérték. Ez lehet |
|
Opcionális. A pozíció mértékegysége: |
# 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 megmondja a motornak vagy motorcsoportnak, hogy milyen gyorsan forogjon. Magasabb százalékos érték esetén a motor vagy motorcsoport gyorsabban, alacsonyabb százalékos érték esetén pedig lassabban forog.
Minden projekt úgy kezdődik, hogy minden motor vagy motorcsoport alapértelmezés szerint 50%-os sebességgel forog.
Megjegyzés: A nagyobb sebesség gyorsabban forogtatja a motort vagy a motorcsoportot, de kevésbé pontos lehet. Az alacsonyabb sebesség lassítja a motort vagy a motorcsoportot, de pontosabb lehet.
Usage:
motor_1.set_velocity(velocity, units)
Paraméterek |
Leírás |
|---|---|
|
A forgási sebesség 0%-tól 100%-ig, ha |
|
Opcionális. A sebesség mértékegysége:
|
# 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 beállítja, hogyan álljon le egy motor vagy motorcsoport: fékezéssel, szabadonfutással vagy tartással.
Usage:
motor_1.set_stopping(mode)
Paraméterek |
Leírás |
|---|---|
|
Hogyan fog leállni a motor vagy motorcsoport:
|
Ha ezt a módszert nem használják, a motor leálláskor BRAKE beállítást fogja használni.
set_max_torque#
A nyomaték megmutatja, hogy egy motor vagy motorcsoport milyen erősen tud nyomni vagy húzni forgás közben.
set_max_torque beállítja a motor vagy motorcsoport által használható maximális nyomatékot.
A magasabb százalékos érték lehetővé teszi a motor vagy motorcsoport erősebb tolását, például nehéz tárgy emelésekor. Az alacsonyabb százalékos érték korlátozza, hogy a motor vagy a motorcsoport milyen erősen tud tolni. Ez segíthet megvédeni a robotot, ha a motor vagy a motorcsoport elakad, vagy eléri a mozgási határát.
Minden projekt alapértelmezés szerint 50%-os nyomatékkal kezdődik.
Usage:
motor_1.set_max_torque(value, units)
Paraméterek |
Leírás |
|---|---|
|
A motor vagy motorcsoport által használható maximális nyomaték. Ez lehet |
|
Opcionális. A nyomaték mértékegysége:
|
set_timeout#
set_timeout beállítja, hogy mennyi idő alatt próbáljon meg egy motor vagy motorcsoport befejezni egy mozgást. Ha a motor vagy motorcsoport nem tudja befejezni az adott idő alatt, akkor leállítja a próbálkozást, és a kód következő sorára ugrik. Ez megakadályozza, hogy a motor vagy motorcsoport elakadjon egy mozgásnál.
Usage:
motor_1.set_timeout(value, units)
Paraméterek |
Leírás |
|---|---|
|
Az az időtartam, ameddig a motor vagy motorcsoport megpróbálhat befejezni egy mozgást. Ez lehet pozitív |
|
Opcionális. Az időegység:
|
set_reversed#
set_reversed megváltoztatja, hogy a motor forgásiránya megfordul-e. Ez a metódus ugyanúgy működik, mint ha a reverse paramétert True értékre állítanánk egy Motor objektum létrehozásakor.
Megjegyzés: Ez a módszer csak motorral működik, motorcsoporttal nem.
Usage:
motor_1.set_reversed(value)
Paraméterek |
Leírás |
|---|---|
|
Azt jelzi, hogy a motor forgásiránya meg van-e fordítva:
|
reset_position#
reset_position A motor vagy motorcsoport aktuális pozícióját 0-ra állítja.
Usage:
motor_1.reset_position()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
Getterek#
is_done#
is_done logikai értékként adja vissza, hogy a motor vagy motorcsoport befejezte-e a mozgást. Ez felhasználható más viselkedések időzítésének szabályozására a motor mozgása alapján.
True— A motor vagy motorcsoport mozgása befejeződött.False— A motor vagy motorcsoport továbbra is mozog.
Ez a metódus a következő wait paraméterrel rendelkező Motion metódusokkal működik együtt: spin_for és spin_to_position.
Usage:
motor_1.is_done()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 logikai értékként adja vissza, hogy a motor vagy a motorcsoport forog-e. Ez felhasználható más viselkedések időzítésének szabályozására a motor mozgása alapján.
True— A motor vagy motorcsoport forog.False— A motor vagy motorcsoport nem forog.
Ez a metódus a következő wait paraméterrel rendelkező Motion metódusokkal működik együtt: spin_for és spin_to_position.
Usage:
motor_1.is_spinning()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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#
Egy motor vagy motorcsoport pozíciója azt jelzi, hogy milyen messzire fordult el, DEGREES vagy TURNSegységben mérve. Egy fordulat 360 foknak felel meg. position a motor vagy motorcsoport aktuális pozícióját adja vissza.
Egy projekt elején a motor vagy motorcsoport pozíciója 0 fokra van állítva. Ha a motor vagy motorcsoport egy fordulatot előre forog, a pozíció 360 fok vagy 1 fordulat lesz. Ha a motor vagy motorcsoport az ellenkező irányba forog, a pozíció negatív lesz.
Usage:
motor_1.position(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A motor vagy motorcsoport pozícióját visszaadó egység: |
# 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 Az 1-es érték visszaadja a motor vagy motorcsoport forgási sebességét százalékban -100%-tól 100%-ig, vagy percenkénti fordulatszámban -127 rpm-től 127 rpm-ig.
A pozitív érték azt jelenti, hogy a motor vagy motorcsoport előre forog. A negatív érték azt jelenti, hogy hátrafelé forog.
Usage:
motor_1.velocity(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A visszaadandó sebesség mértékegysége:
|
current#
current visszaadja, hogy mennyi elektromos áramot használ a motor vagy motorcsoport, amperben mérve 0,0 és 1,2 A között. Az áram a motoron vagy motorcsoporton átfolyó elektromos áram mennyisége.
A magasabb áramérték azt jelenti, hogy a motor vagy motorcsoport több elektromos áramot fogyaszt. Ez akkor fordulhat elő, ha a motor vagy motorcsoport valami nehéz tárgyat emel, nekinyomódik egy tárgynak, vagy beragadt állapotban próbál elmozdulni.
Ez felhasználható annak ellenőrzésére, hogy a motor vagy motorcsoport mozgás közben nehézségekbe ütközik-e. Ha az áram magas marad, a motor felmelegedhet, vagy kevésbé hatékonyan használhatja fel az energiát.
Usage:
motor_1.current(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A visszaadandó áram mértékegysége:
|
power#
power Visszaadja, hogy mennyi energiát fogyaszt a motor vagy motorcsoport, wattban mérve 0,0 és 22,0 W között. A Power megmutatja, hogy a motor vagy motorcsoport milyen gyorsan használja fel az energiát.
A magasabb teljesítményérték azt jelenti, hogy a motor vagy motorcsoport gyorsabban használja az energiát. Ez akkor fordulhat elő, ha a motor vagy motorcsoport valami nehéz tárgyat emel, nekinyomódik egy tárgynak, vagy elakadt állapotban próbál mozdulni.
Ez felhasználható a mozgások összehasonlítására, vagy annak ellenőrzésére, hogy a motor vagy a motorcsoport hibás-e. Ha a teljesítmény magas marad, a motor felmelegedhet, vagy kevésbé hatékonyan használhatja fel az energiát.
Usage:
motor_1.power(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A visszaadandó teljesítmény mértékegysége:
|
torque#
A nyomaték megmutatja, hogy egy motor vagy motorcsoport milyen erősen csavarodik, nyom vagy húz forgás közben.
torque Az 1-es paraméter visszaadja a motor vagy motorcsoport által használt nyomatékot, hüvelyk-fontban (InLb) 0,0 és 22,0 között, vagy newtonméterben (Nm) 0,0 és 2,1 között mérve.
A magasabb nyomatékérték azt jelenti, hogy a motor vagy motorcsoport erősebben nyom vagy húz. Ez akkor fordulhat elő, ha a motor vagy motorcsoport valami nehéz tárgyat emel, nekinyomódik egy tárgynak, vagy beragadt állapotban próbál mozdulni.
Ez felhasználható annak ellenőrzésére, hogy a motor vagy a motoros csoport küzd-e nehézségekkel, vagy annak összehasonlítására, hogy mennyi lökést igényelnek a különböző mozgások.
Egy motor vagy motorcsoport nyomatékának beállításához használja a set_max_torque parancsot.
Usage:
motor_1.torque(units)
Paraméterek |
Leírás |
|---|---|
|
A visszaadandó nyomaték mértékegysége:
|
efficiency#
efficiency Visszaadja, hogy a motor vagy motorcsoport mennyire hatékonyan használja fel az energiát, 0% és 100% közötti százalékban.
A hatásfok megmutatja, hogy a motor vagy motorcsoport teljesítményének mekkora részét használják fel mozgásra. A magasabb hatásfok azt jelenti, hogy a motor vagy motorcsoport teljesítményének nagyobb részét használják fel mozgásra. Alacsonyabb hatásfok akkor fordulhat elő, ha a motor vagy motorcsoport keményen dolgozik, de nem mozog sokat, például amikor beragadt vagy egy tárgynak nyomódik.
Ez felhasználható mozgások összehasonlítására, vagy annak ellenőrzésére, hogy a motor vagy motorcsoport pazarolja-e az energiát a mozgásra való felhasználás helyett.
Usage:
motor_1.efficiency(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A visszaadandó hatékonysági mértékegység:
|
temperature#
temperature A motor vagy motorcsoport hőmérsékletét adja vissza.
A motor hőmérséklete megmutatja, mennyire meleg a motor vagy a motorcsoport. A magasabb hőmérséklet azt jelenti, hogy a motor vagy a motorcsoport működés közben melegszik. A motor hőmérsékletének 55°C alatt kell maradnia ahhoz, hogy teljes teljesítményen működjön.
Ha a motor vagy motorcsoport túlmelegszik, csökkenti a maximális áramát önmaga védelme érdekében. 70°C-on a motor leáll, amíg le nem hűl.
Ez felhasználható annak ellenőrzésére, hogy a motor vagy a motorcsoport túlmelegszik-e ismételt mozgások, hosszú futások vagy tárgynak való nyomás során.
Usage:
motor_1.temperature(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A visszaadandó hőmérsékleti egység:
|
count#
count visszaadja a motorcsoportban lévő motorok számát.
Megjegyzés: Ez a módszer csak motoros csoporttal működik.
Usage:
motor_group_1.count()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
get_timeout#
get_timeout Visszaadja a motor vagy motorcsoport aktuális timeout értékét milliszekundumban.
Usage:
motor_1.get_timeout()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
Konstruktorok#
A konstruktorok segítségével manuálisan hozhatunk létre Motor és MotorGroup objektumokat az Eszközök ablakon kívül.
Motor#
Motor motor létrehoz egy motort.
Usage:
Motor(port, gears, reverse)
Paraméter |
Leírás |
|---|---|
|
Az a Smart Port, amelyhez a motor csatlakozik, |
|
Opcionális. A motor áttétele:
|
|
Opcionális. Beállítja, hogy a motor forgásiránya fordított-e:
|
# 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 létrehoz egy motorcsoportot.
Usage:
MotorGroup(motors)
Paraméter |
Leírás |
|---|---|
|
A korábban létrehozott |
# 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)