Descrição:

O projeto tem a intenção de apoiar a locomoção dos deficientes visuais, servindo como apoio a bengala tradicional que normalmente é usada, nossa ideia é oferecer uma cobertura na altura da cintura para esse usuário, sendo que o projeto visa detectar objetos que estarão dentro dessa altura e em todas as direções em que o usuário girar e ainda a distância de detecção poderá ser controlada com o giro de um botão (potenciômetro).

Pensando em reduzir o custo para o projeto e na reciclagem do possível lixo tecnológico, reaproveitamos a carcaça de um modem para servir de case, a presilha que é usada para prender o aparelho no cinto ou na calça foi feita com um prendedor de fios de monitor e no uso de um Motorzinho de vibracall de celular (OPCIONAL).


Componentes/Materiais Utilizados:

1 Buzzer e/ou Speaker (pode reciclar);

1 Sensor Ultrasônico HC-SR04;

1 Potenciômetro de 10k ou qualquer outro  (pode reciclar);

1 Motorzinho de vibracall de celular (OPCIONAL e pode reciclar);

1 Arduino Uno (pode ser usado qualquer modelo);

1 PowerBank e/ou Suporte de Pilhas + Pilhas recarregáveis;

Cola quente, ferro de solda, pedaços de fio, estilete.


Utilização:

O usuário deverá prender o aparelho, na parte de frente do cinto ou da calça e a partir do momento que a energia for conectada o Sensor Ultrasônico passará a emitir sinais e fará leitura da distância definida pela regulagem do potenciômetro, que pode ir de 10cm à 200cm (2 metros) e ao detectar objetos no caminho o mesmo irá apitar (ou vibrar OPCIONAL), cada vez mais rápido indicando a presença de obstáculos e assim o usuário poderá se desviar do mesmo.


Observação:

A ideia de adicionar, opcionalmente, o Motorzinho de vibracall de celular é para que quando o usuário estiver em um lugar com muito barulho, o mesmo possa ser alertado, também com a vibração do aparelho ao detectar obstáculo. 


Link para apresentação rápida do projeto


Código Fonte para o Arduino:

/* SADEVI - Sistema de Auxílio ao Deficiente Visual

Sergio Graças - sergiogracas@yahoo.com.br*/


#include

Ultrasonic ultrasonic(13,12);


const int pot = A0;

const int chatinho = 9;


void setup(){

 pinMode(chatinho,OUTPUT);

 pinMode(pot, INPUT);

 Serial.begin(9600);

}


void loop(){

// Variaveis para Centimetros e Polegadas

float cmMsec, inMsec;

// Variável para microsegundos  

long microsec = ultrasonic.timing();

// Variável para o valor do potenciômetro

int distancia = analogRead(pot);

// Mapeando os valores do potenciometro, que pode ir de 10cm a 200cm (2 metros)

distancia = map(distancia, 0, 1020, 10, 200);

 

// Convertendo em centimetros

cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);

// Conertendo em polegadas

inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);


// Aqui vamos usar a variável distancia para informar a sensibilidade ou distância

// em que o sensor vai funcionar, isso pode ir de 10cm a 200cm (2 metros), via pot

if (cmMsec < distancia) {

// Acionando a campanhia (chatinho)

tone(chatinho, 1500);

//exibir polegadas no Monitor Serial

Serial.print("Polegadas: ");

Serial.print(inMsec);

//exibir centimetros no Monitor Serial

Serial.print(" - Centimetros: ");

Serial.println(cmMsec);

// Espera 100ms para próxima leitura

delay(100);

///

// Pega centimetros e multiplica por 5, gerando delays aleatórios

delay(cmMsec*5);

}

// Desliga a campanhia (chatinho)

noTone(chatinho);

//exibir polegadas no Monitor Serial

Serial.print("Polegadas: ");

Serial.print(inMsec);

//exibir centimetros no Monitor Serial

Serial.print(" - Centimetros: ");

Serial.println(cmMsec);

// Espera 100ms para próxima leitura

delay(100); 

}



Atividades recentes