19-1 Grupo 7

## Autores

Athus Gabriel Ferreira Gonçalves - 0040961723004

Mariana De Luca Reis - 0040961723023

Vagner Alves Leite - 0040961723020

## Resumo

O labirinto elétrico é um projeto de física bastante comum em feiras de ciências. Um circuito elétrico é construído, com a corrente elétrica passando por um arame. Uma argola de arame também é ligada a este circuito, e quando a argola toca o arame, o circuito fecha, disparando uma sirene. O objetivo é percorrer o labirinto feito de arame sem que a argola encoste nele. Nessa versão, o projeto foi incrementado com o uso do Arduíno, que emite sinais sonoros e luminosos 3 vezes (3 chances de encostar no arame) antes que a sirene seja acionada.

## Software/materiais utilizados

### Materiais:

* Arduíno Uno
* Bateria de 9V
* 1 led verde de 5 mm
* 3 leds vermelhos de 5 mm
* Interruptor
* Relé 5V
* Sirene de 12V
* 2 bornes pretos para plug banana
* 1 born vermelho para plug banana
* 2 plugs banana pretos
* 1 plug banana vermelho
* 4 resistores de 330 ohms
* Adaptador de clip de bateria 9V para plug P4 macho
* Caixa de MDF
* Tinta preta
* Verniz
* Protoboard
* Jumpers variados
* Fio vermelho
* Arame

### Materiais auxiliares:

* Cola quente
* Solda
* Régua e esquadro
* Furadeira
* Chave de fenda
* Fita isolante
* Fita adesiva
* Tubo termo retrátil

## Metodologia

O labirinto elétrico é um projeto de física bastante comum em feiras de ciências. Um circuito elétrico é construído, com a corrente elétrica passando por um arame. Uma argola de metal também é ligada a este circuito, e quando a argola toca o arame, o circuito fecha, emitindo algum tipo de sinal. O objetivo é percorrer o labirinto feito de arame sem que a argola encoste nele.

Nesta versão, o projeto foi incrementado com o uso do Arduíno, que emite sinais sonoros e luminosos 3 vezes (3 chances de encostar no arame) antes que uma sirene seja acionada.

## Desenvolvimento

### Componentes, ligações e testes

O circuito e a placa são alimentados por uma bateria de 9 volts. O primeiro passo do projeto foi a instalação de um interruptor, para poder ligar ou desligar o circuito. O cabo negativo da bateria liga diretamente ao Arduíno, já o fio positivo foi soldado ao interruptor.

Para ajudar nas ligações do projeto, utilizamos uma Protoboard e também fizemos as identificações das cores da maioria dos fios, para identificar se são fios positivos ou negativos. Dessa maneira, fios azuis e pretos são fios negativos e fios laranjas, verdes, vermelhos e amarelos são fios de ligações positivas. Um fio azul sai do GND do Arduíno e é ligado à fileira negativa da Protoboard, onde serão conetados todos os componentes negativos.

Como não é possível saber se o interruptor está na posição ON ou OFF, um LED verde foi ligado à porta digital 2 do Arduíno, acendendo quando o interruptor está ligado. Esse LED possui um resistor de 330 ohm a fim de proteger a placa. O fio negativo do resistor se liga a fileira negativa da Protoboard.

Na porta 9, foi conectado um buzzer que emite um sinal a cada vez que o circuito se fecha. Esse pino é configurado como saída, sendo acionado na primeira vez em que a argola toca o arama do labirinto, e emite um sinal de velocidade 3000. Da segunda vez, a velocidade aumenta para 3500. E na terceira, o tom do buzzer fica bastante rápido, velocidade 4000.

Concomitantemente com o comportamento dos pinos, temos os 3 LEDs vermelhos, também ligados a resistores de 330 ohms, que estão inicialmente ligados. Um a um vão desligando, conforme a argola toca o arame. Isso seria o "contador de vidas" do jogador. Estes LEDs foram ligados nas portas 5, 6 e 7 do Arduíno.

Por último, foi feita a ligação da sirene. Como ela possui uma potência muito alta para ser ligada diretamente ao Arduíno, ela foi instalada de maneira a passar primeiro por um relé de 5 volts. O relé possui 3 conexões, uma positiva (VCC), uma negativa (GND) e uma conexão IN, que é ligada a porta 10 do Arduíno. O jumper da conexão positiva é ligada, através da Protoboard, ao 5 volts do Arduíno e o jumper da conexão negativa se conecta no polo negativo da Protoboard. Já da parte de trás do relé sai o cabo negativo que é ligado no negativo da sirene, e um outro cabo liga a segunda saída do relé no negativo geral da Protoboard.

Tudo isso foi feito sem que o labirinto em si estivesse montado, apenas para fins de teste. Abaixo, o teste do funcionamento do circuito:

### Montagem

Após tudo estar funcionando corretamente, foi a hora de montar os componentes dentro da caixa de MDF (anteriormente pintada de preto), além de instalar o arame/labirinto. Foram feitos 8 furos na caixa: 3 para os LEDs das "Vidas", 1 para o interruptor, 1 para o LED do interruptor, 2 para os bornes pretos (sendo que um dos bornes é conectado ao negativo geral da placa através de um jumper adaptado) e 1 para o borne vermelho (ligado na porta 3 do Arduíno). Foi necessário bastante cuidado para evitar que os componentes se tocassem.

Por fim, o arame foi instalado por cima da caixa, juntamente com a argolinha soldada ao fio vermelho.

Todos os componentes foram fixados na parte inferior da tampa da caixa utilizando-se cola quente ou fita isolante.

### Dificuldades Encontradas

* A primeira dificuldade encontrada foi em relação a solda dos cabos da bateria no interruptor. A primeira solda, de um dos lados do interruptor, não deu contato, tendo que ser refeita posteriormente no outro lado.
* Ligação dos LEDs vermelhos: primeiramente estávamos ligando os LEDs vermelhos utilizando o mesmo fio positivo da Protoboard, como mostra a figura 1. Fizemos vários testes com a programação, mas nenhuma conseguia controlar seu funcionamento corretamente - não estávamos conseguindo controlá-los um a um. Posteriormente, verificamos que para que eles funcionassem conforme esperado, era preciso que fossem ligados individualmente. Aí foi fácil acertar seu comportamento na programação.
* A solda do pino banana vermelho também não deu muito certo, então tivemos que esquentar o plástico para prender no fio.
* Conexão dos fios da sirene, que eram bem curtos e frágeis.
* Alarme da sirene muito alto
* A conexão do arame do labirinto nos fios banana ficou um pouco frágil.

### Código

```
// Led que controla se o arduino está ligado ou desligado
int PinLed = 2;

// Leds que controlam os indicativos das vidas
int PinVidaA = 5;
int PinVidaB = 6;
int PinVidaC = 7;

// Saída digital do labirinto
int pinoLabirinto = 3;

// Saída digital do buzzer
int pinoBuzzer = 9;

// Saída digital da sirene
int pinoSirene = 10;

// Contador para o Buzzer e Leds
int nivel = 0;

// Variáveis para controle do tempo
long int tempoAnterior = 0;
int deltaT = 200;

// Velocidade do Buzzer
int tomBuzzer = 3000;

int estadoBotao = LOW;

int estadoBuzzer = LOW;

void setup() {

 // Pinos de entrada:

  pinMode(pinoLabirinto, INPUT_PULLUP); //utilizamos o resistor interno pull-up do Arduino

 // Pinos de saída:

  pinMode(PinLed, OUTPUT);

  pinMode(pinoBuzzer, OUTPUT);

  pinMode(PinVidaA, OUTPUT);
  pinMode(PinVidaB, OUTPUT);
  pinMode(PinVidaC, OUTPUT);

  pinMode(pinoSirene, OUTPUT);

  digitalWrite(PinLed, 1);

  digitalWrite(PinVidaA, 1);
  digitalWrite(PinVidaB, 1);
  digitalWrite(PinVidaC, 1);

  digitalWrite(pinoSirene, HIGH); //noTone(pinoSirene);

  Serial.begin(9600);
}

void loop() {

  estadoBotao = digitalRead(pinoLabirinto);

  if (estadoBotao == LOW) {
    delay(50);

    estadoBotao = digitalRead(pinoLabirinto);

    while (!digitalRead(pinoLabirinto)) {
      delay(1);
    }

    if (estadoBotao == LOW) {
      nivel = nivel + 1;
    }
  }

  if (nivel == 2) {
    deltaT = 100;

    tomBuzzer = 3500;
    digitalWrite(PinVidaB, 0);
  }

  if (nivel == 3) {
    deltaT = 50;

    tomBuzzer = 4000;
    digitalWrite(PinVidaC, 0);
  }

  if (nivel == 4) {
    noTone(pinoBuzzer);//digitalWrite(pinoBuzzer, LOW);

    while (1) {
      digitalWrite(pinoSirene, LOW); //tone(pinoSirene, 4000);
    }

  }

  if (((millis() - tempoAnterior) > deltaT) && (nivel >= 1)) {

    if (estadoBuzzer) {
      // liga buzzer e apaga primeira luz
      tone(pinoBuzzer, tomBuzzer);
      digitalWrite(PinVidaA, 0);
    }

    else {
      noTone(pinoBuzzer);
    }

    estadoBuzzer = !estadoBuzzer;

    tempoAnterior = millis();

  }

}

```

## Resultados

Após tudo montado, o labirinto funcionou conforme esperado.

Como mencionado nas dificuldades, tivemos de arranjar uma maneira de prender melhor a sirene e as suas ligações elétricas. Além disso, foi necessário providenciar alguma coisa para abafar um pouco o som, já que é uma sirene de alarme de potência alta, e o som poderia incomodar. Dessa forma, com uma tampinha de produto de limpeza providenciamos um "abafador" para a sirene.

A Protoboard foi de extrema importância, tanto para a realização dos testes quanto para a conexão correta dos elementos, facilitando suas instalações e organização.

O labirinto em si é uma espécie de jogo, sendo bastante divertido para testar a coordenação motora e a paciência ao passar a argola por todo circuito sem encostar. Até o momento, ninguém conseguiu alcançar este feito.

## Conclusão

No geral, obtivemos sucesso na realização do projeto. O processo todo foi muito gratificante, pois pudemos aplicar aquilo que foi aprendido durante as aulas, mas com um pouco mais de complexidade, já que havia um maior número e variedade de componentes.

Além da programação em si, pudemos entender melhor sobre o funcionamento e como fazer as ligações elétricas. Também foi imprescindível realizar testes durante cada etapa, a fim de garantir que todos os componentes estavam operando conforme era previsto, o que com certeza ajudou a chegarmos em um resultado satisfatório.