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
















sábado, 14 de setembro de 2013

Sistema de Irrigação


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 SISTEMA DE IRRIGAÇÃO



INTRODUÇÃO & OBJETIVOS:

Um sistema simples, usando Arduino para automatizar a irrigação de pequenos vasos de planta ou plantações.

Ele faz o controle da umidade do solo, fazendo indicações através de LEDs e em caso de solo seco emitindo um aviso sonoro. Em caso de solo seco ativa o sistema de irrigação, bombeando água para regar as plantas.

O uso de um display LCD possibilita notificar todas as ações que estão ocorrendo além de um relógio em tempo real.

Teoria:


"A umidade do solo (h) ou teor em água (w) é definida como o peso da água (P_a) contida em uma amostra de solo dividido pelo peso seco das partículas sólidas (P_s) do solo, sendo expressa empercentagem.
Para determinação do peso seco, o método tradicional é a secagem em estufa, na qual a amostra é mantida com temperatura entre 105 °C e 110 °C, até que apresente peso constante, o que significa que ela perdeu a sua água por evaporação.
O peso da água é determinado pela diferença entre o peso da amostra (P) e o peso seco (P_s)."
Desta forma temos: h=\frac{P - P_s}{P_s}\cdot 100=\frac{P_a}{P_s}\cdot 100


DESCRIÇÃO:

O sistema faz uso de um sensor de umidade (higrometro), através do qual, é possível monitorar a quantidade de água (umidade) presente no solo. 

Este sensor higrômetro entrega ao Arduino um sinal que varia entre 0 a 5V (0 a 1023 no arduino), deste modo, é possível especificar alcances de umidade relativa do sólo e assim caracterizar se o solo está: mais, ou menos úmido. 

Por exemplo:
- entre 0 a 500, umidade excessiva (solo encharcado); 
- entre 500 a 800, umidade normal (solo úmido);
- entre 800 a 1023, umidade escassa (solo seco).  
Todas estas etapas acima, serão indicadas em display LCD e LEDs.

Quando o solo estiver seco, o sistema efetuará essa indicação através de um LED vermelho, um aviso sonoro e mostrará uma mensagem no display LCD
Quando o solo estiver seco, será acionado uma bomba d'água para efetuar a irrigação do local. Um LED verde efetuará a indicação enquanto a bomba d'água estiver acionada.

A bomba d'água será desligada automáticamente após decorrido um tempo pré determinado de operação mínimo (por exemplo 30 segundos); se a irrigação não foi suficiente e o solo continua seco, a bomba será acionada novamente, e assim por diante... até quando a umidade do sólo atingir a condição de umidade normal ( a bomba será desligada e só acionará no próximo periodo de irrigação).
Se na hora estima o solo não estiver seco, o sistema irá esperar até o próximo horário de verificação.

O acionamento da bomba d'água é feito por um relé, isolado da parte eletrônica através de um acoplador óptico na entrada.

A irrigação será feita somente se:
1-  o solo estiver seco;
2 - uma hora pré determinada for alcançada (por exemplo: 06:00 da manhã)
Para isto usamos um relógio de tempo real (RTC) para gerar a hora do sistema.

O sistema é composto também de um sensor de nível para o reservatório de água. Sempre que o nível cair abaixo do mínimo estabelecido pelo posicionamento do sensor, será indicado através de um aviso sonoro e mensagem no display LCD.



HARDWARE & MATERIAL:

Para realizar este projeto, você necessitará de:
1 x Arduino UNO, MEGA, Duemilanove, ou Teensy 2.0+
1 x Display LCD com comunicação I2C
1 x Módulo RTC com comunicação I2C
1 x Módulo Relé opto-acoplado para 250V/10A
2 x Módulos "Driver" LM-393 de uso geral
1 x Sensor de umidade do Solo (Hygrometer) KDQ11
1 x Sensor de Nível de água (Feito em casa)
1 x Buzzer piezo-elétrico
2 x LEDs Verdes 10mm
1 x LED Vermelho 10mm
1 x LED Amarelo 10mm
4 x Resistores 150 Ohm 1/4 W
1 x Bomba dágua para Aquários com sistema de filtro (127 ou 220V)
1 x Cabo de Energia Elétrica, com plug CA 127/220V @10A
1 x Tomada para cabo de energia AC 127/220V @10A
Fios e cabos para as conexões

Você pode adquirir o sensor de umidade do solo e o "Driver" no ebay.
http://www.ebay.com/itm/KDQ11-MOISTURE-SENSOR-KIT-URBAN-GARDEN-TOOL-SOIL-MOISTURE-SENSOR-SCA-1703-/221227848188?pt=LH_DefaultDomain_0&hash=item33823511fc


Você pode adquirir o módulo relé no ebay.



COMPONENTES:

Abaixo uma visão geral dos componentes utilizados.

LCD I2C:





LM-393 DIVER:


