Sistema com micro-controlador dedicado à gestão e controlo de motores (v1)

Primeira versão da placa com um micro-controlador Arduino e uma ponte-H L293D dedicado à gestão de motores (v1) usada num pré-prototipo para o robot Micro Rato 2019 da equipa Sound Rat.

Esta placa foi um reaproveitamento de uma antiga placa (BARD) utilizada no DAMI-M2 v1.0.0.

A placa foi dividida ao meio, separando a área da alimentação do circuito (zona dos reguladores de tensão) da área do micro-controlador, ponte H, e saídas para os motores.

Na placa usada, foram acrescentados os conectores adequados para ligação ás fichas dos motores Pololu com Encoder., o conector de entrada para a alimentação dos motores via a ponte-H L293D, e ainda algumas saidas suplementares para os 5V e a GND.

Hardware controlador dos motores

Para além dos conectores o hardware usado é um micro-controlador Arduino Nano 328P e uma ponte-H L293D.

A placa tal como está necessita de alimentação para:

  • Arduino: conector associado ao pino Vin
  • L293D, 5V: conector lateral (ver imagem) pode ser ligado ao pino 5V do arduino, ou a uma alimentação externa (possibilita várias saídas).
  • L293D, Motor power: conector lateral (conjunto de 2. ver imagem) dependendo do motor usado, normalmente entre 5V a 12V.
  • GND: conector lateral (ver imagem)  (possibilita várias saídas).
Principais ligações de entrada e saída
Principais ligações de entrada e saída

Sofware do controlador de motores

O desenvolvimento do software recorre ao interface de comunicações I2C, como slave, para receber comandos e enviar informações para o master.

O desenvolvimento do programa de controlo dos motores usado nesta placa foi efectuado durante o desenvolvimento do robot DAMI-M2, que foi uma evolução (inclusão da capacidade de curvar) da adaptação para motores DC usada no robot DAMI-M4, que por sua vez foi efectuada com base no software para step motors efectuado anteriormente para o robot DAMI-M3.

O software permite a execução de comandos de controlo dos motores recebidos via I2C, que há data podem executar os seguintes comandos:

  • Rotação em ambos os sentidos;
  • Trasladação rectilínea em ambos os sentidos;
  • Trasladação circular em ambos os sentidos;
  • Parar
  • Acelerar
  • Desacelerar

Tenho estado a pensar adicionar ao software a possibilidade de entrar em diversos modos (pela recepção do comando apropriado), como por exemplo os seguintes:

  • Modo seguidor de paredes (distancias à parede)
  • Modo seguidor de linhas (desvio da linha)

A implementação destes modos implicam uma alta frequência na recepção das informações necessárias (indicadas acima) conforme o caso.