terça-feira, 21 de outubro de 2014

ROVER Bot Arduino Bluetooth Controlled Tank

Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada, sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);





Arduino ROVERBot



***To get this project in English language, visit the instructables website: http://www.instructables.com/id/Arduino-ROVERBot/ ***

Este post tem como objetivo apresentar a construção de um ROVER utilizando o Arduino como micro-controlador e a interface bluetooth de um celular Android como interface RC (radio controle).

O aplicativo Android utilizado é o "bluetooth RC Controller", que está disponível no "Play Store".
Este aplicativo proporciona um controle via interface de direcionamento e ou via interface de posicionamento digital (accelerômetro) do próprio celular que está sendo utilizado como controle.

Este é o link para o aplicativo de controle:
https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller&hl=pt_BR


Aplicativo para Android
Bluetooth RC Controller


Tela do controle via Teclas direcionais



MATERIAL:

1 x Tamiya Twin Motor Gear Box - KIT;
1 x Tamiya Tank Chassis - KIT;
1 x Arduino UNO;
1 x Módulo Bluetooth HC-05 ou compatível;
1 x AdaFruit-DC_Motor-Shield
1 x Bateria 11,7 V / 3500 mAh;

Para maiores informações sobre o shield controlador de motor AdaFruit, visite o website abiaxo, onde também é possível obter a biblioteca usada no projeto.
https://learn.adafruit.com/adafruit-motor-shield/overview

Você pode usar também um shield genérico, desde que tenha compatibilidade de pinos é possível utilizar a bilbioteca sem nenhum problema.


ADAFRUIT - Arduino Motor Shield


Bluetooth HC-05 Module


Tamiya Tank Chassis KIT


Tamiya Twin DC Motor Gear Box - KIT


Tamiya Twin DC Motor Gear Box - 58:1 and 203:1


Tamiya Twin DC Motor Gear Box - KIT

MONTAGEM:

Assista o video abiaxo para saber exatamente como montar o KIT Tamiya Gear BOX.

Algumas imagens da montagem:
Tamiya Twin Motors Gear Box Montado com relação 203:1




INTERLIGAÇÃO ELETRÔNICA:
Após feita a montagem dos KITs Tamiya Gear Box e do Chassis, é possível começar a interligação dos componentes eletrônicos do sistema.
A figura abaixo mostra como devem ser feitas as ligações.

Basicamente deve-se:
1 - Plugar o AdaFruit Motor Shield no Arduino;
2 - Conectar o módulo bluetooth:-
RX do módulo bluetooth no TX do Arduino (pino 0)
TX do módulo bluetooth no RX do Arduino (pino 1)
GND do módulo bluetooth no GND do Arduino
VCC do módulo bluetooth no +5V do Arduino
3 - Conectar o motor direito do Tamyia Gear Kit no Motor 1 do AdaFruit Motor Shield;
4 - Conectar p motor esquerdo do Tamiya Gear Kit no Motor 3 do AdaFruit Motor Shield;
Aqui vale uma observação: O sentido de rotação deve ser testado, caso esteja invertido, inverter os fios do motor para assim inverter o sentido de rotação.
5 - Conectar a bateria Li-ion aos pinos GND e +M do AdaFruit Motor Shield.
No AdaFruit Motor Shield o Junp PWR deve estar fechado (assim o Arduino será alimentado pela bateria de 11,1V bem como os motores.






CODIFICAÇÃO:

Obtenha todos os arquivos no GitHub abaixo:
https://github.com/Arduinobymyself/ArduinoRoverBot.git


O Arduino deve ser programado sem que o TX/RX do módulo Bluetooth esteja conectado aos pinos 0 e 1 do arduino. Isso impediria o Arduino de receber os dados compilados da IDE.



Caso tenha algum problema com os arquivos mencionados, solicite via email para:
arduinobymyself@gmail.com



FUNCIONAMENTO:
Primeiramente, ligue o Arduino ROVERBot. O módulo bluetooth irá começar a piscar o LED vermelho (indicando que não está conectado a nenhum computador ou componente de controle MASTER);

Abra o Aplicativo de controle no seu celular Android, inicialmente ele estará desconectado o que será idnicado por um aviso vermelho piscante;
Ao abrir, será perguntado se você deseja ativar o bluetooth do dispositivo (caso ele ainda não esteja ativado), responda sim;
No menu de opções do aplicativo, selecione a opção "connect";
Irão aparecer os dispositivos disponíveis para conexão (geralmente o módulo o bluetooth par Arduino chama-se LINVOR), selecione o dispositivo e efetue a conexão. O LED verde deve acender no módulo bluetooth e também no aplicavo irá aparecer uma indicação verde de conexão.

Pronto agora o celular e o ROVERBot estão conectados via bluetooth.

Use as teclas direcionais para movimentar nas diversas direções permitidas.

É possível também usar o acelerômetro do celular para controlar o ROVERBot por movimentação do celular nas diversas direções.



Agora é só se divertir com este excelente ROVER, Forte, Rápido e Robusto.




FOTOS:
Algumas fotos reais do projeto em execução.
























domingo, 23 de fevereiro de 2014

Arduino - Relógio Binário HMS



Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada, sendo:

"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);


ARDUINO - RELÓGIO BINÁRIO HMS - USANDO MÉTODO CHARLIEPLEX

Este post mostra como construir um Relógio Binário com Arduino.
O nosso relógio mostra as Horas, Minutos e Segundos de forma binária e representada pelo acendimento de LEDs numa matriz com 20 LEDs usando somente 5 pinos do Arduino.

O relógio, como funciona:
Devemos fazer a soma binária de cada LED para deteminar a quantidade de Hora, Minuto e Segundo.







Para executar o projeto, usamos o método CharliePlex:
O Charlieplex é uma técnica usada para multiplexação de grande número de LEDs usando uma pequena quantidade de pinos do microcontrolador (arduino). Os LEDs são configurados na forma de pares complementares. O mais simples seria a multiplexação de 2 LEDs como abaixo.



Onde, quando o pino 1 está em nível ALTO e o pino 2 está em nível Baixo, o LED 1 acenderá e quando o pino 2 está em nível ALTO e o pino 1 está em nível Baixo, o LED 2 acenderá.

De uma forma geral o Charlieplex obedece a seguinte fórmula:

                                         n(n-1) = LEDs

onde n, é o número de pinos;

Assim:
para 3 pinos, podemos acionar até 3*(3-1) = 6 LEDs;
para 4 pinos. podemos acionar até 4*(4-1) = 12 LEDs;
para 5 pinos, podemos acionar até 5*(5-1) = 20 LEDs...... e assim por diante... como na tabela abaixo.


Number of PinsNumber of LED's
22
36
412
520
630
742
856
972
1090
nn * (n - 1)

3 pinos de controle:


4 pinos de controle:




5 pinos de controle:



O método Charlieplex usa a lógica Tri-State para acionar as linhas de controle, o que equivale dizer:
Para acender um determinado LED, temos que colocar uma linha em nível ALTO e a outra em nível BAIXO, e as restantes devem permanecer configuradas como ENTRADAS (para que não acionem um LED indevidamente).


Para nosso relógio, usaremos a configuração de LEDs abaixo:



Onde:
h10 representa as dezenas de hora;
h1 representa as unidades de hora;
m10 representa as dezenas de minuto;
m1 representa as unidades de minuto;
s10 representa as dezenas de segundo;
s1 representa as unidades de segundo;

Cada número indica um LED da configuração para 5 pinos de controle.

Esta configuração de LEDs é de acordo com o diagrama esquemático abaixo:



A interligação dos LEDs foi realizada seguindo a placa de circuito impresso abaixo e montada em placa padrão perfurada.


Um RTC DS-1307 nos dá a temporização necessária para o relógio funcionar com precisão.

MATERIAL NECESSÁRIO:
20 x LEDs 5mm
5 x resistores 100 R
1 x barra 5 pinos macho
1 x RTC DS-1307
1 x Arduino UNO ou equivalente
1 x placa perfurada
fios, cabos, solda e ferramentas




FOTOS REAIS:
Interligação RTC + Arduino + Placa de LEDs

RTC DS-1307

Arduino

Placa de LEDs CharliePlex (5 pinos de controle)

Vista Geral

Esboço do esquema da placa de LEDs

Esboço da disposição de LEDs

Relógio funcionando 14 : 50 : 08

Placa perfurada com as trilhas feita de solda - os jumpers são as trilhas em vermelho no diagrama de placa.
Trilhas em azul devem soldadas na placa perfurada, trilhas em vermelhos são jumpers com fios

Em funcionamento


CÓDIGO:

Envie um email para:

arduinobymyself@gmail.com

Obtenha o código completo deste projeto e os arquivos originais para Eagle-CAD da placa e esquema eletrônico.

Você pode também tirar suas dúvidas a respeito deste e de outros projetos.





VÍDEO:

Assista diretamente no youtube:

Arduino - Binary Clock - Charliplexing








UPDATE:

Como conectar o RTC ao Arduino e como sincronizar a hora e data com o PC?


Siga os Passos:

1 - Retire a pilha do seu RTC (ele vai zerar as configurações previas);
2 - Coloque a pilha;
3 - Rode o código de ajuste do RTC no seu Arduino com o relógio RTC devidamente conectado;

RTC pinout -> Arduino pinout
SDA          -> pino A4
SCL          -> pino A5
VCC          -> pino 5V
GND         -> pino GND



Ao terminar de enviar o código, o seu relógio RTC DS1307 já estará sincronizado com o PC. Você poderá monitorar isso via interface serial da IDE do arduino.



Código de sincronização:

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 rtc;

char hora[30];

void setup () {
Serial.begin(9600);
#ifdef AVR
Wire.begin();
#else
Wire1.begin(); // I2C 
#endif
rtc.begin();// aciona a função RTC

if (! rtc.isrunning()) {// se a função RTC não foi acionada
Serial.println("RTC não esta funcionando"); //
rtc.adjust(DateTime(__DATE__, __TIME__)); //caso rtc não esta funcionando ajusta a hora sincronizando com o PC
}
}

void loop () {
DateTime now = rtc.now();


sprintf( hora, "%02d:%02d:%02d", now.hour(), now.minute(), now.second() );
Serial.println(hora);
delay(1000);


}

Após terminar seu RTC estará com a hora configurada.... você poderá gravar um outro código que ele não perderá a configuração (logicamente fazendo somente leitura das informação previamente ajustadas).
Se você (em outro código) manter a linha:   rtc.adjust(DateTime(__DATE__,__TIME__)) ele vai sincronizar a todo momento... então, comente essa linha de qualquer outro código que inserir..., ela deve rodar somente quando for necessário sincronizar o relógio.