Este é umdiagrama ilustrativo do uso do LM-393


Driver LM-393; Notar que N1 é o sensor a ser utilizado no Driver



Sensor de umidade do Solo:






Dados deste conjunto sensor/driver:
Quando o solo estiver seco, impedância será alta e o driver mostrará um valor alto na saída.
Quando o solo estiver encharcado, será mostrado um valor baixo na saída.
O range de 3 LEDs pode ser definido como:
- encharcado, umidade entre 0 a 500;
- Normal, umidade entre 500 a 800;
- seco, umidade entre 800 a 1023;
O módulo tem 1 saída digital e uma saída analógica. (no projeto, deve ser utilizado a saída analógica)



RTC:






Sensor de Nível:

Este sensor deve ser confeccionado em placa de fenolite.
Espaçamentos de 1mm e trilhas de 1 mm



RELÉ:
Módulo duplo, será utilizado somente uma via
 BOMBA D'ÁGUA:






DIAGRAMA & INTERLIGAÇÃO:

Abaixo temos um diagrama de blocos descrevendo as principais interligações do sistema.
Você pode obter o original deste arquivo, acessando o driver abaixo:
https://docs.google.com/file/d/0B_YlEklLDDS7SllRMzUyQlhHVDg/edit?usp=sharing


Diagrama de blocos



Abaixo o diagrama de interligação (em manuscrito).
Você pode obter o original deste arquivo, acessando o driver abaixo:
https://docs.google.com/file/d/0B_YlEklLDDS7RkNMZko2ckhLcUU/edit?usp=sharing



Diagrama de interligação e fiação original, em manuscrito
****************************************************************
****************************************************************
Corrija em seu diagrama: o sensor de nível deve ser conectado ao pino A0 do Arduino e o sensor de umidade do solo deve ser conectado ao pino A1 do arduino.
****************************************************************
****************************************************************

Descrição das pincipais conexões:

RTC <-> Arduino:
GND <-> GND
+5V <-> +5V
SDA <-> A4
SCL <-> A5

Relé <-> Arduino:
GND <-> GND
+5V <-> +5V
IN <-> D7

LCD <-> Arduino:
GND <-> GND
+5V <-> +5V
SDA <-> A4
SCL <-> A5

BUZZER <-> Arduino:
+ <-> D2
-  <-> GND

LM-393 DRIVER (sensor de umidade) <-> Arduino
GND <-> GND
+5V <-> +5V
OUT <-> A1

LM-393 DRIVER (sensor de Nível) <-> Arduino
GND <-> GND
+5V <-> +5V
OUT <-> A0

Outros Componentes <-> Função <-> Arduino
LED Vermelho <-> Solo seco           <-> D5
LED Amarelo   <-> Solo encharcado  <-> D3
LED Verde      <-> Solo úmido         <-> D4
LED Verde      <-> Bomba d'água     <-> D6 








Link para o original da figura acima:

https://docs.google.com/file/d/0B_YlEklLDDS7Ym52UE1qcGlqQVE/edit?usp=sharing





Link para o original da figura acima:

https://docs.google.com/file/d/0B_YlEklLDDS7Z3hZY3pNZ0NWZG8/edit?usp=sharing

SOFTWARE & PROGRAMAÇÃO:

Você pode baixar, gratuitamente o código para este projeto no driver do google docs abaixo:

https://docs.google.com/file/d/0B_YlEklLDDS7T3JFX05rR21xbEE/edit?usp=sharing

Ou no GitHub:

https://github.com/Arduinobymyself/ArduinoWateringSystem.git


Qualquer problema, dúvidas e sugestões; entre em contato via email:

arduinobymyself@gmail.com



TESTES:

Este é um exemplo de como trabalhará o sistema e como devem ser realizados os testes.
Logicamente, como o sistema tem um horário pré definido para operar, você pode mudar o horário via software para o horário em que fará os testes, e depois ajustar para o horário de trabalho.


Como montar o aparato para os testes




VÍDEOS & FOTOS:



Dúvidas e sugestões enviem para: arduinobymyself@gmail.com


Parte 1: http://youtu.be/_jcDxYK33ew

Parte 2: http://youtu.be/-JOfP1J0OHY

Parte 3: http://youtu.be/Czvxi1r21Zc


Parte 1





Parte 2




Parte 3





Fotos do projeto:




Sistema Montado com Garagino Versão 1

Detalhe das interligações do Garagino V1

Detalhe do sistema de potência - Relé e entrada e saída 127/220 VCA

Detalhe dos sensore de umidade do solo e sensor de nível do reservatório de água

Visão geral do sistema





Primeiro rascunho e ideias

Conceito definido

Algumas diretivas de operações

Vista Geral 1

Vista Geral 2

Componentes 1

Componentes 2

Sensores de Umidade do solo e Nível

Driver LM-393 - Detalhe 1

Driver LM-393 - Detalhe 2