Tradutor

Pesquisar este blog

segunda-feira, 19 de novembro de 2012

Passo 7 - Radio Frequência (apc220)


Componentes:

- 2x APC220 Módulos de RF com antenas
- 1x USB-TTL Converter
- 1x placa arduino + fios
- 1x sensor de temperatura
- 1x resistor 330Ω

- Descrição: O arduino  faz a leitura da temperatura através do sensor,  ao mesmo tempo envia os dados da leitura por um emissor wireless e por fim o computador recebe os dados pelo receptor ligado ao USB-TTL Converter.



- Ligações do arduino: 





-Receptor + conversor:





Instalação dos drivers: 

-Faça o download do driver clicando aqui (CP210x_VCP_Win_XP_S2K3_Vista_7) e instale-o.
-Programa para sincronizar a frequência do módulos, clique aqui (APC22X_V12A).

-Conecte o um dos módulos,  altere  a frequência para sua frequência desejada (max 478MHz).
-Repita o passo acima com o outro módulo.



-Código do Arduíno:


 int sensorPin = 0;

 int val = 0;

 void setup(){
  
   Serial.begin(9600);

 }

void loop(){

   val = analogRead(sensorPin);
   
   Serial.println(val);

}

-Faca upload do código

-Abra a IDE do arduino e  escolha a serial port onde o receptor estiver conectado.

-Abra o serial monitor e seja feliz.



segunda-feira, 5 de novembro de 2012

Projeto - Carro segue trilha.



- Componentes: 2 Motores + 2 sensores de reconhecimento de cor + Placa Arduíno + Fios.

- Descrição: Na frente do carro temos dois sensores de luz, o carro vai identificar a intensidade luminosa que esta em baixo dele, a partir desses dados é feito um calculo para determinar as propriedades da superfície que ele se encontra, a cor, textura, ate mesmo uma linha preta no chão desde que o chão seja totalmente branco, ou pode seguir uma linha branca desde que o chão seja totalmente preto.





Código =>  SEGUIDOR DE LINHA REVERSO.

                 Código para robô segue linha reverso traciona o motor
                 de acordo com o curva assim ele reverte o polo
                 para dar o angulo de curvatura.


int PortPin2 = 2;    // Motor 1
int PortPin3 = 3;    // Motor 1
int PortPin4 = 4;    // Motor 2
int PortPin5 = 5;    // Motor 2
int Inp_sensor_dir = 8;
int Inp_sensor_esq = 9; 
void setup(){
    pinMode(PortPin2, OUTPUT); 
    pinMode(PortPin3, OUTPUT); 
    pinMode(PortPin4, OUTPUT); 
    pinMode(PortPin5, OUTPUT); 
    pinMode(Inp_sensor_dir, INPUT); 
    pinMode(Inp_sensor_esq, INPUT);   
} 
void loop(){
    drive_frente();     
    if((digitalRead(Inp_sensor_dir)) == HIGH){
          drive_esquerda();       
          delay(50);     
    }      
    drive_frente();
    if((digitalRead(Inp_sensor_esq))== HIGH){
          drive_direita();       
          delay(50);     
    }           
    drive_frente();      
}

void drive_esquerda(){   //função drive_esquerda
    digitalWrite(PortPin2, LOW);     //Motor 1
    digitalWrite(PortPin4, LOW);     //Motor 2
    digitalWrite(PortPin3, HIGH);    //Motor 1
    digitalWrite(PortPin5, HIGH);    //Motor 2
}
void drive_direita(){   //função drive_direita
    digitalWrite(PortPin2, HIGH);     //Motor 1
    digitalWrite(PortPin4, HIGH);     //Motor 2
    digitalWrite(PortPin3, LOW);      //Motor 1
    digitalWrite(PortPin5, LOW);      //Motor 2
}
void drive_frente(){    //função drive_frente
    digitalWrite(PortPin2, LOW);      //Motor 1
    digitalWrite(PortPin3, HIGH);      //Motor 1
    digitalWrite(PortPin4, HIGH);      //Motor 2
    digitalWrite(PortPin5, LOW);     //Motor 2
}


Codigo =>  SEGUIDOR DE LINHA DESLIGA.

                 Código para robô segue linha com deligamento
                 de um dos motor, para não dar o efeito de travamento.
           

