Pular para o conteúdo principal
Versão: 1.4

Motor Avançado


informação

Utilize esta categoria para movimentar motores até uma posição específica com encoders.

Exemplo

Girando um motor até 1000 ticks

alt text

  • O código acima realiza as seguintes ações:
    1. Define o motor como Ultra Planetária;
    2. Define o encoder conectado ao motor como o da porta A;
    3. Coloca a posição alvo do motor como 1000 ticks;
    4. Define o modo do motor para executar até a posição;
    5. Coloca a saída do motor em 60%.

Girando um motor até 500 ticks no período autônomo

alt text

  • O código acima realiza as seguintes ações:
    1. Define o motor como Ultra Planetária;
    2. Define o encoder conectado ao motor como o da porta A;
    3. Coloca a posição alvo do motor como 500 ticks;
    4. Define o modo do motor para executar até a posição;
    5. Coloca a saída do motor em 50%.

Conversão de Ticks para unidades angulares

Não é fácil sempre trabalhar com ticks, por isso é geralmente interessante convertemos para ângulos ou unidades lineares.

Para converter para ângulos é necessário primeiro saber o CPR (Counts Per Revolution) do motor, isto é, quantos ticks estão presentes em 1 volta do motor. O motor Core HEX por exemplo possui 28 ticks de CPR.

A Ultra Planetária é na realidade um motor HD HEX com reduções do tipo planetárias, nesse caso, consideramos que apenas o motor HD HEX possui 28 ticks de CPR (as reduções alteram o valor do CPR, conforme explicado abaixo).

Considerando o caso apenas do eixo do motor, a nossa conversão seria:

(setPointEmGraus/360) * CPR = targetEmTicks

Quando colocamos uma redução estamos aumentando ou diminuindo o CPR por consequência, a explicação disso é relacionada ao fato de que estamos fazendo com que o eixo de saída dê mais ou menos voltas que o eixo do motor (que possui um CPR fixo). Dessa forma poderiamos ajustar a equação para Ultra Planetárias da seguinte forma:

(setPointEmGraus/360) * (CPR * Redução) = targetEmTicks

Descrição das Funções

set encoder and motorType

Permite escolher a porta de encoder utilizada e o tipo de motor.

alt text

setTargetPosition

Define a posição até a qual o motor deve girar. Unidade em ticks.

alt text

setMotorMode

Define o modo do motor.

alt text

setTolerance

Define a tolerância máxima permitida ao motor quando girando até a posição.

alt text

getTargetPosition

Retorna a posição alvo do motor.

alt text

isBusy

Retorna um valor lógico dependendo se o motor está indo até a posição.

alt text