Arduino, Internet das Coisas e Computação vestível

Você está em » Home : Projetos diversos

[Voltar]

[Avançar]

3.6. Bengala para cegos


Projeto bengala para cego

Este projeto utiliza Módulo Sensor Ultrassônico HC-SR04, placa Arduino Uno R3 e Módulo Buzzer Ativo KY-012. Através do Sensor Ultrassônico é obtida a distancia que separa o sujeito dos obstáculos a frente. Conforme a aproximação é emitido um sinal sonoro mais frequente e intenso.

/* 
Projeto: Bengala para cegos 
Autor: André Silveira
Data: 02/04/2019 
*/

#include "Ultrasonic.h"

int PINO_TRIG = 5;
int PINO_ECHO = 6;
int PINO_BUZZER = 10;
int distancia;

Ultrasonic ultrasonic(PINO_TRIG, PINO_ECHO);

void setup() {
     Serial.begin(9600);
     pinMode(PINO_BUZZER,OUTPUT);    // Pino do buzzer
}

void loop() {

    distancia = ultrasonic.read();           // Informe INC para obter distancia em polegadas
    Serial.print("Distância em CM: ");
    Serial.println(distancia);
    
    // Distância menor que 1 metro
    if (distancia <= 100) {    
        tone(PINO_BUZZER,262,300);
        delay(1000);                             // Pausa pelo tempo de 1 segundo (milissegundos)
    }
    
    // Distância maior que 1 metro e menor que 2 metros
    if (distancia > 100 and distancia <= 200 ) {    
        tone(PINO_BUZZER,262,300);
        delay(2000);                             // Pausa pelo tempo de 2 segundos (milissegundos)
    }
    
    // Distância maior que 2 metros
    if (distancia > 200 ) {    
        tone(PINO_BUZZER,262,300);
        delay(3000);                             // Pausa pelo tempo de 3 segundos (milissegundos)
    }    
    Serial.println(distancia);   

}



Na versão abaixo, a biblioteca "Ultrasonic.h" não é utilizada. O circuito utiliza Módulo Sensor Ultrassônico HC-SR04, placa Arduino Uno R3, Módulo Buzzer Ativo KY-012 e LED RGB. Através do Sensor Ultrassônico é obtida a distancia que separa o sujeito dos obstáculos a frente. Conforme a aproximação ao sensor é emitido um sinal sonoro mais frequente e intenso. Também é alterada a cor do LED.

/* 
Projeto: Bengala para cegos 
Autor: André Silveira
Data: 02/04/2019 
*/

int PINO_TRIG = 6;
int PINO_ECHO = 5;
int PINO_BUZZER = 3; 
int LED_RED = 11;
int LED_BLUE = 10;
int LED_GREEN = 9;
float distancia;

void setup() {
    Serial.begin(9600);  
    pinMode(PINO_TRIG , OUTPUT);
    pinMode(PINO_ECHO , INPUT);
    pinMode(PINO_BUZZER,OUTPUT);   
    pinMode(LED_RED, OUTPUT);
    pinMode(LED_BLUE, OUTPUT);
    pinMode(LED_GREEN, OUTPUT);  
    ligaled(0, 0, 0);
}

void loop() {

    distancia = Ultrasonic(PINO_TRIG, PINO_ECHO);      
  
    Serial.print("Distancia em cm: ");
    Serial.println (distancia);   
  
    // -- Distância menor que 1 metro

    if (distancia <= 100) {    
        tone(PINO_BUZZER,330,300);  
        ligaled(255, 0, 0);      
        delay(10);      
    } else {
 
          // -- Distância maior que 1 metro e menor que 2 metros

           if (distancia <= 200 ) {    
               tone(PINO_BUZZER,330,300);   
               ligaled(255, 255, 0);
               delay(250);      
           } else { 

                  // -- Distância maior que 2 metros e menor que 3 metros

                  if (distancia <= 300 ) {    
                      tone(PINO_BUZZER,330,300); 
                      ligaled(0, 0, 255);
                      delay(500);      
                  } else{
                          ligaled(0, 0, 0);
                          }
           	  }
           }            
}

float Ultrasonic (int PINO_TRIG, int PINO_ECHO) {

      int distancia=0;
      while(distancia == 0) {
            digitalWrite(PINO_TRIG, 0);
            delayMicroseconds (5);          
            digitalWrite(PINO_TRIG, 1);
            delayMicroseconds(10); 
            float tempo = pulseIn (PINO_ECHO, 1);               
            distancia = (tempo/2/29.15);
      }
      return distancia;
}

int ligaled(int r, int g, int b) {   
 
    analogWrite(LED_RED, r);  
    analogWrite(LED_GREEN, g);  
    analogWrite(LED_BLUE, b);  

}

 

[Voltar]

[Avançar]