top of page

Encoders

O controle em malha aberta é usado para os motores de passos. Já os motores DC necessitam de sistemas mais sofisticados de controle em malha fechada. Como citado em tópicos anteriores o elemento que faz essa realimentação é o encoder rotativo. Este elemento converte movimento rotativo em pulsos elétricos, com isso, ele é capaz de fornecer, quando ligado a um eixo de motor ou em uma roda, informações de distância e velocidade.

A principal especificação de um encoder rotativo é quanto a sua resolução, normalmente expressa em pulsos por revolução (ppr). Por exemplo, um encoder de 512ppr gera 512 pulsos quando o elemento ligado a ele (motor ou roda) executa uma volta. Para um micromouse, essa resolução deve ser relativamente alta e isto é a chave para obter um bom robô e evitar dores de cabeça com desalinhamentos e colisões durante a execução do labirinto.

O encoder rotativo mais utilizado em robótica é o encoder de quadratura, pois além contar os pulsos em um determinado elemento rotativo (roda ou motor) ele também identifica o sentido do movimento. Estes encoders podem ser ópticos ou magnéticos e possuem dois sinais de saída (canais A e B) que consiste de duas ondas quadradas defasadas 90° uma da outra, a frequência destas ondas indica a velocidade do elemento que está sendo medido e o sinal da defasagem indica o sentido de giro.



a) Biblioteca para uso no Arduino

O “Arduino Playground” possui várias bibliotecas para leitura de encoders de quadratura, recomendo o uso desta: http://www.pjrc.com/teensy/td_libs_Encoder.html

b) Periférico de encoder no STM32

Alguns microcontroladores ARM, como no caso do STM32 (famílias F3 e F4), possibilitam configurar um timer no modo encoder de quadratura e para saber a contagem atual em determinado instante basta ler o registrador do respectivo timer.

Observação: no GitHub do Micromouse Brasil já têm os exemplos (Arduino e STM32F4) utilizando as técnicas citadas.

c) Resolução linear

Para determinar a distância percorrida pelo robô em um movimento retilíneo a cada pulso do encoder é necessário conhecer apenas o diâmetro da roda e o fator de redução para o caso do encoder ser instalado antes da caixa de redução. Este parâmetro é importante para determinar a precisão do robô no posicionamento do labirinto.

resolução_linear = (D * π) / (ppr * f)

Onde:

D: Diâmetro da roda [mm]

ppr: resolução do encoder [ppr]

f: fator de redução (usar 1 para encoder instalado na roda)

Por exemplo, aplicando a equação acima para os Robôs µMaRT que possuem rodas com 32mm de diâmetro, encoder de 12ppr e redução 30:1, temos:

resolução_linear = (32 * π) / (12 * 30) → 0,279 mm/pulso

d) Exemplos

São várias as alternativas para se instalar um encoder em um robô, a seguir são apresentadas três delas. A figura da esquerda consiste de um encoder magnético instalado no eixo prolongado do motor; no meio tem-se um sistema utilizando o circuito integrado AS5040 (consulte também o AS5304); na figura da direita é apresentado um motor já com um encoder integrado.



Posts Destacados 
Posts Recentes 
Procure por Tags
Nenhum tag.
bottom of page