Índice:

Guante Traductor De Lengua De Signos: 6 etapas
Guante Traductor De Lengua De Signos: 6 etapas

Vídeo: Guante Traductor De Lengua De Signos: 6 etapas

Vídeo: Guante Traductor De Lengua De Signos: 6 etapas
Vídeo: Traductor lenguaje de SEÑAS 👋🏻✊🏻🤛🏻✌🏻👌🏻 2024, Julho
Anonim
Guante Traductor De Lengua De Signos
Guante Traductor De Lengua De Signos

¿Y si te dijera que ahora es posible hablar sen 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! Com pocos materiales algo de código puedes construir um guante que traduzca la lengua de signos por un altavoz ou 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. Los materiales que vamos a utilizar filho:

  • Un guante. Nosotros hemos utilizado uno que tenga la opción de escribir en pantallas táctiles para que el dia a dia mar algo más ameno.
  • 6 acelerómetros. Elegimos los MPU6050 por ser los más fáceis de encontrar no mercado, pero realmente te vale cualquier otro que encuentres.
  • Un microprocesador. El SP32 Heltec nos é servido por tener pantalla incorporada. Además, se puede programar en el IDE de Arduino, el más popular en estos tiempos que corren.
  • Un altavoz de 8 ohmios de resistencia interna para aprovechar al máximo la potencia.
  • Um módulo para tarjetas SD. Obtenha o áudio de cada símbolo que guardemos. Hemos utilizado el DFPlayer mini MP3 por sua facilidade de uso.
  • Batería. A bateria de 9000mAh é suficiente para o novo projeto, sem muita ocupação e permite uma vida larga no projeto. Então, uma opção pode encender e apagar o dispositivo que deseja.
  • Cabo. Aunque parezca una tontería, siempre é o elemento que se nos olvida al empezar um projeto e é o mais elemental. Recomendamos cabo fino e feno que tener en cuenta que cada acelerómetro usa 5 cabos. Não os preocupéis, é realmente barato.

  • Una placa de inserción. Nos sirve con 4 columnas cortocircuitadas por 8 pines cada una, lo que es bastante pequeña para no notarse 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 para coser nuestros sensores al guante.

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

Como veis son todo materiales original y fáciles de conseguir, ¡este proyecto está al alcance de todo el mundo! Lo hemos hecho así para que cualquiera se lo pueda construir y poder hacer el mundo un sitio más cómodo para todos.

Etapa 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 é importante comprobar que o material que estamos usando funciona, por eso de tener claro que as cosas funcionan antes de que haya que empezar de novo el projeto. Lo primeiro que haremos será soldar los cabos al sensor de la siguiente manera:

Imagem
Imagem

Podemos probar los sensores sin soldar primero, pero nos arriesgamos a muchos fallos debidos a malas conexiones. O outro extremo dos cabos valdrá con conectarlos a um protoboard para poder conectarlos y desconectarlos con facilidad. Conectaremos los cabos con o microcontrolador da forma que VCC se conectar a 5V y GND con GND, SCL con el pino 21, SDA con el pino 22 (é recomendável buscar um mapa de pinheiros de la placa que estamos usando e asegurarse de que dichos pinheiros nombrados se corresponder a los que nos interesan) y AD0 a cualquiera de los pines digitales. No caso da placa SP32 Heltec hay que tenha cuidado com não usar os pinheiros 4, 15 e 16, que filho los que usa para a pantalla. Si utilizamos uno de estos, quizás no podamos usarla en nuestro proyecto. Aunque os recomendamos comprobar com o modelo que conformais por si acaso não coincide, el esquema de pines de nuestra placa es el siguiente:

Imagem
Imagem

Utilizaremos o protocolo I2C para comunicarnos com todos os sensores, para que possamos usar as bibliotecas abertas que feno na internet para usar este protocolo y son realmente sencillas de usar. La primera a podemos encontrar na página seguinte https:// gist. github.com/tfeldmann/5411375 Copiamos el código. Nos ayudará a identificar las direcciones en las que estamos leyendo. Estos dispositivos vienen por defeito com a direção 168, pero si ponemos a nivel alto el pin AD0 de novo sensor podemos mudar a direção a la 169. Hay que comprobar que se ativa as direções.

Descargamos el zip e en el IDE de Arduino vamos a Programa> Incluir Librería> Añadir librería Zip. Con esto ya tendremos la librería for manejar los MPU, pero además se ns ha incluido un programa de ejemplo para leer los sensores. Para acessar a él, podemos ir a Abrir> Ejemplos> MPU6050> MPU6050_raw.ino. Al abrir o monitor serial cambiamos los baudios a 38400 y al cargarse o 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 um paso posterior.

Etapa 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

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

Imagem
Imagem

Parece uma maraña de cabos, mas podemos ver que todos os cabos do mismo color estão cortocircuitados e iluminados com seu pino correspondente, menos o AD0, que se conecta diretamente à placa. El código para poder usar uma modificação do hemos usado antes para ler os dados de cada um de los sensores. Hemos limite que tardamos 2ms e cada sensor, por cada 4ms (para dar uma margem de segurança), cambiaremos o sensor que leemos a nivel alto el pino AD0 do sensor de leitura e o resto a nivel bajo, leyendo así de la dirección por defecto. Todas as formas do código completo para facilitaremos no próximo apartamento e se você pode ver todos os detalhes. Este ponto do projeto debemos estructurar bien a posição de cada sensor no guante, da placa de inserção e do microcontrolador, porque o siguiente paso es soldarlo todo y coserlo al guante. Es muy importante pensar en las tensiones que van recibir los cabos cuando la mano está cerrada, ya que tienden a romperse con tremenda facilidad si no cuidamos this detalle. É preferível que sobre cabo e quede algo feo que tener que llevar um soldador no bolsillo cada vez que quieras utilizar o producto final. A la hora de coser los acelerómetros muito importante dejarlos bien fijos, para que não facilitemos o caminho de fijar rangos de valores em um 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 dificil de coser. En nuestro guante quedó de la siguiente manera:

Imagem
Imagem
Imagem
Imagem

El pegamento lo utilizamos para que los cabos no se rompieran, no tiene nada que ver con la fijación al guante. No se ve muy bien porque existe hilo negro (justamente para que nenhuma nota se), 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 cabos para que siguieran una guía recta por el dedo.

Etapa 3: Sacar Resultados Por Pantalla

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

Não queremos depender continuamente del ordenador, e menos você tenemos una pantalla conectada a nosso microprocesador. Para poder escribir sobre esta, feno multitud de bibliotecas ya escritas para poder hacerlo. Nosotros hemos optado por la librería “U8g2”, que se puede descargar e instalar from el mismo IDE de Arduino:

Imagem
Imagem

En concreto, se utilizará o paquete, que se incluirá ao princípio do código. El uso de la librería es muy sencillo. Para mostrar a pantalla del ESP32, usaremos a função u8x8.drawString (), o parâmetro de entrada será o valor a mostrar. Para ajustar o número de dígitos a mostrar, podemos usar a função sprintf, que nos permite variar a precisão com que mostrar novas medidas. Un sencillo ejemplo sería:

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

Como queremos sacar os dados que hemos obtenido no paso anterior, vamos a facilitação ya o código com o que se pode hacer, que é uma combinação das bibliotecas que hemos ido viendo com nossos ajustes.

Al conseguir este paso, el proyecto quedaría prácticamente hecho, pues solamente queda encontrar los márgenes de posição que debemos poner para cada letra e ir adaptándolos para que las letras sean correctas con la posición de la mano.

Etapa 4: Fijar Rangos De Valores

Fijar Rangos De Valores
Fijar Rangos De Valores

Dependiendo de cómo hayamos cosido los sensores al guante habrá unos valores u otros, por lo que no podemos ofrecer los datos that nos sirvieron a nosotros. De todas as formas, a manera de conseguirlos no es nada complicada. Consiste em usar umbrales que delimitan as distintas posiciones de los dedos y assinalar un valor a cada dedo (que nos indicará la posición de dicho dedo). El programa tiene estas fases:

  • Muestreo: esta etapa obtenemos los valores de los acelerómetros. Para ello vamos mirando cíclicamente cada uno y guardamos su valor. Uma vez, obtenidos los dados de los acelerómetros utilizamos unos umbrales para simplificar a detecção de cada letra posteriormente. Dentro de los acelerómetros tenemos 3 comportamientos diferentes, y por ello 3 tipos de umbrales distintos, estos son:

    • Acelerómetro de referência: será o colocado no reverso de mano e nos indicará quando estiver orientado 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 os casos miraremos hacia donde está el pulgar orientado.
    • Resto de dedos: al igual que en el pulgar miraremos cómo están abortos dedos respecto al acelerómetro de referencia. La diferencia está en que en este caso solo miramos si está estirado, curvado, doblado ou muy doblado.
  • Detección de letra: una vez obtenidas las posiciones de los dedos comparamos uno a uno los dedos para ver si cumplen ou no una posición de una mano. Para que ele utilize uma lista de prioridade, para que evitamos que se cumplan varias letras em caso de erro, asegurando assim que o programa sigue funcionando de forma correta. Para asegurarnos de que uma letra es correta y não ha sido un erro hemos creado un algoritmo de seguridad (ya que é provável que sin quererlo la persona su mano pase por una letra sin querer). Dicho algoritmo tiene das funções:

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

    • Inicializar el puerto serie
    • Crie um objeto de tipo jogador usando a biblioteca “DFRobotDFPlayerMini.h”
    • Inicializar el reprodutor
    • Configurar o volume selecionando la pista correspondente a la letra detectada
    • selecionar la pista correspondiente a la letra detectada

    Uma vez definida por primera vez el reprodutor solo debemos selecionar qué pista reproducir

  • Monitor: o monitor tiene das funções, durante a fase de desarrollo nos servirá para tener um feedback inmediato sobre a posição dos dedos para que, se não houver venda alguna letra, podamos ver qué dedo está falhando e assim corregirlo más fácilmente mod levemente los valores de los umbrales. Durante a fase de venta del producto, la pantalla se utilizará para que o usuario tenga um feedback inmediato, sabendo que lo que ha dicho foi corretamente interpretado pelo guante.

Etapa 5: Áudio

Áudio
Áudio
Áudio
Áudio

¡Sólo nos queda incluir a etapa de áudio a nuestro projeto ya tendremos nuestro guante traductor de signos! Utilizaremos el DFPlayer mini MP3, ya que además de barato es increiblemente sencillo de utilizar. Necesitaremos únicamente los pines Tx y Rx de nuestro microcontrolador. Mediante uma conexão como enseña la figura conectamos la placa, el lector de tarjetas y nuestro altavoz:

Imagem
Imagem

Sin olvidar que el pin Tx del DFPlayer necesita una resistencia de 1Kohm para funcionar corretamente. Pero no to todo podía ser felicidad en éste mundo; el Tx y Rx por defeito do microprocesador se utiliza para a entrada de dados do microUSB com o que estamos programando, se você quiser usar o habría que conectar a uma bateria externa e 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 não permite o uso de receptor digital pin cualquier como transmisor y. En nuestro caso elegimos el 25 y el 26. Por lo tanto el código queda de la siguiente forma:

github.com/DFRobot/DFRobotDFPlayerMini

Este será o código final que usaremos e todas as funções que estiverem implementadas.

Etapa 6: Último Paso

Último Paso
Último Paso
Último Paso
Último Paso

Si hemos llegado a este paso quiere decir that sólo falta hacer este projeto portátil: conectando nosso microcontrolador con una batería ya podemos desprendernos de nuestro ordenador. Um consejo, si añadimos un interruptor en el cabo positivo de la alimentación podemos encenderlo y apagarlo a voluntad. También es una buena idea coser un pequeño bolsillo donde poner toda la electrónica y que no quede colgante, de la siguiente forma:

Imagem
Imagem

De esta forma nos aseguramos que el altavoz quede orientado hacia la palma de la mano. Assim 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 um lenguaje de signos más completos que permitem um repertorio de palabras más completo serían necesarios dos guantes que se comunicam entre sí. Por lo que otra de las mejoras sería el implementar el sistema de comunicaciones between los guantes. A placa que hemos usado tem um módulo de internet incorporado, o que pode ser usado para ser útil para esta área. Também pode usar um módulo BLE (Bluetooth Low Energy) para a função misma, realmente se pode usar as formas, ¡sé creativo!

E finalmente nos gustaría despedirnos y agradeceros que se haya seguido hasta el final este projeto. 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, companheiros!

Recomendado: