Introdução:
 Segundo os dados do censo demográfico do Instituto Brasileiro de Geografia e Estatística (IBGE), 18,6% da população brasileira possui algum tipo de deficiência visual. Para a deficiência envolvida utiliza-se a bengala para tatear o terreno, entretanto objetos acima não são identificados pelos mesmos.

Objetivos:
 O projeto criado com Arduíno, sensor ultrassônico e um spiker tem como finalidade ajudar os deficientes visuais no dia a dia em casos de acidentes com objetos acima do solo.

A ideia:
 Utilizando a bengala e um sensor ultrassonico e um bipe direto no ouvido a cada momento que encontrar um obstáculo para auxiliá-lo a desviar.


Código:

const int buzzer=10;//Pin
int ledvermelha=0;
int ledamarela=0;
int ledverde=0;//LED's
int rodaNeg=5;
int rodaPosi=6;
int rodaNeg2=4;
int rodaPosi2=3;//Existem duas rodas,e cada roda negativo e positivo 
const int trigPin = 12;
const int echoPin = 13;//Echo e trig para o sensor
long duration;
float distance;//Distancia calculo
int valorEsquerda=0;
int valorDireita=0;//Para salvar as distancias e definir a melhor
  void setup() {
    pinMode(rodaNeg,OUTPUT);
    pinMode(rodaPosi,OUTPUT);
    pinMode(rodaNeg2,OUTPUT);
    pinMode(rodaPosi2,OUTPUT);
    pinMode(trigPin, OUTPUT); 
    pinMode(echoPin, INPUT);
    Serial.begin(9600);
    pinMode(buzzer,OUTPUT);
    }
  void beep(){
        tone(buzzer,1500);
        delay (100);
        noTone(buzzer);
  }

  void frente(){
    digitalWrite (rodaNeg,HIGH);
    digitalWrite (rodaPosi,LOW);
    digitalWrite (rodaNeg2,HIGH);
    digitalWrite (rodaPosi2,LOW);  
    }//Roda para frente
  void esquerda(){
    digitalWrite (rodaNeg,LOW);
    digitalWrite (rodaPosi,LOW);
    digitalWrite (rodaNeg2,HIGH);
    digitalWrite (rodaPosi2,LOW);  
    }//Pausa a roda da esquerda e liga a da direita
  void direita(){
    digitalWrite (rodaNeg,HIGH);
    digitalWrite (rodaPosi,LOW);
    digitalWrite (rodaNeg2,LOW);
    digitalWrite (rodaPosi2,LOW);  
    }//Pausa a roda da direita e liga a da esquerda
  void re(){
    digitalWrite (rodaNeg,LOW);
    digitalWrite (rodaPosi,HIGH);
    digitalWrite (rodaNeg2,LOW);
    digitalWrite (rodaPosi2,HIGH);  
    }//Faz a roda, rodar no sentido contrario
  


  void loop(){
  
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2); 
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distance= duration*0.034/2;
    Serial.print("Distance: ");
    Serial.println(distance);//Algoritmo para trazer a distancia para o código

        
     if (distance>=60){
            frente();
            }
     if (distance<=60){
        beep();         
        direita();
        delay(500);
                    
        }
               
        }
     
        
        
  

 
          

Atividades recentes