Motor e Grupo Motor#

Introdução#

Os motores e os grupos de motores controlam a forma como as partes de um robô se movem. Um objeto motor controla um motor inteligente IQ configurado, enquanto um objeto motor_group controla vários motores inteligentes IQ configurados em conjunto para que se movam em sincronia. Os motores e os grupos de motores podem ser utilizados para levantar um braço, rodar uma garra, rodar uma roda ou mover outra parte de uma construção. Dois motores podem trabalhar em conjunto como um trem de força para mover e rodar todo o robô.

Cada motor ou grupo de motores é configurado na janela Dispositivos. Dependendo da configuração, os nomes dos motores e dos grupos de motores podem sofrer alterações. Esta página utiliza Motor1 e MotorGroup1 como exemplos de nomes. Substitua-os pelos nomes que configurou, conforme necessário.

Um motor VEX IQ (2ª geração) que mostra o sentido de rotação para a frente indicado por um sinal de mais e uma seta que indica que está a rodar para a esquerda, ou no sentido anti-horário. Um motor VEX IQ (2ª geração) que mostra o sentido inverso indicado por um sinal menos e uma seta que indica que está a rodar para a direita, ou no sentido dos ponteiros do relógio.

Por predefinição, forward rodam o motor no sentido anti-horário, e reverse rodam o motor no sentido horário. Se um motor estiver configurado para inverter o sentido de rotação, estes sentidos serão trocados.

Motor#

Class Constructors#

1 — Cria um objeto motor para o IQ Smart Motor ligado à Smart Port especificada. O motor utiliza automaticamente a engrenagem interna gearSetting.

motor(
  int32_t index );

2 — Cria um objeto motor na Smart Port especificada e, opcionalmente, inverte o seu sentido. O motor utiliza automaticamente a engrenagem interna gearSetting.

motor(
 int32_t index,
 bool    reverse );

3 — Cria um objeto motor na Smart Port especificada com a configuração de engrenagem gearSetting.

motor(
 int32_t     index,
 gearSetting gears );

4 — Cria um objeto motor na Smart Port especificada com a configuração de engrenagem gearSetting e sentido inverso opcional.

motor(
 int32_t     index,
 gearSetting gears,
 bool        reverse );

Class Destructor#

Destroys the motor object and releases associated resources.

~motor();

Parameters#

Parâmetro

Tipo

Descrição

index

int32_t

A Smart Port à qual o motor está ligado, escrita como PORTx, em que x é o número da porta (por exemplo, PORT1).

reverse

bool

Define se o sentido de rotação do motor será invertido:

  • false (padrão) — Não inverte o sentido de rotação do motor.
  • true — Inverte o sentido de rotação do motor.

gears

gearSetting

Especifica a relação de transmissão do cartucho de engrenagem interna.

  • ratio1_1 — Relação de transmissão 1:
  • ratio2_1 — Relação de transmissão 2:
  • ratio3_1 — Relação de transmissão 3:1

Notes#

  • A configuração da engrenagem deve corresponder ao cartucho físico instalado no motor.

Example#

// Create the motor instance in Smart Port 1
motor LeftMotor = motor(PORT1);

// Creates the motor instance with different settings
motor RightMotor = motor(
  PORT2,      // Smart Port 2
  ratio2_1,  // Gear ratio is 2:1
  true);

Grupo Motor#

Class Constructors#

motor_group( motor &m1, Args&... m2 );

Class Destructor#

Destrói o objeto motor_group e liberta os recursos associados.

~motor_group();

Parameters#

Parâmetro

Tipo

Descrição

m1

motor &

O primeiro motor adicionado ao grupo.

m2

motor &

Motores adicionais foram adicionados ao grupo. O máximo é de quatro motores num grupo de motores.

Example#

// Create individual motor instances
motor LeftMotor  = motor(PORT1);
motor RightMotor = motor(PORT2);

// Create a motor group with both motors
motor_group DriveMotors = motor_group(LeftMotor, RightMotor);

Funções de membro#

Existem muitas formas de programar motores e grupos de motores. Abaixo está uma lista de todas as funções membro dos motores motor e motor_group:

Ações — Parar e rodar motores e grupos de motores.

  • spin — Roda um motor ou um grupo de motores para a frente ou para trás para sempre.

  • spinFor — Roda um motor ou um grupo de motores por uma distância ou quantidade de tempo específica.

  • spinToPosition — Roda um motor ou um grupo de motores para uma posição específica.

  • stop — Impede que um motor ou um grupo de motores gire.

Mutadores — Ajustam as definições do motor e do grupo de motores.

  • setVelocity — Indica a um motor ou grupo de motores a velocidade de rotação.

  • setMaxTorque — Define a força máxima que um motor ou grupo de motores pode exercer enquanto roda.

  • setPosition — Altera a posição actual do motor ou do grupo de motores para um novo valor.

  • setStopping — Define a forma como um motor ou grupo de motores irá parar de se mover: por travagem, inércia ou paragem.

  • setTimeout — Define durante o tempo que um motor ou grupo de motores tentará completar um movimento.

Getters — Verifique o estado do motor e do grupo de motores.

  • isDone — Retorna se o motor ou o grupo de motores terminou de se mover, como um valor booleano.

  • isSpinning — Retorna se o motor ou o grupo de motores está a rodar, como um valor booleano.

  • position — Retorna a posição actual do motor ou do grupo de motores.

  • velocity — Devolve a velocidade de rotação do motor ou do grupo de motores.

  • current — Devolve a quantidade de corrente elétrica que o motor ou o grupo de motores está a utilizar.

  • power — Devolve a quantidade de potência que o motor ou o grupo de motores está a utilizar.

  • torque — Devolve a quantidade de binário que o motor ou o grupo de motores está a utilizar.

  • efficiency — Devolve a eficiência com que o motor ou o grupo de motores está a utilizar energia.

  • temperature — Devolve a temperatura do motor ou do grupo de motores.

  • voltage — Devolve a tensão eléctrica fornecida ao motor ou ao grupo de motores.

  • direction — Devolve a direcção em que o motor ou o grupo de motores está a rodar.

  • installed — Retorna se o motor ou grupo motor está ligado ao cérebro.

  • count — Devolve o número de motores de um grupo de motores.

Before calling any motor or motor_group member functions, an instance must be created, as shown below:

/* This constructor is required when using VS Code.
Motor and Motor Group configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the motor instance in Smart Port 1
motor Motor1 = motor(PORT1);

Ações#

spin#

O comando spin faz com que um motor ou um grupo de motores gire para a frente ou para trás indefinidamente. O motor ou o grupo de motores continuará a rodar até receber outra ação, como rodar numa direção diferente ou parar.

Available Functions

1 — Aciona o motor ou o grupo de motores utilizando a velocidade do motor atualmente configurada.

void spin(
 directionType dir );

2 — Roda o motor ou o grupo de motores à velocidade especificada.

void spin(
 directionType dir,
 double        velocity,
 velocityUnits units );

3 — Aciona o motor ou o grupo de motores utilizando a tensão especificada.

void spin(
 directionType dir,
 double        voltage,
 voltageUnits  units );

Parameters

Parâmetro

Tipo

Descrição

dir

directionType

O sentido de rotação do motor ou grupo de motores: forward ou reverse.

velocity

double

A velocidade de rotação de 0% a 100% quando se utiliza percent.

units

velocityUnits

The unit used to represent velocity:

  • percent / pct — percent
  • rpm — rotations per minute
  • dps — degrees per second

voltage

double

A voltagem para rodar. Um valor negativo roda no sentido oposto ao dado dir.

units

voltageUnits

Unidade utilizada para representar a voltagem:

  • volt — volts
  • voltageUnits::mV — milivolts

Return Values

Esta função não devolve qualquer valor.

Notes
  • Esta função não requer espera e o projeto continuará a ser executado imediatamente após a chamada.

  • O motor ou grupo de motores continuará a rodar até que stop seja chamado ou outra função de movimento seja executada.

  • Funções como isDone e isSpinning não são aplicáveis ​​a spin, uma vez que não utiliza movimento baseado em alvos (não tem um parâmetro rotation ou time).

Examples
// Spin forward, then stop
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();

spinFor#

O comando spinFor faz rodar um motor ou um grupo de motores por uma distância ou período de tempo específico. A rotação é relativa à posição atual do motor ou grupo de motores. Por predefinição, o projeto aguardará até que o motor ou o grupo de motores termine de rodar antes de executar a próxima linha de código.

Available Functions

1 — Gira uma distância específica à velocidade fornecida na chamada da função.

bool spinFor(
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

2 — Aceita um parâmetro de direção e roda por uma distância específica à velocidade fornecida na chamada da função.

bool spinFor(
 directionType dir,
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

3 — Gira uma distância específica utilizando a velocidade do motor actualmente definida.

bool spinFor(
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

4 — Aceita um parâmetro de direção e roda a uma distância específica utilizando a velocidade do motor atualmente definida.

bool spinFor(
 directionType dir,
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

5 — Gira durante um período de tempo específico à velocidade fornecida na chamada da função.

bool spinFor(
 double        time,
 timeUnits     units,
 double        velocity,
 velocityUnits units_v );

6 — Aceita um parâmetro de direção e roda durante um período de tempo específico à velocidade fornecida na chamada da função.

bool spinFor(
 directionType dir,
 double        time,
 timeUnits     units,
 double        velocity,
 velocityUnits units_v );

7 — Gira durante um período de tempo específico utilizando a velocidade do motor actualmente configurada.

bool spinFor(
 double    time,
 timeUnits units );

8 — Aceita um parâmetro de direção e roda durante um período de tempo específico utilizando a velocidade do motor atualmente configurada.

bool spinFor(
 directionType dir,
 double        time,
 timeUnits     units );

Parameters

Parâmetro

Tipo

Descrição

dir

directionType

O sentido de rotação do motor ou grupo de motores: forward ou reverse.

rotation

double

A distância a que o motor ou grupo de motores roda.

units

rotationUnits

Unidade de rotação:

  • deg / degrees — graus
  • turns / rev — rotações

time

double

O período de tempo durante o qual o motor ou o grupo de motores gira.

units

timeUnits

The unit of time:

  • seconds / sec — seconds
  • msec — milliseconds

velocity

double

A velocidade de rotação de 0% a 100% quando se utiliza percent.

units_v

velocityUnits

A unidade utilizada para representar a velocidade velocity:

  • percent / pct — por cento
  • rpm — rotações por minuto
  • dps — graus por segundo

waitForCompletion

bool

​

  • true (padrão) — Faz com que o projeto aguarde até que o motor ou o grupo de motores termine de rodar antes de executar a linha de código seguinte.
  • false — Faz com que a linha de código seguinte seja executada imediatamente.

Return Values

Retorna um valor booleano que indica se o motor ou o grupo de motores atingiu o valor alvo.

  • true — The motor or motor group reached the target value.
  • false — The motor or motor group was not able to reach the target value or waitForCompletion is set to false.
Notes
  • A execução de outra função de movimento do motor (como spin ou stop) enquanto spinFor está em curso irá interromper o movimento atual.

  • Como spinFor é baseado no alvo (utiliza um parâmetro de tempo rotation ou time ), funções como isDone e isSpinning funcionam com spinFor.

Examples
// Spin 1 turn fast, then 1 turn slow
Motor1.spinFor(forward, 1, turns, true);
Motor1.spinFor(reverse, 1, turns, 20, velocityUnits::pct, true);

spinToPosition#

spinToPosition roda um motor ou um grupo de motores para uma posição específica.

A posição de um motor ou grupo de motores é o quanto ele rodou, medido em degrees ou turnsUma volta é igual a 360 graus. No início de um projeto, a posição do motor ou do grupo de motores é definida para 0 graus. A posição do motor ou do grupo de motores também pode ser definida através da função setPosition.

Os valores de posição são absolutos. Isto significa que a direção da rotação depende da posição atual do motor ou do grupo de motores.

Por exemplo, se o motor ou o grupo de motores arrancar a 0 graus e rodar até uma posição de 720 graus, dará duas voltas para a frente. Se depois rodar até uma posição de 360 ​​graus, dará uma volta para trás, porque 360 ​​é inferior a 720.

Available Functions

1 — Roda para uma posição específica à velocidade fornecida na chamada da função.

bool spinToPosition(
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

2 — Gira para uma posição específica utilizando a velocidade do motor actualmente definida.

bool spinToPosition(
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

Parameters

Parâmetro

Tipo

Descrição

rotation

double

O valor da posição para a qual o motor ou o grupo de motores irá rodar.

units

rotationUnits

Unidade de rotação:

  • deg / degrees — graus
  • turns / rev — rotações

velocity

double

A velocidade de rotação de 0% a 100% quando se utiliza percent.

units_v

velocityUnits

A unidade utilizada para representar a velocidade velocity:

  • pct — percentagem
  • rpm — rotações por minuto
  • dps — graus por segundo

waitForCompletion

bool

​

  • true (padrão) — Faz com que o projeto aguarde até que o motor ou o grupo de motores termine de rodar antes de executar a linha de código seguinte.
  • false — Faz com que a linha de código seguinte seja executada imediatamente.

Return Values

Retorna um valor booleano que indica se o motor ou o grupo de motores iniciou o movimento solicitado com base no alvo.

  • true — The motor or motor group begins the requested target-based movement.
  • false — The call fails or waitForCompletion is set to false.
Notes
  • A execução de outra função de movimento do motor (como spin ou spinFor) enquanto spinToPosition está em curso irá interromper o movimento atual.

  • Como spinToPosition é baseado no alvo (utiliza um parâmetro de rotação rotation ), funções como isDone e isSpinning funcionam com spinToPosition.

Examples
// Spin forward, then go to 90°
Motor1.spin(forward);
wait(1, seconds);
Motor1.spinToPosition(90, degrees);

stop#

stop impede que um motor ou um grupo de motores gire.

Available Functions

1 — Para o motor ou grupo de motores utilizando o modo de travagem actualmente configurado.

void stop();

2 — Interrompe o motor ou o grupo de motores utilizando o modo de travagem fornecido na chamada da função.

void stop(
  brakeType mode );

Parameters

Parâmetro

Tipo

Descrição

mode

brakeType

Opcional. Como o motor ou o grupo de motores irá parar:

  • coast — Diminui a velocidade até parar.
  • brake — Pára imediatamente.
  • hold — Pára imediatamente e mantém a posição do motor ou do grupo de motores.

Return Values

Esta função não devolve qualquer valor.

Notes
  • A chamada do comando stop interrompe imediatamente qualquer movimento do motor ou do grupo de motores em curso.

  • Se não for especificado nenhum modo de travagem, o motor ou o grupo de motores utiliza o modo de travagem actualmente configurado.

  • stop interrompe qualquer movimento activo baseado no alvo (como spinFor ou spinToPosition).

Examples
// Spin and coast to a stop
Motor1.setVelocity(100, percent);
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop(coast);

Mutantes#

setVelocity#

O parâmetro setVelocity define a velocidade de rotação de um motor ou grupo de motores. Uma percentagem mais elevada faz com que o motor ou o grupo de motores gire mais rapidamente, enquanto uma percentagem mais baixa faz com que o motor ou o grupo de motores gire mais lentamente.

Cada projeto começa com cada motor ou grupo de motores a rodar a 50% da velocidade por defeito.

Nota: Uma velocidade mais elevada faz com que o motor ou o grupo de motores gire mais rapidamente, mas pode resultar numa menor precisão. Uma velocidade mais baixa faz com que o motor ou o grupo de motores gire mais lentamente, mas pode resultar numa maior precisão.

Available Functions
void setVelocity(
    double        velocity,
    velocityUnits units );

Parameters

Parâmetro

Tipo

Descrição

velocity

double

A velocidade de rotação de 0% a 100% quando se utiliza percent.

units

velocityUnits

A unidade utilizada para representar a velocidade velocity:

  • percent / pct — por cento
  • rpm — rotações por minuto
  • dps — graus por segundo

Return Values

Esta função não devolve qualquer valor.

Notes
  • Qualquer função subsequente do movimento do motor (como spin, spinFor, ou spinToPosition) que não especifique explicitamente uma velocidade utilizará este valor.

Examples
// Try default, then slow, then fast
Motor1.spinFor(forward, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(20, percent);
Motor1.spinFor(reverse, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(100, percent);
Motor1.spinFor(forward, 180, degrees);

setMaxTorque#

O binário indica a força que um motor ou grupo de motores consegue exercer força de tração ou de empurrão enquanto gira.

setMaxTorque define o binário máximo que um motor ou grupo de motores pode utilizar.

Uma percentagem mais elevada permite que o motor ou o grupo de motores empurre com mais força, como quando se levanta um objeto pesado. Uma percentagem mais baixa limita a força que o motor ou grupo de motores pode exercer. Isto pode ajudar a proteger o robô no caso de o motor ou grupo de motores ficar preso ou atingir o limite da sua capacidade de movimento.

Todos os projetos começam com o binário de cada motor ou grupo de motores a 50% por defeito.

Available Functions

1 — Define o binário máximo em percentagem do binário nominal do motor ou do grupo de motores.

void setMaxTorque(
 double       value,
 percentUnits units );

2 — Define o binário máximo utilizando unidades físicas de binário.

void setMaxTorque(
 double      value,
 torqueUnits units );

3 — Define o binário máximo limitando a corrente do motor.

void setMaxTorque(
 double       value,
 currentUnits units );

Parameters

Parâmetro

Tipo

Descrição

value

double

O binário máximo que o motor ou grupo de motores pode utilizar.

units

percentUnits

Specifies torque as a percentage: percent / pct — percent

units

torqueUnits

Especifica o binário em unidades físicas, tais como:

  • Nm — Newton-metros
  • InLb — polegadas-libras

units

currentUnits

Especifica o binário limitando a corrente do motor:

  • amp

Return Values

Esta função não devolve qualquer valor.

Notes
  • Quando se utiliza currentUnits, o binário é limitado restringindo a quantidade de corrente elétrica que o motor ou o grupo de motores pode utilizar.

setPosition#

A posição de um motor ou grupo de motores é o quanto ele rodou, medido em degrees ou turns. Uma volta é igual a 360 graus. setPosition altera a posição atual do motor ou do grupo de motores para um novo valor.

Por exemplo, se um motor ou um grupo de motores tiver rodado 180 graus, definir a posição para 0 graus irá repor essa posição de 180 para 0 graus. Em seguida, o motor ou o grupo de motores poderá rodar para posições com base neste novo valor.

Available Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

Parâmetro

Tipo

Descrição

value

double

O valor de posição a definir para o motor ou grupo de motores.

units

rotationUnits

The position unit:

  • deg / degrees — degrees
  • turns / rev — revolutions

Return Values

Esta função não devolve qualquer valor.

Notes
  • Após a chamada de setPosition, as chamadas subsequentes para spinToPosition utilizarão a posição atualizada como referência.

setStopping#

setStopping define a forma como um motor ou grupo de motores irá parar de se mover: por travagem, inércia ou paragem.

Available Functions
void setStopping(
  brakeType mode );

Parameters

Parâmetro

Tipo

Descrição

mode

brakeType

Como o motor ou o grupo de motores irá parar:

  • brake — Pára imediatamente.
  • coast — Diminui a velocidade até parar.
  • hold — Pára imediatamente e mantém a posição do motor ou do grupo de motores.

Return Values

Esta função não devolve qualquer valor.

Notes
  • Qualquer chamada subsequente a stop sem um modo de travagem especificado utilizará este valor.

setTimeout#

O parâmetro setTimeout setTimeout define durante quanto tempo um motor ou grupo de motores tentará completar um movimento. Se o motor ou o grupo de motores não conseguir completar o movimento nesse tempo, interromperá a tentativa e passará para a linha de código seguinte. Isto evita que o motor ou o grupo de motores fique preso num movimento.

Available Functions
void setTimeout(
    int32_t   time,
    timeUnits units );

Parameters

Parâmetro

Tipo

Descrição

time

int32_t

O tempo que o motor ou o grupo de motores pode tentar para completar um movimento. Deve ser um número inteiro positivo.

units

timeUnits

Unidade de tempo:

  • msec — milissegundos
  • seconds / sec — segundos

Valores de retorno

Esta função não devolve qualquer valor.

Notes
  • O tempo limite do motor ou do grupo de motores é utilizado para impedir que os movimentos que não atingem a posição desejada interrompam a execução de outros comandos na pilha.

  • Se o motor ou o grupo de motores não atingir a posição desejada antes de o tempo limite expirar, interromperá a tentativa e passará para a linha de código seguinte.

  • O tempo limite aplica-se a funções que têm um valor alvo, como spinFor e spinToPosition.

Examples
// Stop a long move after 1 second
Motor1.setTimeout(1, seconds);
Motor1.spinFor(forward, 2, turns);
Motor1.spinToPosition(0, degrees);

Getters#

isDone#

isDone devolve um valor booleano indicando se o motor ou o grupo de motores terminou de se mover. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do motor ou do grupo de motores.

  • true — O motor ou grupo de motores terminou de se mover.

  • false — O motor ou grupo motor ainda está em movimento.

Esta função funciona em conjunto com as seguintes funções de movimento que têm o parâmetro waitForCompletion : spinFor e spinToPosition.

Available Functions
bool isDone();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Retorna um valor booleano indicando se o motor ou o grupo de motores terminou de se mover.

  • true — The motor or motor group is finished moving.
  • false — The motor or motor group is still moving.
Notes
  • isDone funciona em conjunto com as seguintes funções de movimento que têm o parâmetro waitForCompletion : spinFor e spinToPosition.

Examples
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
  if (Motor1.isDone()) {
    Drivetrain.stop();
  } else {
    Drivetrain.drive(forward);
  }
}

isSpinning#

isSpinning retorna se o motor ou o grupo de motores está a rodar, como um valor booleano. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do motor ou do grupo de motores.

  • true — O motor ou o grupo de motores está a rodar.

  • false — O motor ou o grupo de motores não está a rodar.

Esta função funciona em conjunto com funções de movimento Motion como spin, spinFor e spinToPosition.

Available Functions
bool isSpinning();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Retorna um valor booleano indicando se o motor ou o grupo de motores está a rodar.

  • true — The motor or motor group is spinning.
  • false — The motor or motor group is not spinning.
Notes Examples
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
  if (Motor1.isSpinning()) {
    Drivetrain.drive(forward);
  } else {
    Drivetrain.stop();
  }
}

position#

A motor or motor group’s position is how far it has spun, measured in degrees or turns. One turn is equal to 360 degrees. position returns the motor or motor group’s current position.

No início de um projeto, a posição do motor ou do grupo de motores é definida para 0 graus. Se o motor ou o grupo de motores rodar uma volta para a frente, a posição será de 360 ​​graus ou 1 volta. Se o motor ou o grupo de motores rodar no sentido oposto, a posição será negativa.

Available Functions
double position(
  rotationUnits units );

Parameters

Parâmetro

Tipo

Descrição

units

rotationUnits

A unidade para voltar à posição do motor ou do grupo de motores em:

  • deg / degrees — graus
  • turns / rev — rotações

Return Values

Retorna um valor double que representa a posição atual do motor ou do grupo de motores nas unidades especificadas.

Notes
  • A chamada setPosition altera o ponto de referência para este valor.

  • O valor devolvido reflete a leitura atual do codificador e não indica se o motor ou o grupo de motores está em movimento ativo.

  • Quando chamada num grupo de motores motor_group, esta função devolve a posição do primeiro motor do grupo.

Examples
// Spin, then show the final position
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
Brain.Screen.print("Pos: %f", Motor1.position(degrees));

velocity#

A velocidade velocity indica a rapidez com que o motor ou o grupo de motores está a rodar.

Um valor positivo significa que o motor ou o grupo de motores está a rodar para a frente. Um valor negativo significa que está a rodar para trás.

Available Functions
double velocity(
    velocityUnits units );

Parameters

Parâmetro

Tipo

Descrição

units

velocityUnits

The unit used to represent velocity:

  • percent / pct — percent
  • rpm — rotations per minute
  • dps — degrees per second

Return Values

Devolve um valor double que representa a velocidade de rotação do motor ou do grupo de motores nas unidades especificadas.

Notas

  • Quando chamada num grupo de motores motor_group, esta função devolve a velocidade do primeiro motor do grupo.

current#

A corrente current indica a quantidade de corrente elétrica que o motor ou grupo de motores está a utilizar. A corrente representa a quantidade de eletricidade que flui através do motor ou do grupo de motores. Quando é devolvida em amperes, a corrente é reportada de 0,0 a 1,2 A.

Um valor de corrente mais elevado significa que o motor ou o grupo de motores está a consumir mais corrente elétrica. Isto pode acontecer quando o motor ou o grupo de motores está a levantar algo pesado, a empurrar um objeto ou a tentar mover-se quando está bloqueado.

Isto pode ser utilizado para verificar se o motor ou o grupo de motores está a apresentar dificuldades durante um movimento. Se a corrente se mantiver elevada, o motor pode sobreaquecer ou utilizar a energia de forma menos eficiente.

Available Functions

1 — Devolve a corrente elétrica do motor ou do grupo de motores em amperes.

double current(
  currentUnits units = amp );

2 — Devolve a corrente elétrica do motor ou do grupo de motores em percentagem da corrente nominal máxima.

double current(
  percentUnits units );

Parameters

Parâmetro

Tipo

Descrição

units

currentUnits

A unidade utilizada para representar a corrente:amp (padrão) — amperes

units

percentUnits

Representa a corrente em percentagem da corrente nominal máxima do motor:percent / pct%

Return Values

Devolve um valor double que representa a quantidade de corrente elétrica que o motor ou grupo de motores está a consumir nas unidades especificadas.

Notas

  • Quando chamada num grupo de motores motor_group, esta função devolve a corrente elétrica total a todos os motores do grupo.

power#

A potência power indica a potência que o motor ou o grupo de motores está a consumir em watts. A potência mostra a rapidez com que o motor ou o grupo de motores está a consumir energia.

Um valor de potência mais elevado significa que o motor ou o grupo de motores está a consumir energia mais rapidamente. Isto pode acontecer quando o motor ou o grupo de motores está a levantar algo pesado, a empurrar um objeto ou a tentar mover-se quando está bloqueado.

Este pode ser utilizado para comparar movimentos ou verificar se o motor ou o grupo de motores está a apresentar dificuldades. Se a potência se mantiver elevada, o motor pode sobreaquecer ou utilizar a energia de forma menos eficiente.

Available Functions
double power(
  powerUnits units = watt );

Parâmetros

Parâmetro

Tipo

Descrição

units

powerUnits

Unidade utilizada para representar a potência do motor:

  • watt (padrão) — watts

Valores de retorno

Devolve um valor double representando a quantidade de energia que o motor ou grupo de motores está a utilizar, em watts.

Notas

  • Quando chamada num grupo de motores motor_group, esta função devolve a potência elétrica do primeiro motor do grupo.

torque#

O binário indica a força com que um motor ou grupo de motores está a rodar, empurrar ou puxar enquanto roda.

torque devolve a quantidade de binário que o motor ou grupo de motores está a utilizar.

Um valor de binário mais elevado significa que o motor ou o grupo de motores está a empurrar ou a puxar com mais força. Isto pode acontecer quando o motor ou o grupo de motores está a levantar algo pesado, a empurrar um objeto ou a tentar mover-se quando está preso.

Isto pode ser utilizado para verificar se o motor ou grupo motor está com dificuldades ou para comparar quanta força é necessária para diferentes movimentos.

Para definir o binário de um motor ou grupo de motores, utilize setMaxTorque.

Available Functions
double torque(
  torqueUnits units = Nm );

Parâmetros

Parâmetro

Tipo

Descrição

units

torqueUnits

Unidade utilizada para representar o binário do motor:

  • Nm (padrão) — Newton-metros
  • InLb — polegadas-libras

Valores de retorno

Devolve um valor double que representa a quantidade de binário que o motor ou grupo de motores está a utilizar nas unidades especificadas.

Notas

  • Quando chamada num grupo de motores motor_group, esta função devolve o binário de saída mecânica do primeiro motor do grupo.

efficiency#

A eficiência efficiency indica a eficiência com que o motor ou grupo de motores está a utilizar energia, numa percentagem de 0% a 100%.

A eficiência indica quanta potência do motor ou do grupo motor está a ser utilizada para o movimento. Um valor de eficiência mais elevado significa que está a ser utilizada mais potência do motor ou grupo motor para movimentar o corpo. Um valor de eficiência mais baixo pode ocorrer quando o motor ou o grupo motor está a trabalhar muito, mas não se move muito, como quando está preso ou a empurrar um objeto.

Isto pode ser utilizado para comparar movimentos ou verificar se o motor ou grupo motor está a desperdiçar energia em vez de a utilizar para o movimento.

Available Functions
double efficiency(
  percentUnits units = percent );

Parâmetros

Parâmetro

Tipo

Descrição

units

percentUnits

Unidade utilizada para representar o rendimento do motor:

  • percent / percentUnits::pct (padrão) — por cento

Valores de retorno

Devolve um valor double representando a eficiência com que o motor ou grupo de motores está a utilizar energia, em percentagem.

Notas

  • Quando chamada num grupo de motores motor_group, esta função devolve o rendimento do primeiro motor do grupo.

temperature#

A temperatura temperature motores.

A temperatura do motor indica o quão aquecido está o motor ou o grupo do motor. Uma temperatura mais elevada significa que o motor ou o grupo do motor está a aquecer durante o funcionamento. O motor deve permanecer abaixo 55°C para continuar a funcionar com o máximo desempenho.

Se o motor ou o grupo de motores aquecer demasiado, reduzirá a sua corrente máxima para se proteger. A 70°C, o motor deixará de funcionar até arrefecer.

Isto pode ser utilizado para verificar se o motor ou grupo motor está a sobreaquecer durante movimentos repetidos, longos períodos de funcionamento ou quando está a pressionar contra um objeto.

Available Functions

1 — Devolve a temperatura do motor ou do grupo de motores em percentagem da temperatura máxima de funcionamento.

double temperature(
  percentUnits units = percent );

2 — Devolve a temperatura do motor ou do grupo de motores em unidades de temperatura física.

double temperature(
  temperatureUnits units );

Parâmetros

Parâmetro

Tipo

Descrição

units

percentUnits

A unidade utilizada para representar a temperatura do motor ou do grupo de motores em percentagem:

  • percent / percentUnits::pct (padrão) — por cento

units

temperatureUnits

A unidade utilizada para representar a temperatura do motor ou do grupo de motores em graus:

  • celsius — graus Celsius
  • fahrenheit — graus Fahrenheit

Valores de retorno

Devolve um valor double que representa a temperatura do motor ou do grupo de motores nas unidades especificadas.

Notas

  • A gama de temperaturas de funcionamento do motor é de aproximadamente 20°C (68°F) a 70°C (158°F).

  • Quando chamada num grupo de motores motor_group, esta função devolve a temperatura do primeiro motor do grupo.

voltage#

A tensão voltage motores.

Available Functions
double voltage(
  voltageUnits units = volt );

Parâmetros

Parâmetro

Tipo

Descrição

units

voltageUnits

Unidade para representar a voltagem:

  • volt (padrão)
  • voltageUnits::mV — milivolts

Valores de retorno

Devolve um valor double que representa a tensão elétrica fornecida ao motor ou ao grupo de motores nas unidades especificadas.

Notas

  • Quando chamada num grupo de motores motor_group, esta função devolve a tensão elétrica do primeiro motor do grupo.

direction#

A direção direction motores.

Available Functions
directionType direction();

Parâmetros

Esta função não recebe qualquer parâmetro.

Valores de retorno

Retorna um valor directionType indicando a direção atual do motor ou do grupo de motores:

  • forward — The motor or motor group is spinning forward.
  • reverse — The motor or motor group is spinning in reverse.

installed#

installed retorna se o motor ou grupo motor está ligado ao cérebro IQ (2ª geração).

Available Functions
bool installed();

Parâmetros

Esta função não recebe qualquer parâmetro.

Valores de retorno

Retorna um valor booleano bool indicando se o motor ou o grupo de motores está ligado.

  • true — The motor or motor group is connected.
  • false — The motor or motor group is not connected.

count#

count devolve o número de motores num grupo de motores.

Available Functions
int32_t count();

Parâmetros

Esta função não recebe qualquer parâmetro.

Valores de retorno

Retorna um valor int32_t que representa o número de motores do grupo de motores.