Motor en Motorgroep#
Invoering#
Motoren en motorgroepen bepalen hoe onderdelen van een robot bewegen. Een Motor bestuurt één geconfigureerde Smart Motor, terwijl een MotorGroup meerdere geconfigureerde Smart Motors tegelijk bestuurt, zodat ze synchroon bewegen. Motoren en motorgroepen kunnen worden gebruikt om een arm omhoog te brengen, een grijper te draaien, een wiel te laten draaien of een ander onderdeel van een constructie te bewegen. Twee of vier motoren kunnen samenwerken als een aandrijving om de hele robot te bewegen en te draaien.
Elke motor of motorgroep wordt geconfigureerd in het venster Apparaten. Afhankelijk van de configuratie kunnen de namen van motoren en motorgroepen variëren. Op deze pagina worden motor_1 en motor_group_1 als voorbeeldnamen gebruikt. Vervang deze door uw eigen geconfigureerde namen.
Standaard draait een motor met FORWARD tegen de klok in en met REVERSE met de klok mee. Als een motor op achteruit draaien is ingesteld, worden deze draairichtingen omgewisseld.
Er zijn veel manieren om motoren en motorgroepen te programmeren. Hieronder vindt u een lijst met alle methoden voor motoren en motorgroepen:
Acties — Motoren en motorgroepen stoppen en laten draaien.
spin— Laat een motor of motorgroep oneindig lang vooruit of achteruit draaien.spin_for— Laat een motor of motorgroep een specifieke afstand draaien.spin_to_position— Draait een motor of motorgroep naar een specifieke positie.stop— Stopt een motor of motorgroep met draaien.
Mutators — Pas de motor- en motorgroepinstellingen aan.
set_position— Wijzigt de huidige positie van de motor of motorgroep naar een nieuwe waarde.set_velocity— Vertelt een motor of motorgroep hoe snel deze moet draaien.set_stopping— Stelt in hoe een motor of motorgroep stopt met bewegen: door te remmen, uit te rollen of te wachten.set_max_torque— Stelt in hoe hard een motor of motorgroep mag duwen tijdens het draaien.set_timeout— Stelt in hoeveel tijd een motor of motorgroep nodig heeft om een beweging te voltooien.set_reversed— Wijzigt of de draairichting van een motor wordt omgekeerd.reset_position— Wijzigt de huidige positie van een motor of motorgroep naar 0.
Getters — Controleer de status van de motor en de motorgroep.
is_done— Geeft als Booleaanse waarde aan of de motor of motorgroep klaar is met bewegen.is_spinning— Geeft als Booleaanse waarde aan of de motor of motorgroep draait.position— Geeft de huidige positie van de motor of motorgroep terug.velocity— Geeft aan hoe snel de motor of motorgroep draait.current— Geeft aan hoeveel elektrische stroom de motor of motorgroep verbruikt.power— Geeft aan hoeveel vermogen de motor of motorgroep gebruikt.torque— Geeft aan hoeveel koppel de motor of motorgroep gebruikt.efficiency— Geeft aan hoe efficiënt de motor of motorgroep het vermogen gebruikt.temperature— Geeft de temperatuur van de motor of motorgroep terug.count— Geeft het aantal motoren in een motorgroep terug.get_timeout— Retourneert de huidige time-outduur van de motor of motorgroep.
Constructors — Handmatig initialiseren en configureren van motoren en motorgroepen.
Motor— Creëert een motor.MotorGroup— Creëert een motorische groep.
Acties#
spin#
spin laat een motor of motorgroep oneindig lang vooruit of achteruit draaien. De motor of motorgroep blijft draaien totdat er een andere actie wordt uitgevoerd, zoals in een andere richting draaien of stoppen.
Usage:
motor_1.spin(direction, velocity, units)
Parameters |
Beschrijving |
|---|---|
|
De draairichting van de motor of motorgroep: |
|
Optioneel. De draaisnelheid van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
spin_for#
spin_for laat een motor of motorgroep een specifieke afstand draaien. De draaiing is relatief ten opzichte van de huidige positie van de motor of motorgroep. Het project wacht totdat de motor of motorgroep klaar is met draaien voordat de volgende regel code wordt uitgevoerd.
Usage:
motor_1.spin_for(direction, angle, units, velocity, units_v, wait)
Parameters |
Beschrijving |
|---|---|
|
De draairichting van de motor of motorgroep: |
|
De afstand die de motor of motorgroep aflegt. Dit kan een geheel getal |
|
Optioneel. De afstandseenheid: |
|
Optioneel. De rotatiesnelheid van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid:
|
|
Optioneel.
|
# 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 draait een motor of motorgroep naar een specifieke positie.
De positie van een motor of motorgroep wordt bepaald door de draaiing die deze heeft gemaakt, gemeten in DEGREES of TURNSEén omwenteling is gelijk aan 360 graden. Aan het begin van een project wordt de positie van de motor of motorgroep ingesteld op 0 graden. De positie van de motor of motorgroep kan ook worden ingesteld met behulp van de set_position methode.
Positiewaarden zijn absoluut. Dit betekent dat de draairichting afhangt van de huidige positie van de motor of motorgroep.
Usage:
motor_1.spin_to_position(rotation, units, velocity, units_v, wait)
Parameters |
Beschrijving |
|---|---|
|
De positiewaarde waarnaar de motor of motorgroep zal draaien. Dit kan een geheel getal |
|
De positie-eenheid: |
|
Optioneel. De rotatiesnelheid van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid:
|
|
Optioneel.
|
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
stop#
stop zorgt ervoor dat een motor of motorgroep stopt met draaien.
Usage:
motor_1.stop(mode)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. Hoe de motor of motorgroep stopt:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
Mutators#
set_position#
De positie van een motor of motorgroep geeft aan hoeveel omwentelingen deze heeft gemaakt, gemeten in DEGREES of TURNSEén omwenteling is gelijk aan 360 graden. set_position wijzigt de huidige positie van de motor of motorgroep naar een nieuwe waarde.
Als een motor of motorgroep bijvoorbeeld 180 graden is gedraaid, zal het instellen van de positie op 0 graden die positie resetten van 180 naar 0 graden. Vervolgens kan de motor of motorgroep naar posities draaien op basis van die nieuwe waarde.
Usage:
motor_1.set_position(position, units)
Parameters |
Beschrijving |
|---|---|
|
De positiewaarde die moet worden ingesteld voor de motor of motorgroep. Dit kan een geheel getal |
|
Optioneel. De positie-eenheid: |
# 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 geeft aan hoe snel een motor of motorgroep moet draaien. Een hoger percentage zorgt ervoor dat de motor of motorgroep sneller draait en een lager percentage zorgt ervoor dat de motor of motorgroep langzamer draait.
Elk project begint standaard met elke motor of motorgroep die op 50% van zijn maximale snelheid draait.
Let op: Een hogere snelheid zorgt ervoor dat de motor of motorgroep sneller draait, maar dit kan de precisie verminderen. Een lagere snelheid zorgt ervoor dat de motor of motorgroep langzamer draait, maar dit kan de precisie verhogen.
Usage:
motor_1.set_velocity(velocity, units)
Parameters |
Beschrijving |
|---|---|
|
De snelheid waarmee de motor of motorgroep draait. |
|
Optioneel. De snelheidseenheid:
|
# 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 stelt in hoe een motor of motorgroep stopt met bewegen: door te remmen, uit te rollen of vast te houden.
Usage:
motor_1.set_stopping(mode)
Parameters |
Beschrijving |
|---|---|
|
Hoe de motor of motorgroep stopt:
|
set_max_torque#
Het koppel geeft aan hoe hard een motor of motorgroep kan duwen of trekken terwijl deze draait.
set_max_torque stelt het maximale koppel in dat een motor of motorgroep mag gebruiken.
Een hoger percentage zorgt ervoor dat de motor of motorgroep harder kan duwen, bijvoorbeeld bij het tillen van een zwaar voorwerp. Een lager percentage beperkt de maximale duwkracht van de motor of motorgroep. Dit kan de robot beschermen als de motor of motorgroep vastloopt of de maximale bewegingsafstand bereikt.
Elk project begint standaard met een koppel van 50% voor elke motor of motorgroep.
Usage:
motor_1.set_max_torque(value, units)
Parameters |
Beschrijving |
|---|---|
|
Het maximale koppel dat de motor of motorgroep kan gebruiken. |
|
Optioneel. De koppeleenheid:
|
set_timeout#
set_timeout stelt in hoeveel tijd een motor of motorgroep krijgt om een beweging te voltooien. Als de motor of motorgroep de beweging niet binnen die tijd kan voltooien, stopt deze met proberen en gaat verder met de volgende regel code. Dit voorkomt dat de motor of motorgroep vastloopt tijdens een beweging.
Usage:
motor_1.set_timeout(value, units)
Parameters |
Beschrijving |
|---|---|
|
De hoeveelheid tijd die de motor of motorgroep kan proberen om een beweging te voltooien. Dit kan een positief geheel getal zijn |
|
Optioneel. De tijdseenheid:
|
set_reversed#
set_reversed verandert of de draairichting van een motor wordt omgekeerd. Deze methode werkt hetzelfde als het instellen van de reverse parameter op True bij het construeren van een Motor.
Let op: Deze methode werkt alleen met één motor en niet met een motorgroep.
Usage:
motor_1.set_reversed(value)
Parameters |
Beschrijving |
|---|---|
|
Of de draairichting van de motor wordt omgekeerd:
|
reset_position#
reset_position verandert de huidige positie van de motor of motorgroep naar 0.
Usage:
motor_1.reset_position()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
Getters#
is_done#
is_done geeft als Booleaanse waarde aan of de motor of motorgroep klaar is met bewegen. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de motor.
True— De motor of motorgroep is klaar met bewegen.False— De motor of motorgroep is nog steeds in beweging.
Deze methode werkt samen met de volgende bewegingsmethoden die de parameter wait hebben: spin_for en spin_to_position.
Usage:
motor_1.is_done()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 geeft als Booleaanse waarde aan of de motor of motorgroep draait. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de motor.
True— De motor of motorgroep draait.False— De motor of motorgroep draait niet.
Deze methode werkt samen met de volgende bewegingsmethoden die de parameter wait hebben: spin_for en spin_to_position.
Usage:
motor_1.is_spinning()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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#
De positie van een motor of motorgroep geeft aan hoeveel omwentelingen deze heeft gemaakt, gemeten in DEGREES of TURNSEén omwenteling is gelijk aan 360 graden. position geeft de huidige positie van de motor of motorgroep weer.
Aan het begin van een project wordt de positie van de motor of motorgroep ingesteld op 0 graden. Als de motor of motorgroep één omwenteling vooruit draait, is de positie 360 graden of 1 omwenteling. Als de motor of motorgroep de andere kant op draait, is de positie negatief.
Usage:
motor_1.position(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De eenheid waarmee de motor of motorgroep terugkeert naar de positie: |
# 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 geeft aan hoe snel de motor of motorgroep draait, als een percentage van -100% tot 100% of als omwentelingen per minuut van -127 rpm tot 127 rpm.
Een positieve waarde betekent dat de motor of motorgroep vooruit draait. Een negatieve waarde betekent dat deze achteruit draait.
Usage:
motor_1.velocity(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De snelheidseenheid die moet worden geretourneerd:
|
current#
current geeft aan hoeveel elektrische stroom de motor of motorgroep verbruikt, gemeten in ampère van 0,0 tot 1,2 A. Stroomsterkte is de hoeveelheid elektriciteit die door de motor of motorgroep stroomt.
Een hogere stroomwaarde betekent dat de motor of motorgroep meer elektrische stroom verbruikt. Dit kan gebeuren wanneer de motor of motorgroep iets zwaars optilt, tegen een object duwt of probeert te bewegen terwijl deze vastzit.
Hiermee kunt u controleren of de motor of motorgroep moeite heeft tijdens een beweging. Als de stroomsterkte hoog blijft, kan de motor warmer worden of minder efficiënt met energie omgaan.
Usage:
motor_1.current(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De huidige eenheid die moet worden geretourneerd:
|
power#
power geeft aan hoeveel vermogen de motor of motorgroep verbruikt, gemeten in watt van 0,0 tot 11,0 W. Vermogen laat zien hoe snel de motor of motorgroep energie verbruikt.
Een hogere vermogenswaarde betekent dat de motor of motorgroep sneller energie verbruikt. Dit kan gebeuren wanneer de motor of motorgroep iets zwaars optilt, tegen een object duwt of probeert te bewegen terwijl deze vastzit.
Dit kan worden gebruikt om bewegingen te vergelijken of te controleren of de motor of motorische groep moeite heeft. Als het vermogen hoog blijft, kan de motor warmer worden of minder efficiënt met energie omgaan.
Usage:
motor_1.power(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De terug te geven vermogenseenheid:
|
torque#
Het koppel geeft aan hoe hard een motor of motorgroep draait, duwt of trekt tijdens het roteren.
torque geeft aan hoeveel koppel de motor of motorgroep gebruikt, gemeten in inch-pounds (InLb) van 0,0 tot 22,0 of Newton-meter (Nm) van 0,0 tot 2,1.
Een hogere koppelwaarde betekent dat de motor of motorgroep harder duwt of trekt. Dit kan gebeuren wanneer de motor of motorgroep iets zwaars optilt, tegen een object duwt of probeert te bewegen terwijl deze vastzit.
Dit kan worden gebruikt om te controleren of de motor of motorische groep moeite heeft, of om te vergelijken hoeveel kracht verschillende bewegingen vereisen.
Om het koppel van een motor of motorgroep in te stellen, gebruikt u set_max_torque.
Usage:
motor_1.torque(units)
Parameters |
Beschrijving |
|---|---|
|
De koppeleenheid die moet worden geretourneerd:
|
efficiency#
efficiency geeft aan hoe efficiënt de motor of motorgroep het vermogen gebruikt, als een percentage van 0% tot 100%.
Het rendement geeft aan hoeveel van het vermogen van de motor of motorgroep wordt gebruikt voor beweging. Een hogere rendementswaarde betekent dat er meer vermogen van de motor of motorgroep wordt gebruikt voor beweging. Een lagere rendementswaarde kan voorkomen wanneer de motor of motorgroep hard werkt maar weinig beweging genereert, bijvoorbeeld wanneer deze vastloopt of tegen een object duwt.
Dit kan worden gebruikt om bewegingen te vergelijken of te controleren of de motor of motorgroep energie verspilt in plaats van deze voor beweging te gebruiken.
Usage:
motor_1.efficiency(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De rendementseenheid die moet worden weergegeven:
|
temperature#
temperature geeft de temperatuur van de motor of motorgroep weer.
De motortemperatuur geeft aan hoe warm de motor of motorgroep is. Een hogere temperatuur betekent dat de motor of motorgroep warmer wordt tijdens het gebruik. De motortemperatuur moet onder de 55 °C blijven om optimaal te blijven presteren.
Als de motor of motorgroep te heet wordt, verlaagt deze de maximale stroomsterkte ter bescherming. Bij 70 °C stopt een motor met draaien totdat deze is afgekoeld.
Hiermee kan worden gecontroleerd of de motor of motorgroep te warm wordt tijdens herhaalde bewegingen, langdurig gebruik of wanneer deze tegen een object duwt.
Usage:
motor_1.temperature(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De temperatuureenheid die moet worden weergegeven:
|
count#
count geeft het aantal motoren in een motorgroep terug.
Let op: Deze methode werkt alleen met een motorische groep.
Usage:
motor_group_1.count()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
get_timeout#
get_timeout retourneert de huidige timeout van de motor of motorgroep in milliseconden.
Usage:
motor_1.get_timeout()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
Constructeurs#
Constructors worden gebruikt om handmatig Motor en MotorGroup objecten te creëren buiten het venster Apparaten.
Motor#
Motor creëert een motor.
Usage:
Motor(port, gears, reverse)
Parameter |
Beschrijving |
|---|---|
|
De Smart Port waarop de motor is aangesloten, wordt weergegeven als |
|
Optioneel. De overbrengingsverhouding van de motor:
|
|
Optioneel. Hiermee wordt de draairichting van de motor omgekeerd:
|
# Create a Motor in Port 1 with default values
motor_1 = Motor(Ports.PORT1)
"""
Create a motor with the following values:
- In Port 1
- 36:1 ratio
- Reversed
"""
motor_1 = Motor(Ports.PORT1, GearSetting.RATIO_36_1, True)
MotorGroup#
MotorGroup creëert een motorgroep.
Usage:
MotorGroup(motors)
Parameter |
Beschrijving |
|---|---|
|
De namen van eerder gemaakte |
# 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)