terça-feira, 16 de junho de 2015

Usando um Arduino para conduzir ser barco

Para esse projeto foi usado  um micro controlador Arduino Uno, recebendo dados de uma bussula eletrônica HMC5883L. Temos ainda 6 micro botões para entrada de dados, dois relês para acionar o motor e um pequeno LCD  de 2 linhas por 16 colunas para exibição da direção planejada, direção navegada e desvio de rota. O diagrama 1 exibe os componentes inicialmente escolhidos para esta montagem.

Componentes

Para o visor, o módulo shield LCD Keypad 16x2 foi uma solução rápida e perfeita. Em uma única placa já temos o LCD e 6 botões de controle e o melhor de tudo, basta encaixar sobre o Arduino para funcionar.
LCD Keypad Shield

Além disso, esse módulo controla de forma inteligente e prática através de uma única porta analógica (A0) seus 5 botões e deixa as outras portas para uso mais nobre. Cada botão pressionado envia uma tensão diferente para a porta A0, identificando assim a tecla pressionada.

Cada botão pressionado produz uma tensão diferente na porta analógica A0 do Arduino
Desta forma foi possível atribuir a cada botão as seguintes funções:
  • Ao pressionar o botão "Novo Rumo" o conjunto assume a proa atual do barco como rumo a seguir. 
  • Os botões +1, -1, +10 e -10 permitem corrigir a rota em um ou em dez graus, para cima ou para baixo. 
  • O botão "Reset" cancela o programa e libera o piloto para uso manual.
Funções dos Botões

Os relês foram substituídos por um módulo shield já com os dois relês e ainda circuito de proteção. A corrente típica de acionamento esta entre 15 a 20mA e seus contatos podem trabalhar com até 10 Amperes.
Módulo 2 Reles
Para obter a inversão de rotação do motor, os reles foram ligados como uma "Ponte H", observe que o motor só recebe energia quando o estado dos reles forem opostos.


Ponte H com 2 relês para inverter a rotação do motor
Para o acionamento da Roda de Leme, foi escolhido um motor 12V x 1 Ampere, com conjunto redutor de velocidade. Ele gira a 80RPM e possui um torque de 11Kgf a 0,01m, mais que suficiente para acionar meu leme.

Motor 12V x 80RPM x 1A
Por último, temos um módulo Sensor Magnetômetro HMC5883L que funciona como um bússola eletrônica de grande sensibilidade e precisão.
Módulo HMC5883L - Bússola eletrônica de 3 eixos


Atenção:

Este é um projeto que irei desenvolver quando tiver algum tempo disponível. Seu potencial é enorme, porém esta parado no momento, mesmo assim consegui uma grande evolução em relação ao filme acima, como por exemplo a comunicação com um GPS, seguir uma rota nele traçada e a parte mais difícil que foi a compensação de erro que ocorre quando a bússola inclina. Como o código ainda esta todo fragmentado em diversas funções especializadas mais com muito a evoluir, fica inviável sua publicação.