Movimento#
Introdução#
Os motores controlam a forma como as partes de um robô se movem. Os 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 é configurado na janela Dispositivos. Dependendo da configuração, os nomes dos motores e as suas direções podem variar. Por exemplo, a configuração Competition Advanced 2.0 tem um motor denominado ArmMotor, com as direções para cima e para baixo. Um robô personalizado pode utilizar nomes de motores ou direções diferentes.
Por predefinição, para a frente roda um motor no sentido anti-horário e para trás roda um motor no sentido horário. Se um motor estiver configurado para inverter o sentido de rotação na janela Dispositivos, estes sentidos serão trocados.
Existem muitas formas de programar motores. Abaixo está uma lista de todos os blocos de movimento:
Ações — Parar e rodar os motores.
rodar motor — Roda um motor para a frente ou para trás indefinidamente.
rodar motor por — Roda um motor a uma distância específica.
rodar motor para posição — Roda um motor para uma posição específica.
parar motor — Impede que um motor gire.
Definições — Ajuste as definições do motor.
definir posição do motor — Altera a posição atual do motor para um novo valor.
definir velocidade do motor — Indica ao motor a velocidade de rotação.
set motor stopping — Define a forma como um motor irá parar de se mover: por travagem, inércia ou paragem.
definir binário máximo do motor — Define o quanto um motor pode empurrar enquanto gira.
definir tempo limite do motor — Define quantos segundos um motor tentará completar um movimento.
Valores — Verificar o estado do motor.
motor is done — Reporta se o motor já terminou de se mover.
motor está a rodar? — Reporta se o motor está a rodar.
posição do motor — Reporta a posição atual do motor.
velocidade do motor — Reporta a velocidade de rotação do motor, em percentagem de -100% a 100%.
corrente do motor — Reporta a quantidade de energia que o motor está a utilizar da bateria, em percentagem de 0% a 100%.
Ações#
motor de rotação#
O bloco de pilha motor de rotação roda um motor para a frente ou para trás indefinidamente. O motor continuará a rodar até receber outra ação, como rodar numa direção diferente ou parar.
girar [ArmMotor v] [subir v]
Parâmetros |
Descrição |
|---|---|
motor |
O motor a ser rodado. Selecione um dos motores configurados na janela Dispositivos. |
direção |
O sentido de rotação do motor. Por defeito, as opções são para a frente e para trás. As opções de direção podem mudar dependendo da configuração do motor. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Raise the ArmMotor, then stop.]
girar [ArmMotor v] [subir v]
aguardar [1] segundos
parar [ArmMotor v]
motor de rotação para#
O bloco motor de rotação pára acciona um motor por uma distância específica. A rotação é relativa à posição atual do motor. O projeto aguardará até que o motor termine de rodar antes que o próximo bloco da pilha seja acionado.
girar [ArmMotor v] [subir v] por [90] [graus v] ▶
Parâmetros |
Descrição |
|---|---|
motor |
O motor a ser rodado. Selecione um dos motores configurados na janela Dispositivos. |
direção |
O sentido de rotação do motor. Por defeito, as opções são para a frente e para trás. As opções de direção podem mudar dependendo da configuração do motor. |
distância |
A distância a que o motor roda. Graus são valores inteiros. As voltas podem ser valores inteiros ou decimais. |
unidade |
A unidade de distância: graus ou voltas. |
e não espere |
Selecione a seta ( ▶ ) para expandir o bloco e apresentar e não esperar, para que o próximo bloco da pilha seja executado imediatamente. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Raise and lower the ArmMotor.]
girar [ArmMotor v] [subir v] por [180] [graus v] ▶
aguardar [1] segundos
girar [ArmMotor v] [descer v] por [180] [graus v] ▶
Rode o motor para a posição desejada.#
O bloco de pilha rodar motor para posição roda um motor para uma posição específica.
A posição de um motor é o quanto ele rodou, medida em graus ou voltas. Uma volta é igual a 360 graus. No início de um projeto, a posição do motor é definida para 0 graus. A posição do motor também pode ser definida através do bloco definir posição do motor.
Os valores de posição são absolutos. Isto significa que o sentido de rotação depende da posição atual do motor.
girar [ArmMotor v] para a posição (90) [graus v] ▶
Parâmetros |
Descrição |
|---|---|
motor |
O motor a ser rodado. Selecione um dos motores configurados na janela Dispositivos. |
posição |
O valor da posição para a qual o motor irá rodar. Graus utilizam números inteiros. As voltas podem utilizar números inteiros ou decimais. |
unidade |
A unidade de posição: graus ou voltas. |
e não espere |
Selecione a seta ( ▶ ) para expandir o bloco e apresentar e não esperar, para que o próximo bloco da pilha seja executado imediatamente. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Return ArmMotor to 0 degrees after raising.]
girar [ArmMotor v] [subir v] por [180] [graus v] ▶
aguardar [1] segundos
girar [ArmMotor v] para a posição [0] [graus v] ▶
motor de paragem#
O bloco de paragem do motor impede que o motor gire.
parar [ArmMotor v]
Parâmetros |
Descrição |
|---|---|
motor |
O motor que deve ser parado. Selecione um dos motores configurados na janela Dispositivos. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Raise the ArmMotor.]
girar [ArmMotor v] [subir v]
aguardar [1] segundos
parar [ArmMotor v]
Configurações#
definir posição do motor#
A posição de um motor é o quanto ele rodou, medida em graus ou voltas. Uma volta equivale a 360 graus. O bloco de pilha definir posição do motor altera a posição atual do motor para um novo valor.
Por exemplo, se um motor tiver rodado 180 graus, definir a posição para 0 graus irá repor essa posição de 180 para 0 graus. De seguida, o motor poderá rodar para posições baseadas nesse novo valor.
definir posição de [ArmMotor v] para (0) [graus v]
Parâmetros |
Descrição |
|---|---|
motor |
O motor para o qual pretende definir a posição. Selecione um dos motores configurados na janela Dispositivos. |
posição |
O valor de posição a definir para o motor. Graus podem ser valores inteiros. As voltas podem ser valores inteiros ou decimais. |
unidade |
A unidade de posição: graus ou voltas. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Return ArmMotor to 0 degrees after raising.]
definir posição de [ArmMotor v] para [0] [graus v]
girar [ArmMotor v] [subir v] por [180] [graus v] ▶
aguardar [1] segundos
girar [ArmMotor v] para a posição [0] [graus v] ▶
definir velocidade do motor#
O bloco de pilha definir velocidade do motor indica ao motor a velocidade de rotação. Uma percentagem mais elevada faz com que o motor gire mais depressa e uma percentagem mais baixa faz com que o motor gire mais devagar.
Cada projeto começa com cada motor a rodar a 50% da velocidade por defeito.
Nota: Uma velocidade mais elevada faz com que o motor gire mais depressa, mas pode ser menos precisa. Uma velocidade mais baixa faz com que o motor gire mais devagar, mas pode ser mais preciso.
definir velocidade de [ArmMotor v] para [50] %
Parâmetros |
Descrição |
|---|---|
motor |
Selecione o motor para o qual pretende definir a velocidade. Escolha entre os motores configurados na janela Dispositivos. |
velocidade |
A velocidade de rotação varia entre 0% a 100%. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor at different velocities.]
girar [ArmMotor v] [subir v] por [180] [graus v] ▶
aguardar [1] segundos
[Move slow.]
definir velocidade de [ArmMotor v] para [20] %
girar [ArmMotor v] [descer v] por [180] [graus v] ▶
aguardar [1] segundos
[Move fast.]
definir velocidade de [ArmMotor v] para [100] %
girar [ArmMotor v] [subir v] por [180] [graus v] ▶
definir paragem do motor#
O bloco de configuração set motor stopping define a forma como um motor irá parar de se mover: por travagem, inércia ou paragem.
definir parada de [ArmMotor v] para [frear v]
Parâmetros |
Descrição |
|---|---|
motor |
Selecione o motor para o qual pretende configurar o comportamento de paragem. Escolha entre os motores configurados na janela Dispositivos. |
comportamento de interrupção |
Como o motor irá parar:
|
Por exemplo, se for utilizada uma configuração Competition Advanced 2.0 e o ArmMotor estiver configurado para manter o braço na posição atual, o motor irá mantê-lo nessa posição até que ocorra outro movimento. Isto significa que o motor trabalhará contra a gravidade para manter o braço no ar, caso tenha sido parado com o braço levantado.
Se este bloco não for utilizado, o motor utilizará o travão ao parar.
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor, then coast to a stop.]
definir velocidade de [ArmMotor v] para [20] %
definir parada de [ArmMotor v] para [deslizar v]
girar [ArmMotor v] [subir v]
aguardar [1] segundos
parar [ArmMotor v]
Defina o binário máximo do motor.#
O binário é uma força de rotação. Indica a força que um motor pode exercer ao rodar, seja empurrando ou puxando.
O bloco de configuração definir binário máximo do motor define o binário máximo que um motor pode utilizar.
Uma percentagem mais elevada permite que o motor empurre com mais força, como quando levanta um objeto pesado. Uma percentagem mais baixa limita a força que o motor pode exercer. Isto pode ajudar a proteger o robô caso o motor bloqueie ou atinja o limite da sua capacidade de movimento.
Todos os projetos começam com o binário de cada motor a 50% por defeito.
definir torque máximo de [ArmMotor v] para (50) %
Parâmetros |
Descrição |
|---|---|
motor |
Selecione o motor para o qual pretende definir o binário máximo. Escolha entre os motores configurados na janela Dispositivos. |
binário |
O binário máximo que o motor pode utilizar, de 0% a 100%. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor at different torques.]
girar [ArmMotor v] [subir v] por [180] [graus v] ▶
aguardar [1] segundos
[Move with less torque.]
definir torque máximo de [ArmMotor v] para [20] %
girar [ArmMotor v] [descer v] por [180] [graus v] ▶
aguardar [1] segundos
[Move with maximum torque.]
definir torque máximo de [ArmMotor v] para [100] %
girar [ArmMotor v] [subir v] por [180] [graus v] ▶
definir tempo limite do motor#
O bloco de pilha definir tempo limite do motor define durante quantos segundos um motor tentará completar um movimento. Se o motor não conseguir concluir dentro deste tempo, interromperá a tentativa e passará para o bloco seguinte da pilha. Isto impede que o motor fique preso num movimento.
definir tempo limite de [ArmMotor v] para (1) segundos
Parâmetros |
Descrição |
|---|---|
motor |
Selecione o motor para o qual pretende definir o tempo limite. Escolha entre os motores configurados na janela Dispositivos. |
hora |
O número de segundos que o motor pode tentar para completar um movimento. Pode ser um número inteiro ou decimal. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Move ArmMotor as far as possible for 1 second before resetting.]
definir posição de [ArmMotor v] para [0] [graus v]
definir tempo limite de [ArmMotor v] para [1] segundos
girar [ArmMotor v] [subir v] por [180] [graus v] ▶
girar [ArmMotor v] para a posição [0] [graus v] ▶
Valores#
O motor está pronto?#
O bloco booleano motor is done informa se o motor terminou de se mover. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do motor.
Verdadeiro — O motor terminou de trabalhar.
Falso — O motor ainda está em movimento.
Este bloco funciona em conjunto com os seguintes blocos de Movimento que têm o parâmetro e não esperar: rodar motor para e rodar motor para posição.
<[ArmMotor v] concluído?>
Parâmetros |
Descrição |
|---|---|
motor |
O motor deve informar se terminou de se mover. Selecione um dos motores configurados na janela Dispositivos. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Turn the Eye Sensor's light on while ArmMotor is moving.]
girar [ArmMotor v] [subir v] por [180] [graus v] ◀ e não aguardar
aguardar [0.1] segundos
para sempre
se <[ArmMotor v] concluído?> então
definir luz do olho [desligado v]
senão
definir luz do olho [ligado v]
O motor está a rodar?#
O bloco booleano O motor está a rodar? informa se o motor está a rodar. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do motor.
Verdadeiro — O motor está a rodar.
Falso — O motor não está a rodar.
Este bloco funciona em conjunto com os seguintes blocos de Movimento que têm o parâmetro e não esperar: rodar motor para e rodar motor para posição.
<[ArmMotor v] girando?>
Parâmetros |
Descrição |
|---|---|
motor |
O motor deve informar se está a rodar. Selecione um dos motores configurados na janela Dispositivos. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Turn the Eye Sensor's light on while ArmMotor is moving.]
girar [ArmMotor v] [subir v] por [180] [graus v] ◀ e não aguardar
aguardar [0.1] segundos
para sempre
se <[ArmMotor v] girando?> então
definir luz do olho [ligado v]
senão
definir luz do olho [desligado v]
posição do motor#
A posição de um motor indica o quanto ele rodou, medido em graus ou em voltas. O bloco de relatório de posição do motor informa a posição atual do motor.
No início de um projeto, a posição do motor é definida para 0 graus. Se o motor rodar uma volta completa para a frente, a posição será de 360 graus ou 1 volta. Se o motor rodar no sentido oposto, a posição será negativa.
(posição de [ArmMotor v] em [graus v] :: custom-motion)
Parâmetros |
Descrição |
|---|---|
motor |
O motor cuja posição será reportada. Selecione um dos motores configurados na janela Dispositivos. |
unidade |
A unidade para indicar a posição do motor é: graus ou rotações. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Display how far the ArmMotor moves after one second.]
definir posição de [ArmMotor v] para [0] [graus v]
imprimir [Start: ] ▶
imprimir (posição de [ArmMotor v] em [graus v] :: custom-motion) ▶
mover cursor para a próxima linha
girar [ArmMotor v] [subir v]
aguardar [1] segundos
parar [ArmMotor v]
imprimir [After: ] ▶
imprimir (posição de [ArmMotor v] em [graus v] :: custom-motion) ▶
velocidade do motor#
O bloco de relatório de velocidade do motor indica a velocidade de rotação do motor, em percentagem, de -100% a 100%.
Um valor positivo significa que o motor está a rodar para a frente. Um valor negativo significa que o motor está a rodar para trás.
(velocidade de [ArmMotor v] em %)
Parâmetros |
Descrição |
|---|---|
motor |
O motor cuja velocidade será reportada. Selecione um dos motores configurados na janela Dispositivos. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Display the ArmMotor's velocity when it moves.]
imprimir [Resting: ] ▶
imprimir (velocidade de [ArmMotor v] em %) ▶
mover cursor para a próxima linha
girar [ArmMotor v] [subir v]
aguardar [1] segundos
imprimir [Moving: ] ▶
imprimir (velocidade de [ArmMotor v] em %) ▶
parar [ArmMotor v]
corrente do motor#
O bloco de relatório de corrente do motor indica quanta energia o motor está a utilizar da bateria, numa percentagem de 0% a 100%.
Um valor de corrente mais elevado significa que o motor está a consumir mais energia. Isto pode acontecer quando o motor está a levantar algo pesado, a empurrar um objeto ou a tentar mover-se quando está bloqueado.
(corrente de [ArmMotor v] em %)
Parâmetros |
Descrição |
|---|---|
motor |
O motor para o qual pretende reportar a corrente. Selecione um dos motores configurados na janela Dispositivos. |
Exemplo
quando iniciar :: hat events
[Build Used: Competition Advanced 2.0]
[Display the motor's current when it moves.]
imprimir [Resting: ] ▶
imprimir (corrente de [ArmMotor v] em %) ▶
mover cursor para a próxima linha
girar [ArmMotor v] [subir v]
aguardar [1] segundos
imprimir [Moving: ] ▶
imprimir (corrente de [ArmMotor v] em %) ▶
parar [ArmMotor v]