Ferramentas do usuário

Ferramentas do site


labirinto_laser

Labirinto Laser

A ideia de construir um Labirinto a Laser surgiu dos filmes de Hollywood, onde acontecem assaltos a bancos. Estes bancos possuem uma super segurança e o assaltante tem que percorrer um caminho até chegar ao cofre.

Como funciona:

Foi definido uma Caneta a Laser verde, para ser o emissor. E o receptor foi criado uma Protoboard, com um Buzzer e um Sensor LDR, que vai encaixada numa placa Arduino.

Para este projeto foi utilizado outro projeto: a Máquina de Fumaça.

O Laser sozinho ele não aparece a olho nú, portanto foi desenvolvido em paralelo a Máquina de Fumaça para podermos visualizar os feixes do laser.

Material utilizado:

1 Sensor LDR, 1 Buzzer/Sirene, vários espelhos, Jumpers, Caneta de Laser, 1 Arduino.

Arquitetura:

Software:

int sensorLDR = 0;      //Sensor de luminosidade, porta analógica
int laser = 0;  //Variável para armazenar o valor do sensor
int pinoLed = 6;      //pino do led
 
int sensibilidade = 3;
int media = 0;        //media da luz do ambiente
 
#define tempo 10      //tempo para executar a sirene
int frequencia = 0;    //frequencia inicial da sirene
int pinoBuzzer = 3;    //pino no buzzer
 
void setup(){
  Serial.begin(9600);
  pinMode(pinoLed, OUTPUT);  //LED verde
  pinMode(pinoBuzzer,OUTPUT); //Pino do buzzer
 
  configuraLuzAmbiente();//roda somente na inicialização
}
 
void loop(){
  //captura o laser e verifica se o laser foi interompido ou não!
  laser = analogRead(sensorLDR);
 
  Serial.print("laser:");//min_luminosidade
  Serial.println(laser);  //Saída da saída analógica
  Serial.print("max_luminosidade:");
  Serial.println(laser * sensibilidade);
  Serial.print("media:");
  Serial.println(media);
  Serial.println("----");
 
  if(laser <= media){
    //ok
    digitalWrite(pinoLed, LOW);
  }else{
    //perdeu
    digitalWrite(pinoLed, HIGH);
    sirene();
  }
  //delay(500);
 }
 
 //emula o som de uma sirene, variando a frequencia!
 void sirene(){
   for (frequencia = 150; frequencia < 1800; frequencia += 1) 
    {
      tone(pinoBuzzer, frequencia, tempo); 
      delay(1);
    }
    for (frequencia = 1800; frequencia > 150; frequencia -= 1) 
    {
      tone(pinoBuzzer, frequencia, tempo); 
      delay(1);
    }
 }
 
//metodo somente para executar a primeira vez do programa, para configurar a luz do ambiente.
void configuraLuzAmbiente(){
    Serial.println("--Configuração--");
    laser = analogRead(sensorLDR);
    Serial.print("max_luminosidade:");
    Serial.println(laser * sensibilidade);
    Serial.print("media:");
    media = (laser * sensibilidade)/2;
    Serial.println(media);
    Serial.println("-----");
}

Fotos:

Video:

labirinto_laser.txt · Última modificação: 2015/03/26 22:56 por ademir