int PortPin2 = 2;    // Motor 1
int PortPin3 = 3;    // Motor 1
int PortPin4 = 4;    // Motor 2
int PortPin5 = 5;    // Motor 2
int Inp_sensor_dir = 8;
int Inp_sensor_esq = 9; 
void setup(){
    pinMode(PortPin2, OUTPUT); 
    pinMode(PortPin3, OUTPUT); 
    pinMode(PortPin4, OUTPUT); 
    pinMode(PortPin5, OUTPUT); 
    pinMode(Inp_sensor_dir, INPUT); 
    pinMode(Inp_sensor_esq, INPUT);   
}
void loop(){

  drive_frente();     
  if((digitalRead(Inp_sensor_dir)) == HIGH){
  drive_esquerda();       
delay(200);     
  }      
  drive_frente();
  if((digitalRead(Inp_sensor_esq))== HIGH){
        drive_direita();       
delay(200);     
  }     
      
  drive_frente();      
}
void drive_esquerda(){  //função drive_esquerda
  //digitalWrite(PortPin2, LOW);  //Motor 1
  digitalWrite(PortPin4, LOW);    //Motor 2
  //digitalWrite(PortPin3, LOW);  //Motor 1
  digitalWrite(PortPin5, LOW);    //Motor 2
}

void drive_direita(){            //função drive_direita
  digitalWrite(PortPin2, LOW);    //Motor 1
  //digitalWrite(PortPin4, HIGH); //Motor 2
  digitalWrite(PortPin3, LOW);    //Motor 1
  //digitalWrite(PortPin5, LOW);  //Motor 2
}

void drive_frente(){              //função drive_frente
  digitalWrite(PortPin2, LOW);    //Motor 1
  digitalWrite(PortPin3, HIGH);   //Motor 1
  digitalWrite(PortPin4, HIGH);   //Motor 2
  digitalWrite(PortPin5, LOW);    //Motor 2
}

quinta-feira, 1 de novembro de 2012

Projeto - Carro que desvia obstáculos.



- Componentes: 1 Placa Arduíno + 2 Motores + 1 Sensor ultrassônico + Fios + Materiais descartáveis (para montar o carro).

- Descrições: O sensor ultrassônico tem um emissor e um receptor, o transmissor manda um som que logo é percebido pelo receptor e assim podendo detectar se há um objeto a sua frente e qual a sua distancia. Como mostra na figura abaixo.


 - O carro funciona da seguinte maneira: A medida que ele chega perto do obstaculo, no monitor ficará listando a distância que o carro esta, no caso do nosso carro ele foi programado para parar a 5 cm do obstaculo, quando isso acontece ele gira para os dois lados medindo a distancia, o lado que tiver mais distancia ate o próximo obstaculo ele irá seguir.


Carro =>



Código =>



int PortPin2 = 2;    // Motor 1
int PortPin3 = 3;    // Motor 1
int PortPin4 = 4;    // Motor 2
int PortPin5 = 5;    // Motor 2
int distancia = 0;
int disdir= 0;
int disesq = 0;

#define echoPin 13
#define trigPin 12

#include "Ultrasonic.h"

Ultrasonic ultrasonic(12,13);

void setup()   {
  Serial.begin(9600);
  pinMode(PortPin2, OUTPUT);
  pinMode(PortPin3, OUTPUT);
  pinMode(PortPin4, OUTPUT);
  pinMode(PortPin5, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);

}

void loop()  {
  drive_frente();
  delay(100);   
  distancia = ultrasonico();
  Serial.println(distancia);
  delay(10);

  if(distancia <= 5){
    drive_esquerda();
    delay(1500);
    drive_stop();
    delay(200);
    disesq = ultrasonico();
    Serial.print("Esquerda: ");
    Serial.println (disesq);
    drive_direita();
    delay(2900);
    drive_stop();
    delay(200);
    disdir = ultrasonico();
    Serial.print("Direita: ");
    Serial.println(disdir);
    if(disdir >= disesq){
      Serial.println("-->Direita");
      drive_frente();
    }
    else{
      Serial.println("<--Esquerda");
      drive_esquerda();
      delay(2800);
      drive_stop();
      delay(200);
      drive_frente();
    }
  }  
}

void drive_esquerda(){           //função drive_esquerda
  digitalWrite(PortPin2, LOW);     //Motor 1
  digitalWrite(PortPin3, HIGH);    //Motor 2
  digitalWrite(PortPin4, HIGH);    //Motor 1
  digitalWrite(PortPin5, LOW);     //Motor 2
}

