DAMI-M4 v1.0.0

Versão inicial do robot 2WD DAMI-M4

A versão inicial do robot M4 foi desenhada com base na mesma arquitectura de hardware usada no M3.

Se bem que pudesse ter escolhido uma abordagem mais simples. Bastaria usar apenas um Arduino Mega 2560 (como mais tarde estou a pensar em usar) e todos os limites de memórias e pinos dos Arduino Nano deixavam de ser problema. Acabei por escolher aquela que usei no robot DAMI-M3 e que resolvi chamar de Arquitetura Róbotica Distribuida.

Diagrama do hardware no robot DAMI-M4
Diagrama do hardware no robot DAMI-M4

Nesta simples implementação da Arquitetura distribuida, o Arduino 1, o master, envia comandos com os movimentos desejados para o Arduino 2, o slave, que os recebe, executa e informa de volta o progresso e quando terminam.

Neste implementação da arquitetura róbotica distribuida, o controlo dos motores por um microcontrolador dedicado, que recebe comandos de outro microcontrolador sobre os movimentos que deve executar. O movimento é pré-definido no comando recebido e não pode ser modulado (alterado) durante a sua execução. (TODO: alterar de modo a ser possivel modular o movimento).

Durante os testes prévios efectuados ao comportamento de cada um dos componentes, detectei um anomalia estranha no funcionamento dos encoderes incluidos nos motores da Pololu que equipam o robot.

Reportei a anomalia no forum da Pololu. Disponivel no seguinte link:

https://forum.pololu.com/t/encoder-error-on-30-1-metal-gearmotor-37dx68l-mm-with-64-cpr-encoder/16327

Como a anomalia é sistemática contemplei um factor de 1.007 quando efectuo o calculo da distancia a precorrer pelas rodas nas rotações à direita

Hardware do robot

  • 1 x Nanocomputador Raspberry Pi B
  • 2 x Microprocessadores Arduino Nano 328p
  • 1 x Acelerómetro e giroscópio MPU6050
  • 4 x Sonar HC SR-04
  • 1 x Ponte H L298N
  • 2 x Motores 12V 350RPM 30:1 c/ encoders de quadrante de 64CPR e resolução total de 1920 pulsos
  • 2 x Bateria de 12V
  • 1 x Modulo com os connectores para ligar as baterias
  • 1 x Power Pack de 5V
  • 1 x Divisor de tensão de 5V para 3.3V
  • 1 x placa com:
    • 1 x Socket para Arduino Nano
    • 1 x Interruptor
    • 1 x Circuito de alimentação de 5V
    • 1 x Circuito de alimentação de 6V
    • 1 x Circuito de alimentação de 5V
    • 1 x Extensão do bus I2c (pinos)
  • 2 x Bases de acrilico (inferior e superior)
  • 4 x Suportes de sonares
  • 2 x Breadboard mini
  • n x Fios, porcas e parafusos

Software

m4_mod4_ms1

Implementação inacabada do software do robot M3 aplicado a motores DC.

m4_slave_mod4_v2

Sketch uses 13592 bytes (44%) of program storage space.
Global variables use 729 bytes (35%) of dynamic memory.

m4_master_mod4_v3

Sketch uses 23574 bytes (76%) of program storage space.
Global variables use 1587 bytes (77%) of dynamic memory.
Low memory available, stability problems may occur.

Avaliação

Fez o que se esperava. Andou a direito e efectuou as rotações correctamente.

Ficou em movimento de vai-vem com rotações nos extremos sem grandes discrepâncias por algum tempo.

Este é um modelo em desenvolvimento… não vai fazer mais nada e evoluir em breve.