Inhaltsverzeichnis:
- Schritt 1: Comprobar Que Los Acelerómetros Funcionan
- Schritt 2: Leer De Todos Los Acelerómetros Al Mismo Tiempo
- Schritt 3: Sacar Resultados Por Pantalla
- Schritt 4: Fijar Rangos De Valores
- Schritt 5: Audio
- Schritt 6: ltimo Paso
Video: Guante Traductor De Lengua De Signos - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Y si te dijera que ahora es möglich hablar sin abrir la boca?La vida de a persona sordomuda no es sencilla, no todo el mundo conoce la lengua de signos und es complicada la convivencia sin un traductor. El traductor que proponemos nosotros está alcance de tu mano! Con pocos materiales algo de código puedes construir un guante que traduzca la lengua de signos of a altavoz o una pantalla para que la convivencia se haga a poco más amena. El proyecto que proponemos únicamente sirve para el abecedario, pero te animamos a que lo geht weiter zum conseguir traducir palabras y así todos podamos hacer un producto que pueda ser realmente para todo el mundo. Los materiales que vamos a utilizar son:
- Un guante. Nosotros hemos utilizado uno que tenga la opción de escribir and pantallas táctiles para que el day a day sea algo más ameno.
- 6 Beschleunigungsmetros. Elegimos los MPU6050 für mehr Benutzer- und Mercado-Einrichtungen, pero realmente te vale cualquier oder otro que encuentres.
- Un Mikroprozessor. El SP32 Heltec nos ha servido por tener pantalla incorporada. Además, puede programar und IDE von Arduino, ist mehr populär und zeitgleich korren.
- Ein altavoz de 8 Ohmios de resistencia interna para aprovechar al maximo la potencia.
- Un módulo para tarjetas SD. Obtendrá el audio de cada símbolo que guardemos. Hemos utilizado el DFPlayer mini MP3 für die Benutzerfreundlichkeit.
- Batería. Eine Batterie von 9000 mAh, die für jedes neue Projekt ausreichend ist, ohne viel zu besetzen und für eine große Menge zuzulassen. Si añadimos un switch podemos encender y apagar el dispositivo cuando queramos.
- Kabel. Aunque parezca una tontería, siempre es el elemento que se nos olvida al empezar un proyecto y es de lo más elementar. Empfehlenswert Kabel fino y hay que tener en cuenta que cada acelerómetro usa 5 Kabel. No os preocupéis, es 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 código, pero eso os lo ofrecemos nosotros, como regalo, al final del proyecto.
Como veis son todo materiales baratos y fáciles de conseguir, ¡este proyecto está alcance de todo el mundo!Lo hemos hecho así para que cualquiera se lo pueda construir y poder hacer el mundo un sitio para todos.comodo
Schritt 1: Comprobar Que Los Acelerómetros Funcionan
Siempre es wichtig 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 primeo que haremos será soldar los cable al sensor de la siguiente manera:
Podemos probar los sensores sin soldar primero, pero nos arriesgamos a muchos fallos debidos a malas conexiones. El otro extremo de los cable valdrá conectarlos a una protoboard para poder conectarlos y desconectarlos con facilidad. Conectaremos los cablees con el 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 correcten a los que nos interesan) und 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 y 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 kein Zufall, el esquema de pines de nuestra placa es el siguiente:
Utilizaremos el protocolo I2C para comunicarnos con todos los sensores, por lo que podemos utilizar las libreías abiertas que hay en internet para utilizar en este protocolo y son realmente sencillas de usar. La primea la podemos encontrainar en la pástrainar en la pástrainar en la github.com/tfeldmann/5411375 Copiamos el código. Nos ayudará a identificar las direcciones en las que estamos leyendo. Estos dispositivos vienen por defecto con la dirección 168, pero si ponemos a nivel alto el pin AD0 de nuestro sensor podemos cambiar la dirección a la 169. Hay que comprobar que se activan las dos direcciones.
Descargamos el zip und el IDE von Arduino vamos a Programa > Incluir Librería > Añadir librería Zip. Mit dieser Tendenz zur Freiheit für Manejar Lose MPU, pero además se nos ha incluido un programa de ejemplo para leer los sensores. Para acceder a él, podemos ir a Brir > 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.
Schritt 2: Leer De Todos Los Acelerómetros Al Mismo Tiempo
Una vez comprobado que cada sensor nos funciona por separado, hay que comprobado 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), damass SDA) und Reloj (SCL). Los pines AD0 los conectaremos a pines digitales diferentes para poder decidir cuál activamos en cada momento. Es ist wichtig, mirar Cuáles Son Los Pines zu verwenden, die an der Stelle verwendet werden, die für die Gemeinschaft mit der Pantalla verwendet wird. Debería quedar de una forma parecida al siguiente esquema (click para ampliar):
Parece una maraña de cable, pero podemos ver que todos los cable del mismo color están cortocircuitados y llevados a su pin korrespondiente, menos los de AD0, que se conecta directamente a la placa. El código para poder utilizarlo es una modificación del adoque hemos util antes para leer los datos de cada uno de los sensores. 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 dirección por defekto. De todas formas el código completo lo facilitaremos en un próximo apartado y se podrán ver todos estos detalles. Es ist ein Punkt des Projekts mit einer strukturierten Position des Sensors in der Guante, des Platzes der Einfügung und des Mikrokontrollers, des Porque-El-Siguiente-Passes von Soldarlo und Coserlo al Guante. Es ist wichtig, dass Sie mit den Spannungen que van a recibir los cable cuando la mano está cerrada, ya que tienden a romperse con tremenda facilidad si no cuidamos este detalle. Es bevorzugt 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:
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 por el dedo.
Schritt 3: Sacar Resultados Por Pantalla
Keine 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 por la librería „U8g2“, que se puede descargar und instalar desde el mismo IDE de Arduino:
En concreto, se utilizará el paquete, que se incluirá al principio del código. El uso de la libería es muy sencillo. Für die meisten ESP32-Pfannen, nutzen Sie die Funktion u8x8.drawString(), und stellen Sie den Zugang zu den meisten Werten ein. Para ajustar el número de dígitos a mostrar, podemos usar la función sprintf, que nos allowe variar la precisión con la que mostrar 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 combinación de las liberías que hemos ido viendo con nuestros ajustes.
Al conseguir este paso, el proyecto quedaría prácticamente hecho, pues solamente queda encontrar los márgenes de posición que debemos poner para cada letra ir adaptándolos para que las letras sean correctas con la posición de la posición de la posición.
Schritt 4: 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 que nos sirvieron a nosotros. 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). El programa tiene estas fases:
-
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 diferentes, y por ello 3 tipos 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: eine Funktion des Ergebnisses obtenido und 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 respekto al acelerómetro de referencia. La diferencia está en que en este caso solo miramos si está estirado, curvado, doblado oder muy doblado.
-
Detección de letra: una vez obtenidas las posiciónes 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 wahrscheinlich que sin quererlo la persona su mano pase por una letra sin querer). Dicho algoritmo tiene dos funciones:
- Evitar Detectar una letra de forma errónea: para que se que una letra es correcta ésta debe mantenerse constante durante aproximadamente 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 varie la posición de la mano, es decir, si se mantiene el gesto de la letra “a” durante 10 segundos solo se Detectará una "ein". Si queremos poner dos veces la misma letra debemos mover la mano levemente para que deje de Detectarse como „a“y volver a hacerla.
-
Wiedergabe: en esta fase reproduciremos la letra que hayamos Detectado anteriormente, para ello utilizamos el DF Player realizando los siguientes pasos:
- Inicializar el puerto serie
- Erstellen Sie ein Objeto de tipo player utilizando la librería „DFRobotDFPlayerMini.h“
- Inicializar el reproductor
- Konfigurar el volumen seleccionar la pista Correspondiente a la letra Detectada
- seleccionar la pista Correspondiente a la letra Detectada
Una vez configurado por primea 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 kein verkauf alguna letra, podamos ver qué dedo está fallando y así corregirlo más fávaloreslevemente mod de los umbrales. Dauer der Produktentlüftung, die für die Verwendung von Benutzern verwendet wird, um sofortige Rückmeldungen zu erhalten.
Schritt 5: Audio
¡Sólo nos queda incluir la etapa de audio a nuestro proyecto y ya tendremos nuestro guante traductor de signos! Necesitaremos únicamente los pines Tx y Rx de nuestro microcontrolador. Mediante una conexión como enseña la figura conectamos la placa, elector de tarjetas y nuestro altavoz:
Sin olvidar que el pin Tx von DFPlayer, die eine Resistenz von 1Kohm für eine korrekte Korrektur benötigt. el Tx und Rx für defekte Mikroprozessoren, die für den Eingang von Daten von microUSB mit dem ESTAMOS-Programm, für die queere queremos-Utilizarlo-Funktion für den Anschluss an eine externe Batterie und die kompromittierte Funktion mit der Form. Nos pareció una manera poco práctica de funcionamiento, por lo que utilizamos la siguiente librería:
github.com/DFRobot/DFRobotDFPlayerMini
Que nos allowe utilizar cualquier pin Digital Como Transmisor y Receiver. 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.
Schritt 6: ltimo Paso
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 consejo, si añadimos un interruptor en el cable 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 electricónica y que no quede colgante, de la
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 electricónica del agua y de los golpes. Para un lenguaje de signos más completo quepertorio de palabras más completo serían Necesarios dos guantes que se comunicaran entre sí. Por 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. También puede utilizarse un pequeño módulo BLE (Bluetooth Low Energy) für die misma-Funktion, realmente se puede hacer de muchas formas, ¡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, Compañeros!