void drive_direita(){             //função drive_direita
  digitalWrite(PortPin2, HIGH);     //Motor 1
  digitalWrite(PortPin3, LOW);      //Motor 1
  digitalWrite(PortPin4, LOW);      //Motor 2
  digitalWrite(PortPin5, HIGH);     //Motor 2
}

void drive_stop(){                //função drive_stop
  digitalWrite(PortPin2, LOW);      //Motor 1
  digitalWrit  e(PortPin4, LOW);      //Motor 2
  digitalWrite(PortPin3, LOW);      //Motor 1
  digitalWrite(PortPin5, LOW);      //Motor 2
}

void drive_re(){                  //função drive_re
  digitalWrite(PortPin2, HIGH);     //Motor 1
  digitalWrite(PortPin3, LOW);      //Motor 1
  digitalWrite(PortPin4, HIGH);     //Motor 2
  digitalWrite(PortPin5, LOW);      //Motor 2
}

void drive_frente(){              //função drive_frente
  digitalWrite(PortPin2, LOW);      //Motor 1
  digitalWrite(PortPin3, HIGH);     //Motor 1
  digitalWrite(PortPin4, LOW);      //Motor 2
  digitalWrite(PortPin5, HIGH);     //Motor 2
}

int ultrasonico(){

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

  int distancia = (ultrasonic.Ranging(CM));

  return(distancia);

}



terça-feira, 30 de outubro de 2012

Projeto - Contador de unidades e dezenas.



   - Componentes: 2 Motores + 1 Placa ponte H + 1 Sensor Infravermelho + Fios.

   - Descrição: Conforme passa a mão na frente do sensor infravermelho o motor1(conta as unidades) gira puxando um barbante com um ponteiro mostrando na parede os números das unidades, a cada 10 passadas de mão no sensor o motor2(Contador de dezenas) gira fazendo com que suba um na dezena.


Projeto criado para fins educacionais, ou seja, ensinar unidades e dezenas para crianças de uma forma mais tecnológica.


- Código no scratch for Arduíno: Um jeito mais fácil de programar Arduíno,  também voltado para a educação infantil, uma forma de programar graficamente, simplesmente arrastando as funções.




Código:

int unidadeS = 5;
int unidadeD = 6;
int dezenaS = 10;
int dezenaD = 11;
int sensor = A0;
int velU = 120; //velocidade motor unidade
int velD = 180; //velocidade motor dezena
int contador = 0; //contador das unidades
int contadorD = 0; //contador das dezenas
int vezes = 0; //conta quantas vezes (até 2) o motor das unidades desceu (se == 2 sobe dezena)

void setup()
{
  pinMode(unidadeS,OUTPUT);
  pinMode(unidadeD,OUTPUT);
  pinMode(dezenaS,OUTPUT);
  pinMode(dezenaD,OUTPUT);
  pinMode(sensor,INPUT);
}

void loop()
{
  //Lẽ o sensor
  int sensor = analogRead(sensor);

  //se alguem passou pelo sensor
  if (sensor > 350){
    //sobe uma unidade
    analogWrite(unidadeS,velU);
    delay(350);
    analogWrite(unidadeS,0);
    contador++;
    
  //se o contador for == 5, entao desce o motor das unidades
    if(contador == 5){
      analogWrite(unidadeD,velU);
      delay(570);
      analogWrite(unidadeD,0);
      contador = 0;
      vezes++;
    }
     
   //caso as unidades chegaram 2 vezes até 5   
   if(vezes == 2){
      analogWrite(dezenaS,velD);
      delay(200);
      analogWrite(dezenaS,0);
      vezes = 0;
      contadorD++;
   }
  //se o contador da dezena for == 5 entao desce o motor das dezenas
   if (contadorD == 5){
     analogWrite(dezenaD,velD);
     delay(900);
     analogWrite(dezenaD,0);
     contadorD = 0;
   }
  //sempre que passar alguem pelo sensor, espera 1 segundo para ler o proximo (evitar ficar com a mao em cima)
    delay(1000);
  }

}                             

quinta-feira, 27 de setembro de 2012

Passo 4 - Botões


2 º  Projeto - Botões

- Componentes : 1 Botão + 1 Led + 2 Resistores + Fios
- Descrição: Conforme você pressiona um pushbutton, um Led é aceso.


    Trata-se de fazer um botão acender um led quando pressionado e, quando solto, o led deverá apagar. Os componentes devem ser montados conforme a figura abaixo:




-Execute o código, abaixo:

int ledPin = 13;  //led no pino 13
int Botao = 2;     //botao no pino 2
int EstadoBotao = 0;     //Variavel para ler o status do pushbutton

void setup(){

pinMode(ledPin, OUTPUT);   //Pino do led será saída
pinMode(Botao, INPUT);       //Pino com botão será entrada
 
}

void loop(){

EstadoBotao = digitalRead(Botao);   /*novo estado do botão vai ser igual ao que
                                                                      Arduino ler no pino onde está o botão.
                                                                      Poderá ser HIGH, se o botão estiver
                                                                      Pressionado, ou LOW, se o botão
                                                                      estiver solto */

if (EstadoBotao == HIGH){         //Se botão estiver pressionado (HIGH)
digitalWrite(ledPin, HIGH);     // acende o led do pino 13.
 
}
else{                                               //se não estiver pressionado

digitalWrite(ledPin, LOW);    //deixa o led do pino 13 apagado
 
}
}

Passo 3 - Pisca Led


1 º  Projeto - Pisca Led

  - Para este projeto será preciso um LED , um resistor,  fios e uma matriz de contato (Protoboard).

  - Agora que está munido destes componentes, monte o circuito abaixo:




   
Após a montagem, copie o código abaixo e cole na interface de programação do arduino e faça o upload, após alguns segundos ele executará automaticamente:

void setup() {

pinMode(12, OUTPUT); //Declara que o pino 12 do arduino é de Saída.

}

void loop() {

digitalWrite(12, HIGH);  // Diz que o pino 12 do arduino está Ligado.
delay(1000); // Espera por 1s

digitalWrite(12, LOW); //  Diz que o pino 12 do arduino está Desligado
delay(1000); // Espera por 1s
}

quarta-feira, 26 de setembro de 2012

Passo 6 - Motor

4º Projeto :  Controlando Motor DC com Ponte H

Descrição : Neste projeto o sentido do motor será acionado conforme os dados recebidos pelo teclado.




Código:
int motorPin1 = 5;
int motorPin2 = 6;
int entrada = 0;

void setup() {

  Serial.begin(9600);

  pinMode(motorPin1, OUTPUT);

  pinMode(motorPin2, OUTPUT);

}

void loop() {

 if (Serial.available() > 0) {         // testa se a porta serial está disponível

 entrada = Serial.read();   // le os dados da porta serial armazena na variavel 'entrada'

  if (entrada == 'e'){

    esquerda();

  } else if (entrada == 'd'){

    direita();

  } else {

    parar();
 }
 }
}

void esquerda(){

 digitalWrite(motorPin1, HIGH);   // Motor para a esquerda

 digitalWrite(motorPin2, LOW);   //

}

void direita(){

 digitalWrite(motorPin1, LOW);   // Motor para a esquerda

 digitalWrite(motorPin2, HIGH);  

}

void parar(){

 digitalWrite(motorPin1, LOW);   // para o motor

 digitalWrite(motorPin2, LOW);  

}

Passo 5 - Pisca Led Teclado

3º Projeto : Controlando Leds pelo Teclado

Neste projeto será possível entender como os dados são lidos pelo arduino, e como controlar Leds apenas enviando dados pelas teclas do computador.

- Vamos iniciar com um programa que exemplifique o funcionamento da leitura de dados pela porta serial.

1 º Execute este código:

int n = 0; // Para entrada de dados seriais

void setup() {

Serial.begin(9600); // Ativa a porta serial

}

void loop() {

if (Serial.available()>0) { // Testa se a porta serial esta recebendo dados

n = Serial.read(); //Os dados lidos são armazenados na variável n

// mostra na tela
Serial.print("Valor digitado: ");
Serial.println(n, BYTE);
Serial.print("Valor lido: ");
Serial.println(n);
}

}

2º Após executar, ative o Serial Monitor:

3 º Ao ativar, digite valores e clique em "Send":

-  Agora vamos montar o circuito abaixo, para controlar os Leds:


 - Execute o código abaixo:
int n;
int pin7 = 7;
int pin8 = 8;

