Taula de continguts:

Guante Traductor De Lengua De Signos: 6 Steps
Guante Traductor De Lengua De Signos: 6 Steps

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

Vídeo: Guante Traductor De Lengua De Signos: 6 Steps
Vídeo: Guante traductor de lenguaje de señas a Voz ( texto y audio) 2024, De novembre
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 d'una persona sordomuda no és sencilla, no tot el món coneix la llengua de signes i és complicada la convivència sense un traductor. ¡El traductor que ens proposa estem al costat de la teva mà! Amb pocs materials alguna cosa de codi es pot construir un guant que tradueixi la llengua de signes per una altavoz o una pantalla per a que la convivència es faci un poc més amena. El projecte que proposem únicament sirve per a l’abecedari, però t’animem al que continua per aconseguir traduir paraules i així entre tots podem fer un producte que puga ser realment per a tot el món. Els materials que volem utilitzar son:

  • Un guante. 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 acelerómetros. Elegimos los MPU6050 por ser los más fáciles de encontrar en el mercado, pero realmente te vale cualquier otro que encuentres.
  • Un microprocesador. El SP32 Heltec ens ha servit per tenir pantalla incorporada. A més, es pot programar en l'IDE d'Arduino, el més popular en aquests temps que corren.
  • Un altavoz de 8 ohmios de resistència interna per aprofitar al màxim la potencia.
  • Un mòdul per a tarjetes SD. Obtendrá l’àudio de cada símbol que guardem. Hem utilitzat el DFPlayer mini MP3 per la seva facilitat d'ús.
  • Bateria. Una bateria de liti de 9000mAh serà suficient per al nostre projecte, no ocupa molt i permet una vida llarga al projecte. Si afegeix un canvi podem encendre i apagar el dispositiu quan volem.
  • Cable. Aunque parezca una tontería, siempre es el elemento que se nos olvida al comenzar un proyecto y es del más elemental. Recomanem cable fins i tinguis que tinguis en compte que cada accelerador de mida 5 cables. No hi ha preocupacions, és realment barat.

  • Una placa d’inserció. Nos sirve con 4 columnas cortocircuitadas por 8 pines cada una, lo que es bastant petit per no notar-se en el guant. És opcional, però no fa la vida realment més fàcil.
  • Soldador y estaño para unirlo todo.
  • Hilo y aguja para coser nuestros sensores al guante.

També va a ser necessari un poc de codi, però això els oferim nosaltres, com a regal, al final del projecte.

Com veus son tot materials barats i fàcils d’aconseguir, aquest projecte està a l’alçada de tot el món! Lo hem fet així per a la qual es podrà construir i poder fer el món un lloc més còmode per a tots.

Pas 1: Comprobar que els acceleradors funcionen

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

Sempre és important comprovar que el material que estem utilitzant funciona, per això de tenir clar que les coses funcionen abans de que haja que començar de nou el projecte. El primer que farem soldarà els cables al sensor de la següent manera:

Imatge
Imatge

Podem provar els sensors sense soldar primer, però ens arriesgamos a molts fallos debits a males connexions. L’altre extrem dels cables valdrà amb connectar-los a un protoboard per poder connectar-los i desconnectar-los amb facilitat. Conectarem els cables amb el microcontrolador de la forma que VCC es connecta a 5V i GND amb GND, SCL amb el pin 21, SDA amb el pin 22 (es recomanable buscar un mapa de pins de la placa que estem utilitzant i assegurar-nos de que aquests pins nombrats es corresponen als que ens interessen) i AD0 a qualsevol dels pins digitals. En el cas de la placa SP32 Heltec hi ha que tingui cura amb no utilitzar els pins 4, 15 i 16, que son els que utilitzen per a la pantalla. Si utilitzem un d’aquests, no podem utilitzar-lo en el nostre projecte. Aunque os recomendamos comprobar con el modelo que usáis por si acaso no coincide, el esquema de pins de la nostra placa és el següent:

Imatge
Imatge

Utilitzem el protocol I2C per comunicar-nos amb tots els sensors, per lo que podem utilitzar les biblioteques obertes que hi ha a internet per utilitzar en aquest protocol i son realment senzilles d’utilitzar. La primera la podem trobar a la següent pàgina https:// gist. github.com/tfeldmann/5411375 Copiamos el codi. Ens ajudarà a identificar les direccions en les que estem llegint. Aquests dispositius tenen un defecte amb la direcció 168, però si posem a nivell alt el pin AD0 del nostre sensor podem canviar la direcció a la 169. Hi ha que comprovi que s’activa les dues direccions.

Descarregueu el zip i en l’IDE d’Arduino vamos a Programa> Incluir Librería> Afegir bibliografia Zip. Con esto ya tendremos la librería para manejar los MPU, però a més se'ls ha inclòs un programa d'exemple per llegir els sensors. Per accedir a ell, podem anar a Abrir> Exemples> MPU6050> MPU6050_raw.ino. Al obrir el monitor serial cambiamos los baudios a 38400 y al cargarse el programa hauríem d'obtenir la lectura dels sis paràmetres que oferim el sensor: tres de l'acceleració relativa i altres tres de l'acceleració de la gravetat. Aquests darrers son els que utilitzarem per comprovar la posició de cada giroscop, però els verem en un pas posterior.

Step 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 vegada comprovat que cada sensor no funciona per separat, hi ha que comprovi que funcionem tots al mateix temps. SDA) i reloj (SCL). Los pines AD0 els connectem a pins digitals diferents per poder decidir activem en cada moment. Es important mirar quins son els pins que utilitzen la placa que estem utilitzant per comunicar-se amb la pantalla, com ja hem dit, ja que si s’utilitza algú de aquests pins no ens funcionarà. Es quedarà una forma de parecida al següent esquema (clic per ampliar):

Imatge
Imatge

Parce una maraña de cables, però podem veure que tots els cables del mateix color estan cortocircuitats i portats al seu pin corresponent, menys els de AD0, que connecten directament a la placa. El codi per poder utilitzar-lo és una modificació del que hem utilitzat abans per llegir els dades de cada un dels sensors. Hemos calculado que tardamos 2ms en cada sensor, por lo que cada 4ms (para dar un margen de seguridad) cambiaremos de sensor que leemos poner a nivel alto el pin AD0 del sensor de lectura y el resto a nivel bajo, leyendo así de la direcció per defecte. De totes les formes el codi complet es facilitarà en un proper apartat i es podrà veure tots aquests detalls. En aquest punt del projecte debem estructurar bé la posició de cada sensor en el guant, de la placa d’inserció i del microcontrolador, perquè el següent pas és soldar tot i coser al guant. És molt important pensar en les tensions que van a rebre els cables quan la mà està tancada, ja que tendeix a trencar-se amb tremenda facilitat si no es cuidem aquest detall. Es preferible que sobre cable i quede alguna cosa que tingui que dur a terme un soldador en el bolsillo cada vegada que vulgui utilitzar el producte final. A l’hora de coser els aceleròmetres molt importants deixant-los bé fijos, el que ens facilitarà el camí de fijar rangs de valors en un futur no molt lleig. No olvidar-se de l’acceleròmetre de referència en el dors de la mà, aquest ha de quedar bé fi, encara que sigui el més difícil de coser. En el nostre guant quedem de la següent manera:

Imatge
Imatge
Imatge
Imatge

El pegament es fa servir per que els cables no es rompin, no té res que ver amb la fijació al guant. No es ve molt bé perquè us fem hilo negre (justament per a què no es noti), però el que hicimos va ser aprofitant els aguers lliures que teníem del propi accelerador per fijar-lo, i després donar-vos un remate per fijar els cables per seguir una guia recta per el dedo.

Pas 3: Sacar Resultats Per Pantalla

Sacar Resultats Per Pantalla
Sacar Resultats Per Pantalla
Sacar Resultats Per Pantalla
Sacar Resultats Per Pantalla

No volem dependre contínuament de l’ordinador, i menys si tenim una pantalla connectada al nostre microprocessador. Para poder escriure sobre aquesta, hi ha moltes biblioteques ja escriptures per poder fer-ho. Nosotros hemos optado por la librería “U8g2”, que es pot descarregar i instal·lar des del mateix IDE de Arduino:

Imatge
Imatge

En concret, s’utilitzarà el paquet, que inclourà al principi del codi. El uso de la biblioteca és molt senzill. Per mostrar per la pantalla de l'ESP32, utilitzarem la funció u8x8.drawString (), el vostre paràmetre d'entrada serà el valor a mostrar. Per ajustar el nombre de dígits a mostrar, podem utilitzar la funció sprintf, que ens permet variar la precisió amb la que mostrarem les nostres mesures. Un senzill exemple seria:

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

Com volem sacar els dades que hem obtingut en el pas anterior, os vamos a facilitar ya el código con el que se puede hacer, que es una combinación de las bibliotecas que hemos ido viendo con nuestros ajustes.

Al aconseguir aquest pas, el projecte quedaria pràcticament fet, només quedarà trobar els màrgenes de posició que devem posar per cada lletra i ir adaptant-los per a que les lletres siguin correctes amb la posició de la mà.

Pas 4: Fijar Rangos De Valores

Fijar Rangos De Valores
Fijar Rangos De Valores

Dependent de com hem de cosir els sensors al guant habrà uns valors i altres, per lo que no podem oferir els dades que ens sirvieron a nosaltres. De totes formes, la manera de aconseguir-les no és res complicat. Consiste en use unos umbrales que delimitan las distintas posiciones de los dedos y asignan un valor a cada dedo (que ens indicarà la posició de dit dedo). El programa té aquestes fases:

  • Muestreo: en aquesta etapa obtenim els valors dels acceleradors. Para ello vamos mirando cíclicamente cada uno y guardamos su valor. Una vegada obtinguts els dades dels acceleradors s’utilitzen uns umbrals per simplificar la detecció de cada lletra posteriorment. Dentro de los acelerómetros tenemos 3 comportamientos diferentes, y por ello 3 tipos de umbrales distintos, estos son:

    • Aceleròmetre de referència: serà el col·locat en el revers de la mà i ens indicarà com està orientat la mà. Amb els umbrals utilitzats diferencials entre 3 posicions: amunt, avall i mida.
    • Pulgar: en funció del resultat obtingut en l’acceleròmetre de referència utilitzem uns umbrals i altres. En tots els casos mirarem cap a on està el pulgar orientat.
    • Resto de dedos: al igual que en el pulgar mirarem com estan col·locats els dedos respecte a l’acceleròmetre de referència. La diferència està en que en aquest cas només mirem si està estirat, corbat, doblegat o molt doblegat.
  • Detecció de lletra: una vegada obtingudes les posicions dels dedos comparem un a un els dedos per ver si complir o no una posició d’una mà. Per a què utilitzem una llista de prioritat, per lo que evitem que compleixi diverses lletres en cas d’error assegurant així que el programa sigue funcionant de forma correcta. Per assegurar-nos que una lletra és correcta i no ha estat un error hem creat un algoritme de seguretat (ja que és probable que no vulgui la persona el seu pas per una lletra sense querer). Dicho algoritmo tiene dos funciones:

    • Evitar detectar una lletra de forma errònia: per a què es consideri que una lletra és correcta ha de mantenir-se constant durant aproximadament 1 segon.
    • Evitar detectar de forma periòdica una lletra: una vegada detectada la lletra no tornarà a detectar a no ser que variar la posició de la mà, és dir, si es manté el gest de la lletra “a” durant 10 segons només es detectarà una "A". Si volem posar dues vegades la mateixa lletra debem moure la mà lleument per a què deixem de detectar com “a” i tornar a fer-ho.
  • Reproducció: en aquesta fase es reprodueix la lletra que hem detectat anteriorment, per fer servir el DF Player realitzant els següents passos:

    • Inicialitzar el port sèrie
    • Crear un objecte de tipus de reproductor utilitzant la llibreria “DFRobotDFPlayerMini.h”
    • Inicialitzar el reproductor
    • Configurar el volum seleccionant la pista corresponent a la lletra detectada
    • seleccionar la pista corresponent a la lletra detectada

    Una vegada configurat per primera vegada el reproductor solament hem de seleccionar què pista reproduir

  • Monitor: el monitor té dues funcions, durant la fase de desenvolupament que servirem per tenir un feedback immediatament sobre la posició dels dedos per a què, si no es ven alguna lletra, podem veure què dedico està fallant i així corregir més fàcilment modificant lleument els valors de los umbrales. Durant la fase de venda del producte la pantalla s’utilitzarà per a que l’usuari tingui un feedback immediat, sabent que el que hagi estat correctament interpretat pel guant.

Pas 5: àudio

Àudio
Àudio
Àudio
Àudio

¡Sólo nos queda incluir la etapa de audio al nuestro proyecto y ya tendremos nuestro guante traductor de signos! Utilitzem el DFPlayer mini MP3, ja que a més de barat és increïblement senzill d’utilitzar. Necessitem únicament els pins Tx i Rx del nostre microcontrolador. Mediante una conexión como enseña la figura conectamos la placa, el lector de tarjetas y nuestro altavoz:

Imatge
Imatge

Sin olvidar que el pin Tx del DFPlayer necessita una resistència de 1Kohm per funcionar correctament. Pero no tot pot ser feliç en aquest món; el Tx i Rx per defecte del microprocessador s’utilitza per a l’entrada de dades del microUSB amb el que estem programant, per lo que si volem utilitzar habria que connecti a una bateria externa i comprovi que funciona d’aquesta forma. Parecíem una manera poc pràctica de funcionament, pel que utilitzem la següent bibliografia:

github.com/DFRobot/DFRobotDFPlayerMini

Que no permet utilitzar qualsevol pin digital com a transmissor i receptor. En nuestro caso elegimos el 25 y el 26. Per tant, el codi queda de la següent forma:

github.com/DFRobot/DFRobotDFPlayerMini

Aquest serà el codi final que utilitzarem i totes les funcions estan implementades.

Pas 6: Último Paso

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

Si hem arribat a aquest pas qui vol dir que només falta fer aquest projecte portàtil: connectant el nostre microcontrolador amb una bateria ja podem desenvolupar el nostre ordinador. Un consell, si afegeix un interrompedor en el cable positiu de l’alimentació podem encendre’l i apagar-lo a voluntat. También és una bona idea coser un petit bolsillo on posa tota l’electrònica i que no es deixa colgant, de la següent forma:

Imatge
Imatge

De aquesta forma ens assegurem que l’altavoz quede orientat cap a la palma de la mà. Així és com queda el projecte que hem proposat:

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

Una millora que ens gustaria proposar és una coraza que protegeix l’electrònica de l’aigua i dels gols. Per a un llenguatge de signes més complet que permet un repertori de paraules més complet serien necessaris dos guants que es comunicin entre sí. Per lo que altra de les millors seria implementar el sistema de comunicacions entre els guants. La placa que hem utilitzat té un mòdul d’internet incorporat, el que pot arribar a ser útil per a aquesta zona. També es pot utilitzar un petit mòdul BLE (Bluetooth Low Energy) per a la mateixa funció, realment pot fer moltes formes, ¡sé creatiu!

Y finalment 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. És més, ens encantarà veure si algú ha implementat les millors propostes.

¡Mucha suerte y fuerza, compañeros!

Recomanat: