Pololu 30:1 Metal Gearmotor 37Dx68L mm with 64 CPR Encoder

Pololu 30:1 Metal Gearmotor 37Dx68L mm with 64 CPR Encoder

https://www.pololu.com/product/2823

Caracteristicas

Aspectos destacados a  12 Volts: 350 RPM, 300 mA free-run, 8 kg/cm e 5 A stall.

  • Tamanho: 37D x 68L mm
  • Peso: 215 g
  • Diametro do eixo: 6 mm
  • Gear ratio: 30:1
  • No-load speed @ 12V: 350 rpm
  • No-load current @ 12V: 300 mA
  • Stall current @ 12V: 5000 mA
  • Stall torque @ 12V: 110 oz·in
  • No-load speed @ 6V: 175 rpm
  • No-load current @ 6V: 250 mA
  • Stall current @ 6V: 2500 mA
  • Stall torque @ 6V: 55 oz·in
  • Lead length: 8 in

 

Ligações

Ficha com as ligações ao motor e encoder
Ficha com as ligações ao motor e encoder
  • Red – motor power (connects to one motor terminal)
  • Black – motor power (connects to the other motor terminal)
  • Green – encoder- GND
  • Blue – encoder – Vcc (3.5 – 20 V)
  • Yellow – encoder – A output
  • White – encoder – B output

Software

O quadrature encoder destes motores quando explorado com o programa usado nos encoders opticos só apresenta um quarto da resolução possivel.

Por isso, para facilitar, é necessário usar uma biblioteca que a leitura dos encoders sem nos preocuparmos com os pormenores.

Bibliotecas

A principal fonte de bibliotecas e exemplos para explorar encoders no Arduino esta´disponivel no seguinte link:

https://playground.arduino.cc/Main/RotaryEncoders

Biblioteca usada

Encoder. Disponivel em: https://www.pjrc.com/teensy/td_libs_Encoder.html

Software base desenvolvido

Controlo PID de velocidade e direcção (library encoder)

Notas

Erro sistemático na leitura do encoder com a biblioteca Encoder.

Um aspecto estranho que encontrei é a inconsistencia da contagem consoante o robot roda para a direita ou para a esquerda.

Quando roda para a direita o mesmo número de pulsos que roda para a esquerda, o angulo da rotação é menor.

Por isso, no caso da rotação ser para a direita, no calculo da distancia a percorrer, necessito de multiplicar a distancia calculada por um factor de 1.0070, antes de a converter em pulsos do encoder.

Este problema e solução foi detectado na afinação do programa de Controlo PID de velocidade e direcção referido acima.

O problema foi reportado no forum da pololu mas não obtive qualquer ajuda que explica-se o comportamento, ou indica-se a melhor forma de lidar com ela.