void setup() {

Serial.begin(9600);
Serial.flush();
pinMode(pin7, OUTPUT);
pinMode(pin8, OUTPUT);
Serial.println("Digite:\n 2-Vermelho \n 3-Verde \n 4-Vermelho e Verde \n 5-Apagar Todos");

}

void loop() {

if (Serial.available() >0) {

 n = Serial.read();

 Serial.print("Voce digitou: ");

 Serial.println(n, BYTE);

//testes condicionais

  if( n==50 ){   // 2-vermelho

   digitalWrite(pin7,HIGH);

   digitalWrite(pin8,LOW);
   }

  if(n==51){   // 3-Verde

   digitalWrite(pin8,HIGH);

   digitalWrite(pin7,LOW);
   }

  if(n==52){  // 4-Verde

   digitalWrite(pin8,HIGH);

   digitalWrite(pin7,HIGH);
   }

  if(n==53){   // 5-desliga LEDs

    digitalWrite(pin8,LOW);
  
    digitalWrite(pin7,LOW);
   }
}
Serial.flush();
}
- Após executar, ative a porta Serial:
- Será mostrado na tela:
Pronto!



Passo 2 - Instalação do Software Arduino


Instalação Software Arduino IDE

Uma vez instalado o hardware do Arduino, o próximo passo é baixar a IDE (Integrated Development Environment). Essa IDE irá facilitar todo o processo de codificação do software e envio para o microcontrolador. Para tanto, apenas siga os seguintes passos:

1.  Acesse o site do Arduino, na sessão de downloads, e selecione Windows, através do link abaixo:

  

2.  Após concluído o download, descompacte o arquivo, e clique no programa de execução


3. Bem vindo ao IDE do Arduino 


4. Conferir se está tudo "OK" como a interface e hardware selecionando a Placa que iremos usar 


4. Conferir se está tudo "OK" como a interface e hardware selecionando a porta serial que esta conectado ao nosso Arduino



5. Está tudo pronto para criamos nossos códigos e projetos. 
   


Passo 1 - Instalando Driver


Instalando drivers para reconhecimento da placa arduino

Por causa de fatores ligados à permissões do sistema, o Windows 7 algumas vezes impede que o driver seja instalado de uma determinada pasta, onde estão os driver e ambiente de desenvolvimento do Arduino. Desta forma, temos que fazer com que o Windows “force” a instalação destes drivers de alguma forma.

1)  Conecte seu Arduino à porta USB de seu computador. Aguarde até aparecer a mensagem
      de erro de instalação de driver. A mensagem deve parecer com a seguinte:


 2)  Feche esta mensagem. Clique em “Iniciar”   depois em “Dispositivo e Impressoras”.
      Você verá um dispositivo como “Não Especificado”, como mostra a figura abaixo:



3)  Clique com o botão direito do Mouse neste “Dispositivo Desconhecido” e depois em 
     Propriedades; 

4)  Clique na aba “Hardware” e depois em “Propriedades”; 

5)  Na nova janela, clique no botão “Alterar Configurações”; 

6)  Clique agora em “Atualizar Driver...”; 

7)  Na janela que abrir, clique em “Procurar Software de Driver no Computador” 





8)  Neste ponto, não use a opção de seleção de diretório para escolher o driver do Arduino. Se

      você fizer isto, o Windows não irá permitir que o driver seja instalado, pois ele não tem
      permissão para carregar o driver da pasta em questão.
      Clique então em “PERMITIR QUE EU ESCOLHA EM UMA LISTA DE DRIVERS E
      DISPOSITIVOS NO COMPUTADOR”, como na figura a seguir:



9)  Na janela que abrir, role a lista para baixo até encontrar “Portas (COM e LPT)” e clique em
     Avançar;

10) Na próxima janela, selecione “Porta de comunicação”, como na figura abaixo e clique em
      “Com Disco...”:




11) Na janela que abrir, faça a busca do driver pelo botão “Procurar”. Direcione esta busca para
      a pasta DRIVERS, do ambiente de desenvolvimento Arduino, e dentro dela clique em
      “ARDUINO UNO REV3”, caso esta seja sua placa Arduino, conforme a figura abaixo:



12) Clique em “Abrir”, então em “Ok” e depois em “Avançar”;

13) Clique em “Instalar este software mesmo assim”;

14) Pronto! Seu Arduino está instalado e pronto para ser usado! Agora, basta selecionar a porta
      serial do mesmo no ambiente de desenvolvimento Arduino e usá-lo.