Motor och motorgrupp#
Introduktion#
Motorer och motorgrupper styr hur delar av en robot rör sig. En Motor styr en konfigurerad Smart Motor, medan en MotorGroup styr flera konfigurerade Smart Motors tillsammans så att de rör sig i tandem. Motorer och motorgrupper kan användas för att lyfta en arm, vrida en klo, snurra ett hjul eller flytta en annan del av en byggnad. Två eller fyra motorer kan arbeta tillsammans som en drivlina för att flytta och vrida hela roboten.
Varje motor eller motorgrupp konfigureras i fönstret Enheter. Beroende på konstruktionen kan motor- och motorgruppnamn ändras. Den här sidan använder motor_1 och motor_group_1 som exempelnamn. Ersätt dem med dina egna konfigurerade namn efter behov.
Som standard roterar FORWARD en motor moturs och REVERSE roterar en motor medurs. Om en motor är inställd på backning kommer dessa riktningar att växlas.
Det finns många sätt att koda motorer och motorgrupper. Nedan följer en lista över alla metoder för motor och motorgrupp:
Åtgärder — Stoppa och rotera motorer och motorgrupper.
spin— Snurrar en motor eller motorgrupp framåt eller bakåt i all oändlighet.spin_for— Snurrar en motor eller motorgrupp ett visst avstånd.spin_to_position— Roterar en motor eller motorgrupp till en specifik position.stop— Stoppar en motor eller motorgrupp från att rotera.
Mutatorer — Justera inställningar för motor och motorgrupp.
set_position— Ändrar motorns eller motorgruppens aktuella position till ett nytt värde.set_velocity— Anger för en motor eller motorgrupp hur snabbt den ska snurra.set_stopping— Ställer in hur en motor eller motorgrupp ska stoppas: genom att bromsa, frihjula eller hålla.set_max_torque— Anger hur hårt en motor eller motorgrupp tillåts trycka under rotation.set_timeout— Anger hur lång tid en motor eller motorgrupp ska försöka slutföra en rörelse.set_reversed— Ändrar om en motors rotationsriktning är omvänd.reset_position— Ändrar en motors eller motorgrupps aktuella position till 0.
Getters — Kontrollera motor- och motorgruppstatus.
is_done— Returnerar om motorn eller motorgruppen är klar med sin rörelse, som ett booleskt värde.is_spinning— Returnerar om motorn eller motorgruppen snurrar, som ett booleskt värde.position— Returnerar motorns eller motorgruppens aktuella position.velocity— Returnerar hur snabbt motorn eller motorgruppen roterar.current— Returnerar hur mycket elektrisk ström motorn eller motorgruppen använder.power— Returnerar hur mycket effekt motorn eller motorgruppen använder.torque— Returnerar hur mycket vridmoment motorn eller motorgruppen använder.efficiency— Returnerar hur effektivt motorn eller motorgruppen använder ström.temperature— Returnerar temperaturen för motorn eller motorgruppen.count— Returnerar antalet motorer i en motorgrupp.get_timeout— Returnerar motorns eller motorgruppens aktuella timeout-tid.
Konstruktörer — Initiera och konfigurera motorer och motorgrupper manuellt.
Motor— Skapar en motor.MotorGroup— Skapar en motorgrupp.
Åtgärder#
spin#
spin roterar en motor eller motorgrupp framåt eller bakåt för alltid. Motorn eller motorgruppen fortsätter att snurra tills den får en annan åtgärd, som att snurra i en annan riktning eller stanna.
Usage:
motor_1.spin(direction, velocity, units)
Parametrar |
Beskrivning |
|---|---|
|
Motorns eller motorgruppens rotationsriktning: |
|
Valfritt. Hastigheten att rotera med från 0% till 100% när |
|
Valfritt. Hastighetsenheten:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
spin_for#
spin_for snurrar en motor eller motorgrupp ett visst avstånd. Rotationen är relativ till motorns eller motorgruppens aktuella position. Projektet väntar tills motorn eller motorgruppen har snurrat klart innan nästa kodrad körs.
Usage:
motor_1.spin_for(direction, angle, units, velocity, units_v, wait)
Parametrar |
Beskrivning |
|---|---|
|
Motorns eller motorgruppens rotationsriktning: |
|
Avståndet som motorn eller motorgruppen roterar. Detta kan vara ett heltal |
|
Valfritt. Avståndsenheten: |
|
Valfritt. Hastigheten att rotera med från 0% till 100% när |
|
Valfritt. Hastighetsenheten:
|
|
Valfritt.
|
# 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 snurrar en motor eller motorgrupp till en specifik position.
En motors eller motorgrupps position är hur långt den har snurrat, mätt i DEGREES eller TURNSEtt varv är lika med 360 grader. I början av ett projekt sätts motorns eller motorgruppens position till 0 grader. Motorns eller motorgruppens position kan också ställas in med metoden set_position.
Positionsvärdena är absoluta. Det betyder att rotationens riktning beror på motorns eller motorgruppens aktuella position.
Om motorn eller motorgruppen till exempel börjar vid 0 grader och snurrar till en position på 720 grader, snurrar den framåt två varv. Om den sedan snurrar till en position på 360 grader, snurrar den bakåt ett varv, eftersom 360 är mindre än 720.
Usage:
motor_1.spin_to_position(rotation, units, velocity, units_v, wait)
Parametrar |
Beskrivning |
|---|---|
|
Positionsvärdet som motorn eller motorgruppen roterar till. Detta kan vara ett heltal |
|
Positionsenheten: |
|
Valfritt. Hastigheten att rotera med från 0% till 100% när |
|
Valfritt. Hastighetsenheten:
|
|
Valfritt.
|
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
stop#
stop stoppar en motor eller motorgrupp från att rotera.
Usage:
motor_1.stop(mode)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Hur motorn eller motorgruppen kommer att stoppas:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
Mutatorer#
set_position#
En motors eller motorgrupps position är hur långt den har snurrat, mätt i DEGREES eller TURNS. Ett varv är lika med 360 grader. set_position ändrar motorns eller motorgruppens aktuella position till ett nytt värde.
Om till exempel en motor eller motorgrupp har snurrat till 180 grader, kommer en position som ställs in på 0 grader att återställas från 180 till 0 grader. Motorn eller motorgruppen kan sedan snurra till positioner baserat på det nya värdet.
Usage:
motor_1.set_position(position, units)
Parametrar |
Beskrivning |
|---|---|
|
Positionsvärdet som ska ställas in för motorn eller motorgruppen. Detta kan vara ett heltal |
|
Valfritt. Positionsenheten: |
# 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 anger hur snabbt en motor eller motorgrupp ska snurra. En högre procentandel gör att motorn eller motorgruppen snurrar snabbare och en lägre procentandel gör att motorn eller motorgruppen snurrar långsammare.
Varje projekt börjar med att varje motor eller motorgrupp roterar med 50 % hastighet som standard.
Obs! En högre hastighet gör att motorn eller motorgruppen roterar snabbare, men den kan vara mindre exakt. En lägre hastighet gör att motorn eller motorgruppen roterar långsammare, men den kan vara mer exakt.
Usage:
motor_1.set_velocity(velocity, units)
Parametrar |
Beskrivning |
|---|---|
|
Hastigheten att rotera med från 0% till 100% när |
|
Valfritt. Hastighetsenheten:
|
# 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 anger hur en motor eller motorgrupp ska stoppa rörelsen: genom att bromsa, frihjula eller hålla.
Usage:
motor_1.set_stopping(mode)
Parametrar |
Beskrivning |
|---|---|
|
Hur motorn eller motorgruppen kommer att stoppas:
|
Om denna metod inte används kommer motorn att använda BRAKE vid stopp.
set_max_torque#
Vridmoment visar hur hårt en motor eller motorgrupp kan trycka eller dra medan den roterar.
set_max_torque ställer in det högsta vridmoment som en motor eller motorgrupp tillåts använda.
En högre procentandel låter motorn eller motorgruppen trycka hårdare, till exempel när man lyfter ett tungt föremål. En lägre procentandel begränsar hur hårt motorn eller motorgruppen kan trycka. Detta kan hjälpa till att skydda roboten om motorn eller motorgruppen fastnar eller når slutet av hur långt den kan röra sig.
Varje projekt börjar med att varje motor eller motorgrupps vridmoment är 50 % som standard.
Usage:
motor_1.set_max_torque(value, units)
Parametrar |
Beskrivning |
|---|---|
|
Det maximala vridmomentet som motorn eller motorgruppen kan använda. Detta kan vara ett heltal |
|
Valfritt. Momentenheten:
|
set_timeout#
set_timeout anger hur lång tid en motor eller motorgrupp ska försöka slutföra en rörelse. Om motorn eller motorgruppen inte kan slutföra inom den tiden kommer den att sluta försöka och gå vidare till nästa kodrad. Detta förhindrar att motorn eller motorgruppen fastnar i en rörelse.
Usage:
motor_1.set_timeout(value, units)
Parametrar |
Beskrivning |
|---|---|
|
Den tid som motorn eller motorgruppen kan försöka slutföra en rörelse. Detta kan vara ett positivt |
|
Valfritt. Tidsenhet:
|
set_reversed#
set_reversed ändrar huruvida en motors rotationsriktning är omvänd. Den här metoden fungerar på samma sätt som att ställa in parametern reverse till True när man konstruerar en Motor.
Obs: Den här metoden fungerar endast med en motor och inte en motorgrupp.
Usage:
motor_1.set_reversed(value)
Parametrar |
Beskrivning |
|---|---|
|
Om motorns riktning är omvänd:
|
reset_position#
reset_position ändrar motorns eller motorgruppens aktuella position till 0.
Usage:
motor_1.reset_position()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
Getters#
is_done#
is_done returnerar om motorn eller motorgruppen är klar med att röra sig, som ett booleskt värde. Detta kan användas för att styra tidpunkten för andra beteenden baserat på motorns rörelse.
True— Motorn eller motorgruppen är klar med sin rörelse.False— Motorn eller motorgruppen rör sig fortfarande.
Den här metoden fungerar tillsammans med följande rörelsemetoder som har parametern wait : spin_for och spin_to_position.
Usage:
motor_1.is_done()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar huruvida motorn eller motorgruppen snurrar, som ett booleskt värde. Detta kan användas för att styra tidpunkten för andra beteenden baserat på motorns rörelse.
True— Motorn eller motorgruppen snurrar.False— Motorn eller motorgruppen snurrar inte.
Den här metoden fungerar tillsammans med följande rörelsemetoder som har parametern wait : spin_for och spin_to_position.
Usage:
motor_1.is_spinning()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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#
En motors eller motorgrupps position är hur långt den har snurrat, mätt i DEGREES eller TURNSEtt varv är lika med 360 grader. position returnerar motorns eller motorgruppens aktuella position.
I början av ett projekt är motorns eller motorgruppens position inställd på 0 grader. Om motorn eller motorgruppen roterar ett varv framåt blir positionen 360 grader eller 1 varv. Om motorn eller motorgruppen roterar åt andra hållet blir positionen negativ.
Usage:
motor_1.position(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Enheten för att returnera motorns eller motorgruppens position i: |
# 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 returnerar hur snabbt motorn eller motorgruppen roterar, som en procentandel från -100 % till 100 % eller som varv per minut från -127 rpm till 127 rpm.
Ett positivt värde innebär att motorn eller motorgruppen roterar framåt. Ett negativt värde innebär att den roterar bakåt.
Usage:
motor_1.velocity(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Hastighetsenheten som ska returneras:
|
current#
current returnerar hur mycket elektrisk ström motorn eller motorgruppen använder, mätt i ampere från 0,0 till 1,2 A. Strömmen är mängden elektricitet som flyter genom motorn eller motorgruppen.
Ett högre strömvärde innebär att motorn eller motorgruppen använder mer elektrisk ström. Detta kan hända när motorn eller motorgruppen lyfter något tungt, trycker mot ett föremål eller försöker röra sig när det har fastnat.
Detta kan användas för att kontrollera om motorn eller motorgruppen har problem under en rörelse. Om strömmen förblir hög kan motorn bli varmare eller använda strömmen mindre effektivt.
Usage:
motor_1.current(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Den aktuella enheten som ska returneras:
|
power#
power returnerar hur mycket effekt motorn eller motorgruppen använder, mätt i watt från 0,0 till 22,0 W. Effekt visar hur snabbt motorn eller motorgruppen förbrukar energi.
Ett högre effektvärde innebär att motorn eller motorgruppen förbrukar energi snabbare. Detta kan hända när motorn eller motorgruppen lyfter något tungt, trycker mot ett föremål eller försöker röra sig när det har fastnat.
Detta kan användas för att jämföra rörelser eller kontrollera om motorn eller motorgruppen har problem. Om effekten förblir hög kan motorn bli varmare eller använda energi mindre effektivt.
Usage:
motor_1.power(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Effektenheten som ska returneras:
|
torque#
Vridmoment visar hur hårt en motor eller motorgrupp vrider, trycker eller drar medan den roterar.
torque returnerar hur mycket vridmoment motorn eller motorgruppen använder, mätt i tum-pund (InLb) från 0,0 till 22,0 eller Newton-meter (Nm) från 0,0 till 2,1.
Ett högre vridmomentvärde innebär att motorn eller motorgruppen trycker eller drar hårdare. Detta kan hända när motorn eller motorgruppen lyfter något tungt, trycker mot ett föremål eller försöker röra sig när det har fastnat.
Detta kan användas för att kontrollera om motorn eller motorgruppen har problem eller för att jämföra hur mycket tryck olika rörelser behöver.
För att ställa in vridmomentet för en motor eller motorgrupp, använd set_max_torque.
Usage:
motor_1.torque(units)
Parametrar |
Beskrivning |
|---|---|
|
Momentenheten som ska returneras:
|
efficiency#
efficiency returnerar hur effektivt motorn eller motorgruppen använder ström, som en procentandel från 0 % till 100 %.
Verkningsgraden visar hur mycket av motorns eller motorgruppens kraft som används för rörelse. Ett högre verkningsgradsvärde innebär att mer av motorns eller motorgruppens kraft används för rörelse. Ett lägre verkningsgradsvärde kan uppstå när motorn eller motorgruppen arbetar hårt men inte rör sig mycket, till exempel när den har fastnat eller trycker mot ett föremål.
Detta kan användas för att jämföra rörelser eller kontrollera om motorn eller motorgruppen slösar kraft istället för att använda den till rörelse.
Usage:
motor_1.efficiency(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Effektivitetsenheten som ska returneras:
|
temperature#
temperature returnerar temperaturen för motorn eller motorgruppen.
Motortemperaturen visar hur varm motorn eller motorgruppen är. En högre temperatur innebär att motorn eller motorgruppen blir varmare medan den arbetar. Motorn bör hålla sig under 55 °C för att fortsätta arbeta med full prestanda.
Om motorn eller motorgruppen blir för varm sänker den sin maximala ström för att skydda sig själv. Vid 70 °C stannar en motor tills den svalnar.
Detta kan användas för att kontrollera om motorn eller motorgruppen blir för varm under upprepade rörelser, långa körningar eller när den trycker mot ett föremål.
Usage:
motor_1.temperature(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Temperaturenheten som ska returneras:
|
count#
count returnerar antalet motorer i en motorgrupp.
Obs: Den här metoden fungerar endast med en motorgrupp.
Usage:
motor_group_1.count()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
get_timeout#
get_timeout returnerar motorns eller motorgruppens aktuella timeout i millisekunder.
Usage:
motor_1.get_timeout()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
Konstruktörer#
Konstruktorer används för att manuellt skapa Motor och MotorGroup objekt utanför Enhetsfönstret.
Motor#
Motor skapar en motor.
Usage:
Motor(port, gears, reverse)
Parameter |
Beskrivning |
|---|---|
|
Den smarta port som motorn är ansluten till, skriven som |
|
Valfritt. Motorns utväxling:
|
|
Valfritt. Anger om motorns rotationsriktning är omvänd:
|
# 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 skapar en motorgrupp.
Usage:
MotorGroup(motors)
Parameter |
Beskrivning |
|---|---|
|
Namnen på tidigare skapade |
# 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)