El presente proyecto de investigación tiene como principal objetivo de diseñar un bastón electrónico inteligente que de alerta a la persona no vidente, indicando que hay un obstáculo alrededor mediante sensores ultrasonicos de tal forma que esta persona pueda esquivas o detenerse.
OBJETIVO GENERAL
Tiene como objetivo principal de realizar un prototipo que se adopte al bastón blanco para que le ayude a identificar los obstáculos que se encuentren.
OBJETIVO ESPECIFICO
- Diseñar y programar de acuerdo a las necesidades de la persona con discapacidad visual.
- Realizar las pruebas de funcionamiento de los sensores y las conexiones.
INTRODUCCIÓN
La persona no vidente tiene la dificultad de movilizarse, por ese motivo este proyecto tiene la finalidad de brindar facilidades de transitar por las calles. Esta herramienta le permitirá detectar los obstáculos como piedra, gradas, personas y otros obstáculos que se pueden presentar en el camino,.de esta forma le ayudara a identificar los obstáculos. El proyecto consiste en utilizar tres sensores ultrasonicos que pueda identificar ambos lados (izquierda, derecha) y hacia adelante, en tal sentido que los sensores puedan detectar los obstáculos que se presenten, a diferentes distancias.
DESARROLLO
Paso 4: Ahora, haga clic en "Iniciar conversión" y su archivo de audio se convertirá en formato de archivo .Wav. También se descargará una vez que se realice la conversión.
#include <TMRpcm.h>
#include <SPI.h>
#include <SD.h>
#define pinSD 4
TMRpcm musica1;
TMRpcm musica2;
TMRpcm musica3;
long disa,disb,disc;
long tiema,tiemb,tiemc;
int echoa=2;
int echob=7;
int echoc=5;
int triga=3;
int trigb=8;
int trigc=6;
int led1 = 12;
void setup( ){
musica1.speakerPin = 9; //Selecciona la salida de audio: pin 9 (UNO y nano) pines 5,6,11 o 46 (Mega)
musica1.quality(1); // Mejoramos la calidad de sonido (puede ser 0 o 1)
musica1.setVolume(5); // Se selecciona el volumen: valor entre 0 y 7. Solo funciona bien si la calidad del audio está a 1.
pinMode(echoa, INPUT);//entrada del pulso generado por el sensor ultrasónico
pinMode(echob, INPUT);//entrada del pulso generado por el sensor ultrasónico
pinMode(echoc, INPUT);//entrada del pulso generado por el sensor ultrasónico
pinMode(triga, OUTPUT); //salida del pulso generado por el sensor ultrasónico
pinMode(trigb, OUTPUT); //salida del pulso generado por el sensor ultrasónico
pinMode(trigc, OUTPUT); //salida del pulso generado por el sensor ultrasónico
pinMode(led1, OUTPUT);//alarma de la distancia(encenderá el led)
Serial.begin(9600);
///////////////////////////////////////
if (!SD.begin(pinSD)) { // Comprueba si la tarjeta SD se ha inicializado correctamente
Serial.println("Fallo de la tarjeta SD, revisa las conexiones papu :v");
return; // Si la tarjeta SD falla, el programa termina
}
else{
Serial.println("SD inicializada correctamente!");
}
//////////////////////////////////////
}
void loop(){
///////////////////////////////////////////SENSOR A
digitalWrite(triga,LOW);//recibimiento del pulso.
delayMicroseconds(2);
digitalWrite(triga,HIGH);//envió del pulso.
delayMicroseconds(10);
tiema=pulseIn(echoa, HIGH);//fórmula para medir el pulso entrante.
disa= long(0.017*tiema);//fórmula para calcular la distancia del sensor ultrasónico.
Serial.println("LA DISTANCIA MEDIDA ES A:");
Serial.println(disa);
//////////////////////////////////////// SENSOR B
digitalWrite(trigb,LOW);//recibimiento del pulso.
delayMicroseconds(2);
digitalWrite(trigb,HIGH);//envió del pulso.
delayMicroseconds(10);
tiemb=pulseIn(echob, HIGH);//fórmula para medir el pulso entrante.
disb= long(0.017*tiemb);//fórmula para calcular la distancia del sensor ultrasónico.
Serial.println("LA DISTANCIA ES B:");
Serial.println(disb);
//////////////////////////////////////// SENSOR C
digitalWrite(trigc,LOW);//recibimiento del pulso.
delayMicroseconds(2);
digitalWrite(trigc,HIGH);//envió del pulso.
delayMicroseconds(10);
tiemc=pulseIn(echoc, HIGH);//fórmula para medir el pulso entrante.
disc= long(0.017*tiemc);//fórmula para calcular la distancia del sensor ultrasónico.
Serial.println("LA DISTANCIA MEDIDA ES C:");
/////////////////////////////////////////////////////////0
if(disa<15){ //comparativo para la alarma se ingresa la distancia en la que encenderá o apagara.
musica1.play("1.wav"); Serial.println("Canción 1");
delay(1000);
}
if(disb<15){ //comparativo para la alarma se ingresa la distancia en la que encenderá o apagara.
musica1.play("3.wav"); Serial.println("Canción 2");
delay(1000);
}
if(disc<15){ //comparativo para la alarma se ingresa la distancia en la que encenderá o apagara.
musica1.play("2.wav"); Serial.println("Canción 3");
delay(1000);
}
}
Espero que hayas disfrutado el proyecto. Ahora depende de tu creatividad.
Cómo funciona el sensor ultrasónico con arduino??
Para medir distancias con Arduino podemos hacerlo de diferentes maneras. Existen el sensor de infrarrojos, que utilizan las propiedades de la luz para calcular la distancia, y el sensor ultrasónico Arduino utiliza las propiedades de propagación del sonido para medir distancias. Más concreto utiliza los ultrasonidos. Este tipo de ondas sonoras se encuentran por encima del espectro audible por los seres humanos.

El funcionamiento es muy sencillo. El sensor envía una onda ultrasónica a través del disparador o trigger, revota contra el objeto y el receptor o echo detecta la onda. Sabiendo cuánto ha tardado en viajar dicha onda, podemos saber la distancia.
Solo hace falta utilizar la famosa fórmula de la velocidad que aprendimos en el colegio.
Donde s es el espacio y t es el tiempo. Si despejamos es espacio que es lo que necesitamos saber, nos quedaría de la siguiente manera.
La velocidad es conocida, el sonido viaja a 343 metros por segundo. El tiempo nos lo devolverá el propio sensor ultrasónico Arduino a través de la API de Arduino. Con todo esto ya podemos calcular a qué distancia se encuentra un objeto.
Por lo tanto, es importante conocer las frecuencias del espectro audible. No vamos a ver una masterclass sobre este tipo de señales, solo debemos quedarnos con el rango de frecuencias va de 20 Hz (hercios) a 20 kHz (kilohercio).

Preparándose con sus archivos de audio WAV:
Para reproducir sonidos desde la tarjeta SD
usando Arduino, necesitamos archivos de audio en formato .wav porque la placa
Arduino puede reproducir un archivo de audio en un formato específico que es
formato wav. Para hacer un reproductor mp3 Arduino, hay muchos escudos mp3
disponibles que puedes usar con Arduino. O bien, para reproducir archivos mp3
en Arduino, hay sitios web que pueden usarse para convertir cualquier archivo
de audio en su computadora en ese archivo WAV específico.
Paso 2: Arduino puede
reproducir un archivo wav en el siguiente formato. Puede jugar con la
configuración más tarde, pero estos ajustes fueron experimentales para ser de
la mejor calidad.
Resolución de bits
|
8 Bit
|
Tasa de muestreo
|
16000 Hz
|
Canal de audio
|
Mono
|
Formato PCM
|
Paso 3: en el sitio
web, haga clic en "elegir archivo" y seleccione el archivo que desea
convertir. Luego ingrese la configuración anterior. Una vez hecho, debería
verse algo como esto en la imagen de abajo.
Paso 4: Ahora, haga clic en "Iniciar conversión" y su archivo de audio se convertirá en formato de archivo .Wav. También se descargará una vez que se realice la conversión.
Paso 5:
Finalmente, formatee su tarjeta SD y guarde su archivo de audio .wav en ella.
Asegúrese de formatearlo antes de agregar este archivo. También recuerda el
nombre de tu archivo de audio. De manera similar, puede seleccionar cualquiera
de sus cuatro audios y guardarlos con los nombres 1, 2 y 3 (los nombres no
se deben cambiar). He convertido cuatro canciones y las he guardado como 1.wav,
2.wav y 3.wav, como se muestra a continuación.
DISEÑO DE CIRCUITO
MATERIALES
Nro
|
MATERIALES
|
CANTIDAD
|
1
|
Arduino Uno
|
1
|
2
|
Modulo tarjeta micro SD
|
1
|
3
|
Sensor ultrasonico
|
3
|
4
|
Cables Jumper (macho -hembra) y (macho-macho)
|
12 y 6
|
5
|
Protoboard
|
1
|
6
|
Rueda loca
|
1
|
7
|
conector Jack (hembra)
|
1
|
8
|
Audífono
|
1
|
DISEÑO DE CIRCUITO
ENSAMBLADO
Una vez diseñado el circuito podemos cargar el programa en el plataforma arduino posteriormente se realiza el ensamblado en un cajón el circuito como se muestra en el imagen, la protección del circuito se puede realizar de diferentes materiales, incluso se puede mejorar utilizando la impresora 3D.
PROGRAMACION ARDUINO
Una vez que estamos listos con el
Hardware y la tarjeta SD, estamos a solo un paso tocando esas canciones.
Inserta la tarjeta en tu módulo de tarjeta SD y sigue los pasos a continuación.
Paso 1:
Como dije antes, utilizaremos una biblioteca para que este proyecto funcione.
El enlace para la biblioteca se da a continuación. Haga clic en él y seleccione
"Clonar o descargar" y elija descargar como ZIP.
DERCARGAR LIBRERIA TMRpcm library
Paso 2:
Agregue este archivo Zip a su IDE de Arduino seleccionando Programas-> Incluir Librería-> añadir librería ZIP-> busque donde se a descargado la carpeta "TMRpcm library" una vez seleccionado abrir,


Paso 3: El programa completo del proyecto de reproductor de
música arduino se proporciona al final de este artículo, simplemente cópielo y
péguelo en el Programa Arduino. Ahora, haga clic en Cargar y prepárese para
reproducir sus archivos de audio.
#include <TMRpcm.h>
#include <SPI.h>
#include <SD.h>
#define pinSD 4
TMRpcm musica1;
TMRpcm musica2;
TMRpcm musica3;
long disa,disb,disc;
long tiema,tiemb,tiemc;
int echoa=2;
int echob=7;
int echoc=5;
int triga=3;
int trigb=8;
int trigc=6;
int led1 = 12;
void setup( ){
musica1.speakerPin = 9; //Selecciona la salida de audio: pin 9 (UNO y nano) pines 5,6,11 o 46 (Mega)
musica1.quality(1); // Mejoramos la calidad de sonido (puede ser 0 o 1)
musica1.setVolume(5); // Se selecciona el volumen: valor entre 0 y 7. Solo funciona bien si la calidad del audio está a 1.
pinMode(echoa, INPUT);//entrada del pulso generado por el sensor ultrasónico
pinMode(echob, INPUT);//entrada del pulso generado por el sensor ultrasónico
pinMode(echoc, INPUT);//entrada del pulso generado por el sensor ultrasónico
pinMode(triga, OUTPUT); //salida del pulso generado por el sensor ultrasónico
pinMode(trigb, OUTPUT); //salida del pulso generado por el sensor ultrasónico
pinMode(trigc, OUTPUT); //salida del pulso generado por el sensor ultrasónico
pinMode(led1, OUTPUT);//alarma de la distancia(encenderá el led)
Serial.begin(9600);
///////////////////////////////////////
if (!SD.begin(pinSD)) { // Comprueba si la tarjeta SD se ha inicializado correctamente
Serial.println("Fallo de la tarjeta SD, revisa las conexiones papu :v");
return; // Si la tarjeta SD falla, el programa termina
}
else{
Serial.println("SD inicializada correctamente!");
}
//////////////////////////////////////
}
void loop(){
///////////////////////////////////////////SENSOR A
digitalWrite(triga,LOW);//recibimiento del pulso.
delayMicroseconds(2);
digitalWrite(triga,HIGH);//envió del pulso.
delayMicroseconds(10);
tiema=pulseIn(echoa, HIGH);//fórmula para medir el pulso entrante.
disa= long(0.017*tiema);//fórmula para calcular la distancia del sensor ultrasónico.
Serial.println("LA DISTANCIA MEDIDA ES A:");
Serial.println(disa);
//////////////////////////////////////// SENSOR B
digitalWrite(trigb,LOW);//recibimiento del pulso.
delayMicroseconds(2);
digitalWrite(trigb,HIGH);//envió del pulso.
delayMicroseconds(10);
tiemb=pulseIn(echob, HIGH);//fórmula para medir el pulso entrante.
disb= long(0.017*tiemb);//fórmula para calcular la distancia del sensor ultrasónico.
Serial.println("LA DISTANCIA ES B:");
Serial.println(disb);
//////////////////////////////////////// SENSOR C
digitalWrite(trigc,LOW);//recibimiento del pulso.
delayMicroseconds(2);
digitalWrite(trigc,HIGH);//envió del pulso.
delayMicroseconds(10);
tiemc=pulseIn(echoc, HIGH);//fórmula para medir el pulso entrante.
disc= long(0.017*tiemc);//fórmula para calcular la distancia del sensor ultrasónico.
Serial.println("LA DISTANCIA MEDIDA ES C:");
/////////////////////////////////////////////////////////0
if(disa<15){ //comparativo para la alarma se ingresa la distancia en la que encenderá o apagara.
musica1.play("1.wav"); Serial.println("Canción 1");
delay(1000);
}
if(disb<15){ //comparativo para la alarma se ingresa la distancia en la que encenderá o apagara.
musica1.play("3.wav"); Serial.println("Canción 2");
delay(1000);
}
if(disc<15){ //comparativo para la alarma se ingresa la distancia en la que encenderá o apagara.
musica1.play("2.wav"); Serial.println("Canción 3");
delay(1000);
}
}
Espero que hayas disfrutado el proyecto. Ahora depende de tu creatividad.












0 comments:
Publicar un comentario