Sommario:

Guante Traductor De Lengua De Signos: 6 Passi
Guante Traductor De Lengua De Signos: 6 Passi

Video: Guante Traductor De Lengua De Signos: 6 Passi

Video: Guante Traductor De Lengua De Signos: 6 Passi
Video: CUANDO Salga GTA 6 | #shorts 2024, Luglio
Anonim
Guante Traductor De Lengua De Signos
Guante Traductor De Lengua De Signos

¿Y si te dijera que ahora es posible hablar sin abrir la boca?La vida de una persona sordomuda no es sencilla, no todo el mundo conoce la lengua de signos y es complicada la convivencia sin un traductor. ¡El traductor que proponemos nosotros está al alcance de tu mano! Con pochi materiali algo de código puedes construir un guante que traduzca la lengua de signos por un altavoz o una pantalla para que la convivencia se haga un poco más amena. El proyecto que proponemos únicamente sirve para el abecedario, pero te animamos a que lo continua para conseguir traducir palabras y así entre todos podamos hacer un producto que pueda ser realmente para todo el mundo. I materiali che vamos a utilizar son:

  • Una garanzia. Nosotros hemos utilizado uno que tenga la opción de escribir en pantallas táctiles para que el día a día sea algo más ameno.
  • 6 accelerometri. Elegimos los MPU6050 por ser los más fáciles de encontrar en el mercado, per davvero te vale cualquier otro que encuentres.
  • Un microprocessore. El SP32 Heltec nos ha servido por tener pantalla incorporada. Además, se puede programar en el IDE de Arduino, el más popolare en stos tiempos que corren.
  • Un altavoz de 8 ohmios de resistencia interna para aprovechar al máximo la potencia.
  • Un modulo per tarjetas SD. Ottenere l'audio de cada símbolo que guardemos. Hemos utilizado el DFPlayer mini MP3 per la facilità d'uso.
  • Bateria. Una batteria di litio de 9000mAh será suficiente para nuestro proyecto, no ocupa mucho y permite una vida larga al proyecto. Si añadimos un switch podemos encender y apagar el device cuando queramos.
  • Cavo. Aunque parezca una tontería, siempre es el elemento que se nos olvida al empezar un proyecto y es de lo más elemental. Consigliamo cable fino y hay que tener en cuenta que cada acelerómetro usa 5 cable. No os preocupéis, es realmente barato.

  • Una placa de inserimento. Nos sirve con 4 columnas cortocircuitadas por 8 pines cada una, lo que es bastante pequeña para no notarsen en el guante. Es opcional, pero nos hace la vida realmente más fácil.
  • Soldador y estaño para unirlo todo.
  • Hilo y aguja per coser nuovi sensori al guante.

También va a ser necesario un poco de código, pero eso os lo ofrecemos nosotros, como regalo, al final del proyecto.

Como veis son todo materials baratos and fáciles de seguir, ¡este proyecto está alcance de todo el mundo!Lo hemos hecho así per che cualquiera se lo pueda costruire e poder hacer el mundo un sito più come modo para todos.

Passaggio 1: Comprobar Que Los Acelerómetros Funcionan

Comprobar Que Los Acelerómetros Funcionan
Comprobar Que Los Acelerómetros Funcionan
Comprobar Que Los Acelerómetros Funcionan
Comprobar Que Los Acelerómetros Funcionan

Siempre es importante comprobar que el material que estamos usando funciona, por eso de tener claro que las cosas funcionan antes de que haya que empezar de nuevo el proyecto. Lo primero que haremos será soldar los cable al sensor de la siguiente manera:

Immagine
Immagine

Podemos probar los sensors sin soldar primero, pero nos arriesgamos a muchos fallos debidos a malas conexiones. L'altro extremo de los cable valdrá con conectarlos a una protoboard para poder conectarlos y desconectarlos con facilidad. Conectaremos los cable con il microcontrolador de la forma que VCC se conecte a 5V y GND con GND, SCL con el pin 21, SDA con el pin 22 (es recomendable buscarse un mapa de pines de la placa que estamos usando y asegurarse de que dichos pines nombrados se corrisponden a los que nos interesan) y AD0 a cualquiera de los pines digitales. En el caso de la placa SP32 Heltec hay que tener cuidado con no utilizar los pines 4, 15 e 16, que son los que utiliza para la pantalla. Si utilizamos uno de estos, quizás no podamos usarla en nuestro proyecto. Aunque os recomendamos comprobar con el modelo que usáis por si acaso non coincide, el esquema de pines de nuestra placa es el siguiente:

Immagine
Immagine

Utilizza il protocollo I2C per comunicare con tutti i sensori, per poter utilizzare la libreria abiertas que hay en internet per utilizzare il protocollo este e son davvero sencillas de usar. github.com/tfeldmann/5411375 Copiamos el código. Nos ayudará a identificar las direcciones en las que estamos leyendo. Questo dispositivo viene per difetto con la direzione 168, pero si pone a nivel alto el pin AD0 de nuestro sensor podemos cambiar la direzione a la 169. Hay que comprobar que se activan las dos direzionale.

Scarica el zip y en el IDE de Arduino vamos a Programa > Incluir Librería > Añadir librería Zip. Con questo puoi tenere la libreria per gestire lo MPU, pero se non hai incluso un programma di esempio per leggere i sensori. Para acceder a él, podemos ir a Abrir > Ejemplos > MPU6050 > MPU6050_raw.ino. Al abrir el monitor serial cambiamos los baudios a 38400 y al cargarse el programa deberíamos obtener la lectura de los seis parámetros que nos ofrece el sensor: tres de la aceleración relativa y otros tres de la aceleración de la gravedad. Estos últimos son los que usaremos para comprobar la posición de cada giróscopo, pero lo veremos en un paso posterior.

Fase 2: Leer De Todos Los Acelerómetros Al Mismo Tiempo

Leer De Todos Los Acelerómetros Al Mismo Tiempo
Leer De Todos Los Acelerómetros Al Mismo Tiempo
Leer De Todos Los Acelerómetros Al Mismo Tiempo
Leer De Todos Los Acelerómetros Al Mismo Tiempo
Leer De Todos Los Acelerómetros Al Mismo Tiempo
Leer De Todos Los Acelerómetros Al Mismo Tiempo

Una vez comprobado que cada sensor nos funciona por separado, hay que comprobar que nos funcionan todos al mismo tiempo. Para esto habrá que conectarlos con nuestra placa de inserción, cortocircuitando todos los pines de alimentación (VCC), masa (GND),s (SDA) e reloj (SCL). Los pines AD0 los conectaremos a pines digitales diferentes per poder decidir cuál activamos en cada moment. Es importante mirar cuáles son los pines que utiliza la placa que estamos utilizando para comunicarse con la pantalla, como ya hemos dicho, ya que si utilizamos alguno de estos pines no nos funcionará. Debería quedar de una forma parecida al siguiente esquema (click para ampliar):

Immagine
Immagine

Parece una maraña di cavi, pero podemos ver que todos los cable del mismo color están cortocircuitados y llevados a su pin corrispondente, menos de AD0, che se conecta direttamente a la placa. El código para poder utilizarlo es una modifica del que hemos utilizado antes para leer los datos de cada uno de los sensori. Hemos calculado que tardamos 2ms en leer cada sensor, por lo que cada 4ms (para dar un margen de seguridad) cambiaremos de sensor que leemos poniendo a nivel alto el pin AD0 del sensor de lectura y el resto a nivel bajo, leyendo así de la direzione per difetto. De todas formas el código completo lo agevolimos en un próximo apartado y se podrán ver todos estos detalles. En este punto del progetto debemos estructurar bien la posición de cada sensor en el guante, de la placa de inserción y del microcontrolador, porque el siguiente paso es soldarlo todo y coserlo al guante. Es muy importante pensar en las tensions que van a recibir los cable cuando la mano está cerrada, ya que tienden a romperse con tremenda facilidad si no cuidamos este detalle. È preferibile que sobre cable y quede algo feo que tener que llevar un soldador en el bolsillo cada vez que quieras utilizar el producto final. A la hora de coser los acelerómetros muy importante dejarlos bien fijos, lo que nos facilitará el camino de fijar rangos de valores en un futuro no muy lejano. No olvidarse del acelerómetro de referencia en el dorso de la mano, éste debe quedar bien fijo, aunque es el más difícil de coser. En nuestro guante quedó de la siguiente manera:

Immagine
Immagine
Immagine
Immagine

El pegamento lo utilizamos para que los cable no se rompieran, no tiene nada que ver con la fijación al guante. No se ve muy bien porque usamos hilo negro (justamente para que no se note), pero lo que hicimos fue aprovechar los agujeros libres que teníamos del propio acelerómetro para fijarlo, y luego darle un remate para fijar los cable para que siguieran una que per el dedo.

Fase 3: Sacar Resultados Por Pantalla

Sacar Resultados Por Pantalla
Sacar Resultados Por Pantalla
Sacar Resultados Por Pantalla
Sacar Resultados Por Pantalla

No queremos depender continuamente del ordenador, y menos si tenemos una pantalla conectada a nuestro microprocesador. Para poder escribir sobre esta, hay multitud de librerías ya escritas para poder hacerlo. Nosotros hemos optado per la libreria “U8g2”, che può scaricare e installare il mismo IDE di Arduino:

Immagine
Immagine

En concreto, se utilizará el paquete, que se incluirá al principio del código. El uso de la librería es muy sencillo. Per mostrare il pantalla di ESP32, utilizzare la funzione u8x8.drawString(), il parametro di ingresso per visualizzare il valore. Per aggiustare il numero di numeri a mostrar, podemos usar la función sprintf, que nos permite variar la precision con la que showr nuestras medidas. Un sencillo ejemplo sería:

sprintf(buf, "%06d", ax); u8x8.drawString(0, 0, buf);

Como queremos sacar los datos que hemos obtenido en el paso anterior, os vamos a facilitar ya el código con el que se puede hacer, que es una combición de las librerías que hemos ido viendo con nuestros ajustes.

Al seguito di questo passo, il progetto che segue praticamente, può essere solo quando si incontrano i punti di riferimento per la posizione che si desidera per cada letra e si adattano per questi testi sean corregge con la posizione della mano.

Passaggio 4: Fijar Rangos De Valores

Fijar Rangos De Valores
Fijar Rangos De Valores

Dipendendo dal modo in cui si ha a che fare con i sensori, si ha un valore per gli altri, per cui non ci sono dati di cui si dispone. De todas formas, la manera de conseguirlos no es nada complicada. Consiste en utilizar unos umbrales que delimitan las distintas posiciones de los dedos y asignan un valor a cada dedo (que nos indicará la posición de dicho dedo). Il programma tiene estas fasi:

  • Muestreo: en esta etapa obtenemos los valores de los acelerómetros. Para ello vamos mirando cíclicamente cada uno y guardamos su valor. Una vez obtenidos los datos de los acelerómetros utilizamos unos umbrales para simplificar la detección de cada letra posteriormente. Dentro de los acelerómetros tenemos 3 comportamientos differenti, y por ello 3 types de umbrales distintos, estos son:

    • Acelerómetro de referencia: será el colocado en el reverso de la mano y nos indicará cómo está orientada la mano. Con los umbrales utilizados diferenciamos entre 3 posiciones: up, down y size.
    • Pulgar: en función del resultado obtenido en el acelerómetro de referencia utilizaremos unos umbrales u otros. En todos los casos miraremos hacia donde está el pulgar orientado.
    • Resto de dedos: al igual que en el pulgar miraremos cómo están colocados los dedos rispetto al acelerómetro de referencia. La diferencia está en que en este caso solo miramos si está estirado, curvado, doblado o muy doblado.
  • Detection de letra: una vez obtenidas las posiciones de los dedos comparamos uno a uno los dedos para ver si cumplen o no una posición de una mano. Para ello utilizamos una lista de prioridad, por lo que evitamos que se cumplan varias letras en caso de error asegurando así que el programa sigue funcionando de forma Correcta. Para asegurarnos de que una letra es Correcta y no ha sido un error hemos creado un algoritmo de seguridad (ya que es probabile que sin quererlo la persona su mano pase por una letra sin querer). Dicho algoritmo tiene dos funzioni:

    • Evitar detectar una letra de forma errónea: para que se considere que una letra es Correcta ésta debe mantenerse constante durante aproximadamente 1 segundo.
    • Evitar detectar de forma periódica una letra: una vez detectada la letra no se volverá a detectar a no ser que varíe la posición de la mano, es decir, si se mantiene el gesto de la letra “a” durante 10 segundos solo se detectará una "un". Si queremos poner dos veces la misma letra debemos mover la mano levemente para que deje de detectarse como “a” y volver a hacerla.
  • Reproducción: en esta fase reproduciremos la letra que hayamos detectado anteriormente, para ello utilizamos el DF Player realizando los siguientes pasos:

    • Inicializar el puerto serie
    • Crea un oggetto del tipo player utilizzando la libreria “DFRobotDFPlayerMini.h”
    • Inicializar el reproductor
    • Configurar el volumen selectionar la pista corrispondente a la letra detectada
    • seleccionar la pista corrispondente a la letra detectada

    Una vez configurado por primera vez el reproductor solo debemos seleccionar qué pista reproducir

  • Monitor: el monitor tiene dos funciones, durante la fase de desarrollo nos servirá para tener un feedback inmediato sobre la posición de los dedos para que, si no sale alguna letra, podamos ver qué dedo está fallando y así corregirlo más fácilmente modificando leggermente los valores de los umbrales. Durante la fase de venta del producto la pantalla se utilizará para que el usuario tenga un feedback inmediato, sabiendo que lo que ha dicho ha sido correctamente interpretado por el guante.

Passaggio 5: audio

Audio
Audio
Audio
Audio

¡Solo nos queda incluir la etapa de audio a nuestro proyecto e ya tendremos nuestro guante traductor de signos!Utilizaremos el DFPlayer mini MP3, ya que además de barato es incredibilmente sencillo de utilizar. Necesitaremos únicamente los pines Tx y Rx de nuestro microcontrolador. Mediante una conexión como enseña la figura conectamos la placa, el lector de tarjetas y nuestro altavoz:

Immagine
Immagine

Sin olvidar que el pin Tx del DFPlayer è necessaria una resistenza di 1Kohm per funzionare correttamente. Pero non devi solo essere felice in questo mondo; el Tx y Rx per difetto del microprocesador se utiliza para l'entrada de datos del microUSB con el que lo estamos programando, por lo que si queremos utilizarlo habría que conectarlo a una batería externa y comprobar que funciona de ésta forma. Nos pareció una manera poco práctica de funcionamiento, por lo que utilizamos la siguiente librería:

github.com/DFRobot/DFRobotDFPlayerMini

Que nos permite utilizar cualquier pin digital como transmisor y receptor. En nuestro caso elegimos el 25 y el 26. Por lo tanto el código queda de la siguiente forma:

github.com/DFRobot/DFRobotDFPlayerMini

Éste será el código final que usaremos y todas las funciones están ya implementadas.

Fase 6: Ultimo passo

Ultimo passo
Ultimo passo
Ultimo passo
Ultimo passo

Si hemos llegado a este paso quiere decir que sólo falta hacer este proyecto portátil: conectando nuestro microcontrolador con una batería ya podemos desprendernos de nuestro ordenador. Un consiglio, si añadimos un interruptor en el cable positivo de l'alimentazione podemos encenderlo y apagarlo a voluntad.

Immagine
Immagine

De esta forma nos aseguramos que el altavoz quede orientado hacia la palma de la mano. Así es como queda el proyecto que hemos propuesto:

drive.google.com/file/d/1vr76rb4KjsyfqO1U7v-mywLYcgoDTNO8/view?usp=sharing

Una mejora que nos gustaría proponer es una coraza que proteja la electrónica del agua y de los golpes. Para un lenguaje de signos más completo que allowa un repertorio de palabras más completo serían necesarios dos guantes que se comunicaran entre sí. Per lo que otra de las mejoras sería el implementar el sistema de comunicaciones entre los guantes. La placa que hemos utilizado tiene un módulo de internet incorporado, lo que puede llegar a ser útil para esta tarea. Può utilizzare un piccolo modulo BLE (Bluetooth Low Energy) per la misma función, davvero se può avere molte forme, ¡sé creativo!

Y finalmente nos gustaría despedirnos y agradeceros que se haya seguido hasta el final este proyecto. Esperamos que le sirva a mucha gente y que nos mandéis de alguna forma el resultado de vuestro proyecto. Es más, nos encantará ver si alguno ha implementado las mejoras propuestas.

¡Mucha suerte y fuerza, compagni!

Consigliato: