19-2 Grupo 4

## **Autores**

Thayná Daderio da Silva

Sabatiny Gabriel Stopa

Nicolas Viotto Alcantara

Rafael Cabral Lee

Augusto Almeida Gonçalves Cerveira

## **Resumo**

Uma lixeira automática que abre com detecção de movimento e informa se estiver cheia

## **Software/materiais utilizados**

Segue abaixo a lista de materiais utilizados na construção da lixeira

**Principais Materiais:**

* 1 - Arduino Uno

* 1 - BreadBoard

* 1 - SG90 Micro-servo motor

* 2 - Ultrasonic Sensor HC-SR04

* 3 - 5mm LED (Recomendação: Vermelho, Amarelo e Verde)

* 3 - Resistor 220 Ohm

    **Variados:**

* Lixeira de Plástico
* Régua
* Estilete
* Cola Quente
* Cabo USB
* Jumpers
* Carregador de celular

**Software:**

* IDE do arduino
* Bibliotecas: Servo.h e Utrasonic.h (link para download: https://portal.vidadesilicio.com.br/hc-sr04-sensor-ultrassonico/)
* Classes desenvolvidas para este projeto

## **Metodologia**

A lixeira utiliza dois sensores de distância ultrassônicos para finalidades diferentes, um é colocado na parte externa para poder detectar o movimento próximo a ela, quando o pulso emitido pelo sensor atingir um objeto, irá acionar o servo motor para abrir a tampa da lixeira. O outro é colocado na parte interna para detectar a quantidade de lixo dentro da lixeira, dependendo da distância entre o lixo e o sensor, irá ativar uma saída digital que acionará um dos LED's (Verde = Vazia, Amarelo = Meio cheia, Vermelho = Cheia).

## **Desenvolvimento**

A primeira etapa era preparar a lixeira para a implementação dos componentes. Então com o auxílio de uma solda, fizemos três furos menores para colocar os LEDs, dois furos maiores para encaixar o Ultrasonic Sensor HC-SR04 e uma abertura retangular na parte de trás da lixeira (Figura 1 e 2) para passagem dos fios (jumpers). Então encaixamos os componentes nos furos (Figura 3) e atrás deles colocamos fita para se manterem firmes.

###

Depois preparamos a tampa da lixeira para a abertura automatizada. Para isso, colocamos o SG90 Micro-servo motor na parte interna da tampa. o revestimos com fita para protege-lo, então o colamos com cola quente e passamos fita por cima para ficar firme (Figura 4). Na haste do servo prendemos um pedaço de barbante com fita adesiva, então fizemos um furo na tampa utilizando a solda e passamos o barbante por ele e fizemos um nó (Figura 4 e 5). A seguir, fizemos uma abertura com a solda na lateral da tampa, para a haste do servo poder rodar livremente sem bater na tampa (Figura 6).

###

Em seguida, colocamos o outro Ultrasonic Sensor HC-SR04 com o suporte de madeira (disponibilizado pelo professor) na parte interna da lixeira, virado para baixo (Figura 7) e o prendemos com fita adesiva. Após isso, colocamos os fios nos componentes e os passamos pela abertura retangular, então os conectamos no Arduíno Uno (Figura 8) de acordo com o circuito feito antecipadamente (Figura 9).

###

**Circuito**

###

**Programação**

Para esse programa iremos utilizar a biblioteca Ultrasonic.h para o funcionamento dos Ultrasonic Sensor HC-SR04, então será necessário a instalar no IDE do Arduíno (Link do dowload e tutorial: https://portal.vidadesilicio.com.br/hc-sr04-sensor-ultrassonico/). Depois de aplicar o código no arduino, conectamos o cabo USB em um carregador de celular (de 5V) para fazer a lixeira funcionar.

***Código:***

#include <Ultrasonic.h> // Insere a biblioteca do Ultrasonic Sensor

#include <Servo.h> // insere a biblioteca do Servo

#define SERVO 5 // Define o pino do Servo

Servo s;

int pos;

Ultrasonic ultrasonic(7,6); // Define o nome do sensor (ultrassonic) e onde esta ligado o trig(7) e o echo(6) respectivamente

Ultrasonic ultrasonic2(3,2); // Define o nome do sensor 2 (ultrassonic2) e onde esta ligado o trig(3) e o echo(2) respectivamente

void setup() // Esta função "setup" roda uma vez quando a placa e ligada ou resetada

{

  Serial.begin(9600); // Habilita Comunicação Serial a uma taxa de 9600 bauds

  pinMode(8, OUTPUT); // Configura o pino digital 8 como saída

  pinMode(9, OUTPUT); // Configura o pino digital 9 como saída

  pinMode(10, OUTPUT); // Configura o pino digital 10 como saída

  s.attach(SERVO);

  s.write(0);

}

void loop() // Função que se repete infinitamente quando a placa é ligada

{

  long microsec = ultrasonic.Ranging(CM); // Retorna a distancia em centímetros(CM)

  if(microsec<30) // Definindo a distância

  {

  s.write(180); // Define o ângulo que o servo ira girar

    delay(1500); // Espera 1,5 segundos

    s.write(0); // Define o ângulo que o servo ira retornar

    delay(1500); // Espera 1,5 segundos

  }

  delay(10); // Um pequeno atraso para melhorar o desempenho das simulações

  long microsec2 = ultrasonic2.Ranging(CM); // Retorna a distancia em centímetros(CM)

    if (microsec2 < 8) // Definindo a distância

    {

      digitalWrite(10, HIGH); // ativa o pino digital 10

      digitalWrite(9, LOW);

      digitalWrite(8, LOW);

    }

  else

  {

    if (microsec2 < 12) // Definindo a distância

    {

      digitalWrite(10, LOW);

      digitalWrite(9, HIGH); // ativa o pino digital 9

      digitalWrite(8, LOW);

    }

    else

    {

      digitalWrite(10, LOW);

      digitalWrite(9, LOW);

      digitalWrite(8, HIGH); // ativa o pino digital 8

    }

  }

  delay(10); // Um pequeno atraso para melhorar o desempenho das simulações

}

**Problemas Encontrados:**

**1)** **Abertura automática da tampa:** Essa foi uma das partes mais trabalhosas do projeto, precisamos realizar vários testes colocando o Servo em posições diferentes e testando variados fios. Para nos ajudar também vimos alguns vídeos de projetos semelhantes, por fim colocamos o Servo inclinado com sua haste para cima (posição que teve a melhor abertura) e utilizamos um barbante grosso par puxar a tampa (material que teve mais força para puxar). Além disso, a haste do sevo encostava na lixeira ao girar e perdia sua força, então precisamos fazer uma abertura com a solda.

## **Resultados**

Após alguns testes realizados com a lixeira, ela funcionou conforme planejado, tendo apenas uma pequena inconsistência no Ultrasonic Sensor que detecta o nível do lixo, pois como o lixo não é uniforme ele não detecta com tanta clareza e os LED's se alternam um pouco entre si. Apesar disso, ficamos satisfeitos com o resultado Segue a baixo o vídeo da lixeira:

## **Conclusão**

O projeto foi concluído com êxito e seu funcionamento atingiu nossas expectativas, apesar de algumas dificuldades em seu desenvolvimento foi possível as solucionar trabalhando em equipe.

Sendo assim, a realização desse projeto promoveu um maior entendimento e aperfeiçoamento da matéria de Laboratório de Programação, sendo possível usufruir desses conhecimentos futuramente, podendo os aplicar em projetos da faculdade ou até mesmo no mercado de trabalho.

Desta forma, essa experiência foi de suma importância para nosso aprendizado.