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.
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
motorpara o IQ Smart Motor ligado à Smart Port especificada. O motor utiliza automaticamente a engrenagem internagearSetting.motor( int32_t index );
2 — Cria um objeto
motorna Smart Port especificada e, opcionalmente, inverte o seu sentido. O motor utiliza automaticamente a engrenagem internagearSetting.motor( int32_t index, bool reverse );
3 — Cria um objeto
motorna Smart Port especificada com a configuração de engrenagemgearSetting.motor( int32_t index, gearSetting gears );
4 — Cria um objeto
motorna Smart Port especificada com a configuração de engrenagemgearSettinge 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 |
|---|---|---|
|
|
A Smart Port à qual o motor está ligado, escrita como |
|
|
Define se o sentido de rotação do motor será invertido:
|
|
|
Especifica a relação de transmissão do cartucho de engrenagem interna.
|
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 |
|---|---|---|
|
|
O primeiro motor adicionado ao grupo. |
|
|
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.
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 );
Parameters3 — Aciona o motor ou o grupo de motores utilizando a tensão especificada.
void spin( directionType dir, double voltage, voltageUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O sentido de rotação do motor ou grupo de motores: |
|
|
A velocidade de rotação de 0% a 100% quando se utiliza |
|
|
The unit used to represent velocity:
|
|
|
A voltagem para rodar. Um valor negativo roda no sentido oposto ao dado |
|
|
Unidade utilizada para representar a voltagem:
|
Esta função não devolve qualquer valor.
NotesEsta 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
stopseja chamado ou outra função de movimento seja executada.Funções como
isDoneeisSpinningnão são aplicáveis aspin, uma vez que não utiliza movimento baseado em alvos (não tem um parâmetrorotationoutime).
// 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.
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 );
Parameters8 — 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 );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O sentido de rotação do motor ou grupo de motores: |
|
|
A distância a que o motor ou grupo de motores roda. |
|
|
Unidade de rotação:
|
|
|
O período de tempo durante o qual o motor ou o grupo de motores gira. |
|
|
The unit of time:
|
|
|
A velocidade de rotação de 0% a 100% quando se utiliza |
|
|
A unidade utilizada para representar a velocidade
|
|
|
|
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 orwaitForCompletionis set tofalse.
A execução de outra função de movimento do motor (como
spinoustop) enquantospinForestá em curso irá interromper o movimento atual.Como
spinForé baseado no alvo (utiliza um parâmetro de temporotationoutime), funções comoisDoneeisSpinningfuncionam comspinFor.
// 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 Functions1 — 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 );
Parameters2 — Gira para uma posição específica utilizando a velocidade do motor actualmente definida.
bool spinToPosition( double rotation, rotationUnits units, bool waitForCompletion = true );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O valor da posição para a qual o motor ou o grupo de motores irá rodar. |
|
|
Unidade de rotação:
|
|
|
A velocidade de rotação de 0% a 100% quando se utiliza |
|
|
A unidade utilizada para representar a velocidade
|
|
|
|
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 orwaitForCompletionis set tofalse.
A execução de outra função de movimento do motor (como
spinouspinFor) enquantospinToPositionestá em curso irá interromper o movimento atual.Como
spinToPositioné baseado no alvo (utiliza um parâmetro de rotaçãorotation), funções comoisDoneeisSpinningfuncionam comspinToPosition.
// 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.
1 — Para o motor ou grupo de motores utilizando o modo de travagem actualmente configurado.
void stop();
Parameters2 — Interrompe o motor ou o grupo de motores utilizando o modo de travagem fornecido na chamada da função.
void stop( brakeType mode );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Opcional. Como o motor ou o grupo de motores irá parar:
|
Esta função não devolve qualquer valor.
NotesA chamada do comando
stopinterrompe 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.
stopinterrompe qualquer movimento activo baseado no alvo (comospinForouspinToPosition).
// 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 Functionsvoid setVelocity(
double velocity,
velocityUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A velocidade de rotação de 0% a 100% quando se utiliza |
|
|
A unidade utilizada para representar a velocidade
|
Esta função não devolve qualquer valor.
NotesQualquer função subsequente do movimento do motor (como
spin,spinFor, ouspinToPosition) que não especifique explicitamente uma velocidade utilizará este valor.
// 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 Functions1 — 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 );
Parameters3 — Define o binário máximo limitando a corrente do motor.
void setMaxTorque( double value, currentUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O binário máximo que o motor ou grupo de motores pode utilizar. |
|
|
Specifies torque as a percentage: |
|
|
Especifica o binário em unidades físicas, tais como:
|
|
|
Especifica o binário limitando a corrente do motor:
|
Esta função não devolve qualquer valor.
NotesQuando 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 Functionsvoid setPosition(
double value,
rotationUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O valor de posição a definir para o motor ou grupo de motores. |
|
|
The position unit:
|
Esta função não devolve qualquer valor.
NotesApós a chamada de
setPosition, as chamadas subsequentes paraspinToPositionutilizarã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.
void setStopping(
brakeType mode );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Como o motor ou o grupo de motores irá parar:
|
Esta função não devolve qualquer valor.
NotesQualquer chamada subsequente a
stopsem 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.
void setTimeout(
int32_t time,
timeUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O tempo que o motor ou o grupo de motores pode tentar para completar um movimento. Deve ser um número inteiro positivo. |
|
|
Unidade de tempo:
|
Valores de retorno
Esta função não devolve qualquer valor.
NotesO 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
spinForespinToPosition.
// 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.
bool isDone();
Esta função não aceita qualquer parâmetro.
Return ValuesRetorna 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.
isDonefunciona em conjunto com as seguintes funções de movimento que têm o parâmetrowaitForCompletion:spinForespinToPosition.
// 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.
bool isSpinning();
Esta função não aceita qualquer parâmetro.
Return ValuesRetorna 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.
isSpinningfunciona com funções de movimento Motion comospin,spinForespinToPosition.
// 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 Functionsdouble position(
rotationUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A unidade para voltar à posição do motor ou do grupo de motores em:
|
Retorna um valor double que representa a posição atual do motor ou do grupo de motores nas unidades especificadas.
A chamada
setPositionaltera 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.
// 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 Functionsdouble velocity(
velocityUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
The unit used to represent velocity:
|
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 Functions1 — Devolve a corrente elétrica do motor ou do grupo de motores em amperes.
double current( currentUnits units = amp );
Parameters2 — Devolve a corrente elétrica do motor ou do grupo de motores em percentagem da corrente nominal máxima.
double current( percentUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A unidade utilizada para representar a corrente: |
|
|
Representa a corrente em percentagem da corrente nominal máxima do motor: |
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 Functionsdouble power(
powerUnits units = watt );
Parâmetros
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Unidade utilizada para representar a potência do motor:
|
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.
double torque(
torqueUnits units = Nm );
Parâmetros
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Unidade utilizada para representar o binário do motor:
|
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 Functionsdouble efficiency(
percentUnits units = percent );
Parâmetros
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Unidade utilizada para representar o rendimento do motor:
|
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 Functions1 — 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 |
|---|---|---|
|
|
A unidade utilizada para representar a temperatura do motor ou do grupo de motores em percentagem:
|
|
|
A unidade utilizada para representar a temperatura do motor ou do grupo de motores em graus:
|
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) a70°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.
double voltage(
voltageUnits units = volt );
Parâmetros
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Unidade para representar a voltagem:
|
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.
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).
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.
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.