sexta-feira, 20 de maio de 2016

Vídeo - Carro Controlado pelo módulo bluetooth

Nesse projeto utilizamos o módulo bluetooth HC-05 no arduino para o controle do Robô, veja abaixo uma pequena demonstração.

Para o controle utilizamos o aplicativo Bluetooth Serial Controller, disponível no Play Store.

Bluetooth Serial Controller.


Robô controlado pelo Bluetooth.



segunda-feira, 16 de maio de 2016

Conheça os shields e incremente seu Arduino com eles



Um dos fatores determinantes para a enorme versatilidade e popularidade da plataforma Arduino são os shields. Eles são placas de circuito que podem ser conectadas ao Arduino, encaixando-se perfeitamente por cima dele, e expandindo suas capacidades. Estas placas podem conter displays de LCD, sensores, módulos de comunicação ou relês, por exemplo. A capacidade de expansão possibilita uma infinidade de aplicações de maneira simples e rápida. E mesmo com a enorme gama de shields já disponíveis no mercado, caso seu projeto precise de algo diferente, você mesmo pode criar um shield que o atenda. Confira abaixo cinco shields que você precisa conhecer.
Para iniciar sua jornada no mundo dos shields, escolhemos cinco, que você precisa conhecer já! Confira:

Arduino Ethernet Shield R3

Um dos maiores atrativos da plataforma Arduino é o fato de que é possível desenvolver projetos de dispositivos conectados. Os shields de conexão permitem uma série de opções para que seu Arduino fale com o mundo através de uma rede. O Arduino Ethernet Shield, por exemplo, foi especificado para conectar o Arduino a uma rede local e é provavelmente a maneira mais simples e mais barata de ligar o Arduino à internet. Neste caso estamos falando de um shield oficial, desenhado e suportado pelo time do Arduino. Mas também existem shields de terceiros. Na realidade, como já dissemos, qualquer pessoa pode desenvolver seu shield. A versão atual do Arduino Ethernet Sheild oficial também contém um leitor de cartões micro-SD.
Se você está interessado em shields de comunicação, outras alternativas são: o Arduino WiFi Shield que faz o mesmo que o Ethernet Shield mas em redes sem fio; o Arduino GSM Shield que se conecta a rede de telefonia celular; e o Bluetooth Low Energy (BLE) Shield for Arduino 2.0 que adiciona ao Arduino a capacidade de conversar com outros dispositivos Bluetooth como iPhones e iPads.

2.8″ TFT Touch Display Shield V2.0

Alguns shields permitem que o Arduino tenha uma tela, seja ela preto e branca, colorida, LCD ou e-Ink. Neste caso, o TFT Touch Display Shield V2.0 da Seed Studio adiciona uma tela LCD colorida de matriz ativa com resolução de 320×240 pixels que suporta até 65 mil cores. Além d isto este shield também conta com um sensor de toque resistivo, iluminação da tela e um leitor de micro-SD. Se você precisar de uma interface gráfica sensível ao toque, este shield é ideal para seu projeto.
Mas existem várias outras alternativas para adicionar displays em seu projeto. Algumas mais baratas e outras mais caras. Algumas que considero bem legais são: o Adafruit LCD Shield com Display de Caracteres 16×2 que adicionam um display simples de usar e vários botões a seu Arduino e o Seed Studio E-Ink Display Shield que traz para o Arduino uma tela super econômica (em termos energéticos) igual as dos e-Readers com o Kindle.

Arduino Motor Shield 

Embora muitas vezes o que fazemos como Arduino seja conectar sensores e apresentar informações através de displays e outras formas visuais como LEDs, ele também pode ser utilizado para controlar coisas do mundo físico através de motores dos mais diversos tipos. Você pode construir dispositivos que possuem atuadores mecânicos e até mesmo robôs. Para isto você precisa de adicionar ao Arduino a eletrônica necessária para ele poder controlar motores e fornecer a eles a energia necessária para funcionarem. Uma maneira simples de fazer isto é utilizar um shield para motores. Existem muitos shields que fazem isto e um deles é suportado oficialmente pelo projeto. O Arduino Motor Shield possúi a eletrônica necessária para comandar diversos tipos de motores e outros cargas indutivas como solenóides e relês. Ele permite controlar a velocidade e a direção dos motores de maneira independente e ainda medir o quanto de corrente cada um deles está consumindo.
Alternativas ao motor shield oficial podem ser encontradas em lojas como a Adafruit e a SparkFun. Dois bons examplos são o Adafruit Motor/Stepper/Servo Shield for Arduino V2 e o Adafruit 16-Channel 12-bit PWM/Servo Shield.

Wave Shield for Arduino


Uma das coisas complicadas de se fazer com o Arduino e outros projetos eletrônicos é fazê-los reproduzir som de qualidade. Para isto a Adafruit desenvolveu um shield que permite o Arduino a reproduzir sons a partir de arquivos no fomato .wav (sim, aquele do Windows) com frequências de sampleamento de até 22KHz com 12 bits de resolução. O Adafruit Wave Shield for Arduino contém um conversor DAC (conversor digital-analógico), filtros e amplificadores de áudio de boa qualidade. O shield armazena os arquivos em um cartão SD e se conecta com seus alto-falantes ou fones de ouvido através de uma conexão P2 padrão.

 Arduino Proto Shield


Os Proto Shields, como são mais conhecidos, são os melhores amigos de quem está desenvolvendo sua própria placa de circuito no Arduino. Quem deseja funções específicas ou precisa atender requerimentos especiais tem nestes shields grandes companheiros de projeto.
Eles permitem que se desenvolvam circuitos que se encaixam no Arduino como um shield comum. Além disto, se você utilizar um pequeno protoboard, poderá fazer testes no circuito sem que seja necessário soldar todas as peças. Basta encaixar tudo no lugar, testar, rearranjar e testar outra vez. Com isto, os projetos são desenvolvidos com muito mais agilidade e menor custo. Eles também são uma boa opção quando você desejar que seu circuito seja integrado ao Arduino como um único módulo (na forma de um sheild).
Existem várias opções de Proto Shields disponíveis no mercado. Uma delas o Arduino Proto Shield que é o shield de prototipagem oficial. Outras versões contém algumas outras facilidades para seu projeto e podem ser encontradas várias lojas na rede. Alguns bons exemplos são o Adafruit Proto Shield for Arduino Kit, o DIY Shield for Arduino (também vendido pela Adafruit) e o SparkFun Arduino ProtoShield Kit.
Com a expansão da comunidade Arduino no mundo e no Brasil o número de shields está crescendo cada vez mais. 

Fique atento a essas observações: 
  • Ao comprar um shield verifique se ele é compatível com a versão de sua placa Arduino. Versões diferentes de Arduinos podem apresentar pinagens diferentes e por isto um mesmo shield pode não funcionar em todas elas.
  •  Perceba que alguns dos shields listados neste artigo são Kits. Isto quer dizer que eles não são fornecidos completamente montados e que você terá que montar o shield com as peças fornecidas no kit. Se você ainda é pouco experiente dê preferência a shields que já venham montados.

Fonte: http://blog.fazedores.com/

quinta-feira, 12 de maio de 2016

CONTROLANDO UM LCD COM ARDUINO

Neste post  vamos mostrar como montar o circuito e como utilizar o Display LCD com o Arduino. Para isso iremos utilizar o display LCD 16x2, um display muito comum com o controlador HD44780, que se adapta aos mais diversos projetos, podendo ser usado com vários modelos de placas e microcontroladores como o Arduino, Raspberry, PIC e etc. Faremos também um exemplo, onde escrevemos na tela do LCD, esse exemplo foi criado pelo site Laboratório de Garagem. 

Display LCD 16x2
Esse display LCD tem 16 colunas e 2 linhas, com backlight (luz de fundo) azul e letras na cor branca. Para conexão, são 16 pinos, dos quais usamos 12 para uma conexão básica, já incluindo as conexões de alimentação (pinos 1 e 2), backlight (pinos 15 e 16) e contraste (pino 3).

Pinagem LCD 16x2

CONEXÃO DISPLAY LCD 16×2 COM ARDUINO

Na conexão do display ao Arduino Uno vamos utilizar apenas 4 pinos de dados (pinos digitais 2, 3, 4 e 5), e 2 pinos de controle (pinos digitais 11 e 12).
Para o ajuste do contraste, usamos um potenciômetro de 100K, mas você pode testar com outros valores como 10K ou 50K, por exemplo.


Se preferir, você também pode utilizar um potenciômetro para regular a luz de fundo, nos pinos 15 e 16 do display. Outra opção é usar um resistor em um desses pinos.

PROGRAMA DE CONTROLE LCD

O controle desse display pode ser feito utilizando-se a biblioteca LiquidCrystal, já embutida na IDE do Arduino. Ela é bastante útil, pois possui funções que nos auxilia nas configurações e tratamento dos dados a serem enviados ao LCD. Na lista abaixo, estão contidas as funções que podem ser utilizadas pela biblioteca. Para mais detalhes sobre uma certa função, basta somente clicar nela que você será redireciona para o site da Arduino.cc, onde você vai encontrar o que essa função faz, e a sintaxe para se utilizar ela.


CÓDIGO:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <LiquidCrystal.h> //Inclui a biblioteca do LCD

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura os pinos do Arduino para se comunicar com o LCD

int temp; //Inicia uma variável inteira(temp), para escrever no LCD a contagem do tempo

void setup()
{

lcd.begin(16, 2); //Inicia o LCD com dimensões 16x2(Colunas x Linhas)
lcd.setCursor(0, 0); //Posiciona o cursor na primeira coluna(0) e na primeira linha(0) do LCD
lcd.print("Ola Garagista!"); //Escreve no LCD "Olá Garagista!"
lcd.setCursor(0, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print("LabdeGaragem"); //Escreve no LCD "LabdeGaragem"

}

void loop()
{

lcd.setCursor(13, 1); //Posiciona o cursor na décima quarta coluna(13) e na segunda linha(1) do LCD
lcd.print(temp); //Escreve o valor atual da variável de contagem no LCD
delay(1000); //Aguarda 1 segundo
temp++; //Incrementa variável de contagem

if(temp == 600) //Se a variável temp chegar em 600(10 Minutos),...
  {
  temp = 0; //...zera a variável de contagem
  }

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Como pode ver, no início do programa, definimos os pinos que serão utilizados pelo displays, nesse formato:
LiquidCrystal lcd(<pino RS><pino enable><pino D4><pino D5><pino D6><pino D7>)
Já no setup, inicializamos o display definindo o número de colunas e linhas com o comandolcd.begin(16,2).
Observação: Este post é indicado para os alunos interessados no Hackathon da Unimed.
Fonte:
Adaptado por Ríuler Mendes

segunda-feira, 9 de maio de 2016

Como Emitir sons com o Buzzer

O buzzer nada mais é do que um pequeno alto-falante capaz de emitir sons em diversas frequências. Neste post vamos mostrar como emitir sons em uma determinada frequência e intervalo de tempo utilizando o buzzer e o Arduino. O buzzer é normalmente é usado em projetos que necessitam de avisos sonoros, relógios com alarme, e até para reproduzir músicas.



O primeiro passo é conectar os componentes e os fios na protoboard. Ligue uma perna do resistor na perna positiva do buzzer. Ligue o fio preto na perna negativa do buzzer e ligue o fio vermelho na outra perna do resistor. No arduino ligue o fio vermelho no pino digital 10 e o fio preto no pino GND. Veja na imagem abaixo.



Segue abaixo o código fonte do projeto arduino com buzzer que faz o mesmo emitir um som de 1500 hz mum intervalor de meio em meio segundo. A emissão do som se dá através da função tone, onde o segundo parâmetro informa a frequência do som que você quer emitir, que neste caso e 1500.

//Constante que representa o pino onde o positivo
//do buzzer será ligado.
const int buzzer = 10;
//Método setup, executado uma vez ao ligar o Arduino.
void setup() {
  //Definindo o pino buzzer como de saída.
  pinMode(buzzer,OUTPUT);
}
//Método loop, executado enquanto o Arduino estiver ligado.
void loop() { 
  //Ligando o buzzer com uma frequencia de 1500 hz.
  tone(buzzer,1500);  
  delay(500);
   
  //Desligando o buzzer.
  noTone(buzzer);
  delay(500); 
}


Fonte:
  • http://www.comofazerascoisas.com.br/projeto-arduino-como-emitir-sons-com-o-buzzer.html
  • http://www.arduinoecia.com.br/2013/06/sons-no-arduino.html


sexta-feira, 6 de maio de 2016

Relógio com o Módulo RTC DS1307

O móduto RTC DS1307, um relógio de tempo real, é um componente muito útil para montar algum tipo de relógio com o Arduino, setar alarmes e assim executar ações em horários predeterminados. Neste post vamos apresentar um tutorial de como conectar este módulo com o Arduino Uno, mostrando as informações de data e hora no Serial Monitor da IDE Arduino. Lembrando que este modulo também é compatível com outros microcontroladores. 

Esse módulo tem 56 bytes de memória não-volátil disponível para uso, é capaz de armazenar e fornecer informações completas de data como dia da semana, dia do mês, mês, ano e além é claro, das funções de horas, minutos e segundos, nos formatos de 12 ou 24 horas. Meses com menos de 31 dias e anos bissextos são ajustados automaticamente.

Uma bateria de lítio garante que os dados sejam preservados mesmo sem alimentação externa, e é acionada automaticamente em caso de falta de energia no módulo.

Uma outra característica desse módulo é que você pode utilizar um sensor de temperatura DS18B20 (não incluso), e ler as informações do sensor a partir do pino DS do módulo, o que faz com que seja possível montar um relógio completo com data, hora, dia da semana e temperatura, sem a necessidade de outros componentes.

Conectando o Módulo RTC DS1307 ao Arduino


Neste post vamos mostrar um breve tutorial de como ligar esse módulo RTC DS1307 ao Arduino e exibir todas essas informações no serial monitor.
Olhando o módulo pela parte inferior, podemos ver na parte esquerda os pinos GND, Vcc, SDA e SCL, utilizados para cascatear dispositivos I2C, e também o pino DS, que fornece os dados do sensor de temperatura, se o mesmo estiver instalado. No lado direito, vamos utilizar apenas os pinos SCL, SDA, Vcc e GND para ligação ao Arduino.
Conecte o módulo RTC DS1307 ao Arduino, tomando cuidado para não inverter as ligações, pois como vimos acima existem pinos com o mesmo nome dos dois lados do módulo :

Você precisara baixar a biblioteca RTC DS1307 antes de carregar o seu programa, baixe ela clicando aqui, descompacte o arquivo e copie o conteúdo para a pasta LIBRARIES da IDE do seu Arduino.
No programa, a parte do código que contém os comandos
rtc.setDOW(MONDAY);
rtc.setTime(16, 30, 47); 
rtc.setDate(5, 6, 2014);
só deve ser utilizada para setar a hora e data do RTC DS1307. Depois disso, essas linhas podem ser comentadas ou excluídas e o programa deve ser novamente carregado no Arduino.
Programa


//Carrega a biblioteca do RTC DS1307
#include <DS1307.h>
 
//Modulo RTC DS1307 ligado as portas A4 e A5 do Arduino
DS1307 rtc(A4, A5);
 
void setup()
{
  //Aciona o relogio
  rtc.halt(false);
   
  //As linhas abaixo setam a data e hora do modulo
  //e podem ser comentada apos a primeira utilizacao
  rtc.setDOW(FRIDAY);      //Define o dia da semana
  rtc.setTime(20, 37, 0);     //Define o horario
  rtc.setDate(6, 6, 2014);   //Define o dia, mes e ano
   
  //Definicoes do pino SQW/Out
  rtc.setSQWRate(SQW_RATE_1);
  rtc.enableSQW(true);
   
  Serial.begin(9600);
}
 
void loop()
{
  //Mostra as informações no Serial Monitor
  Serial.print("Hora : ");
  Serial.print(rtc.getTimeStr());
  Serial.print(" ");
  Serial.print("Data : ");
  Serial.print(rtc.getDateStr(FORMAT_SHORT));
  Serial.print(" ");
  Serial.println(rtc.getDOWStr(FORMAT_SHORT));
   
  //Aguarda 1 segundo e repete o processo
  delay (1000);
}

Execute o programa, abra o Serial Monitor e você terá as informações do RTC DS1307 dessa maneira :

Essa biblioteca pode mostrar as informações da data em formato completo bastando retirar as infomrações de FORMAT_SHORT (formato reduzido) do programa.
Observação: Este Post é recomendado para os participantes do Hackathon da UNIMED.

Fonte: blog.filipeflop.com