Cuprins:

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

Video: Guante Traductor De Lengua De Signos: 6 Steps

Video: Guante Traductor De Lengua De Signos: 6 Steps
Video: Traductor de lenguaje de señas robotico 👍🏻👊🏻✌🏻👌🏻✊🏻🤛🏻 2024, Iulie
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! Cu puține materiale ceva de cod poți construi o garanție care traduce la limba de semnături pentru o altavoz sau o ecrană pentru a cărei convingere se face puțin mai mult. El proyecto que proponemos únicamente sirve para el abecedario, pero te animamos a que lo continues 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 use son:

  • Un guante. Nosotros hemos utilizado uno que tenga la option de write in pantallas táctiles for that the day a day sea algo more ameno.
  • 6 acelerómetros. Elegimos los MPU6050 pentru a fi mai ușor de găsit pe piață, dar cu adevărat vă vale orice altceva care se întâlnește.
  • Un microprocesador. El SP32 Heltec ne-a servit pentru a avea ecran încorporat. În plus, se poate programa în IDE de Arduino, el mai popular în aceștia vor căpăta.
  • Un altavoz de 8 ohmi de rezistență internațională pentru a profita la maxim la putere.
  • Un módulo para tarjetas SD. Obtendrá el audio de cada símbolo que guardemos. Am folosit DFPlayer mini MP3 pentru facilitatea de utilizare.
  • Batería. O baterie de litiu de 9000mAh va fi suficientă pentru proiectul nostru, nu ocupă mult și permite o viață lungă la proiect. Dacă adăugăm un schimb putem încânta și apara dispozitivul când vrem.
  • Cablu. Aunque parezca o tontería, siempre es el elemento que se nos olvida al empezar un proyecto y es de lo más elemental. Recomendamos cable fino and hay that have in account that each acelerómetro usa 5 cables. No os preocupéis, is really 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. Este opțional, dar nu avem viața cu adevărat mai ușor.
  • Soldador y estaño para unirlo todo.
  • Hilo y aguja para coser nuestros sensores al guante.

De asemenea, va fi necesar un pic de cod, dar care este ceea ce ne oferim noi, ca cadou, la finalul proiectului.

Como veis son all materiales ieftine and easyes de conseguir, ¡este proyecto está al alcance de todo el mundo!

Pasul 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 important comprobar que el material que estamos usando funcționan, por eso de tener claro que las cosas funcionan antes de que haya que comience de nuevo el proyecto. Lo primero que haremos va solda cablurile la senzorul următorului mod:

Imagine
Imagine

Podemos probar los sensores sin soldar primero, pero nos arriesgamos a many fallos debidos a malas conexiones. El otro extremo de los cables valdrá con conectarlos a una protoboard para poder conectarlos y desconectarlos with facilidad. Conectaremos los cables with the microcontrolador de la forma that VCC se conectează a 5V y GND cu GND, SCL cu pinul 21, SDA cu pinul 22 (es recomendable buscarse un mapa de pines de la placa que estamos usando y asegurarse de que dichos pines nombrados se corresponden a los que nos interesan) y AD0 a cualquiera de los pines digitales. În cazul în care placa SP32 Heltec are că aveți grijă cu nu folosiți pinii 4, 15 și 16, că sunteți cei care utilizează ecranul. Dacă folosim unul de aceștia, nu putem folosi în acest proiect. Aunque os recomendamos comprobar with the model that usáis por si acaso no coincide, el esquema de pines de nuestra placa es the next:

Imagine
Imagine

Utilizăm protocolul I2C pentru comunicarea cu toți senzorii, pentru ceea ce putem folosi bibliotecile deschise pe care le avem în internet pentru a folosi în acest protocol și chiar într-adevăr utilizează. La prima la putem găsi în următoarea pagină https:// gist. github.com/tfeldmann/5411375 Copiamos el código. Ne ajutăm să identificăm direcțiile în care suntem legi. Aceste dispozitive vin prin defect cu direcția 168, dar și punem la nivel înalt el pin AD0 de la noi senzor putem schimba direcția la 169. Hay que comprobar que se activan las dos direcciones.

Descărcați codul zip și în IDE-ul Arduino vă oferim un program> Includeți librărie> Adăugați bibliotecă Zip. Con esto ya tendremos la librería para manejar los MPU, dar în plus se include un program de exemplu pentru leerul senzorilor. Pentru a accesa el, putem ir la Abrir> Exemple> MPU6050> MPU6050_raw.ino. Al abrir el monitor serial cambiamos los baudios a 38400 y al cargarse el program ar trebui să obținem citirea celor șase parametri care ne oferă senzorul: trei de accelerare relativă și alte trei de accelerare a gravedadei. Aceste ultime sunt pe care le folosim pentru a cuprinde poziția de fiecare giroscop, dar lo veremos într-un pas posterior.

Pasul 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

O dată comprobat că fiecare senzor funcționează separat, sunt acelea care funcționează pe toate la același timp. SDA) y reloj (SCL). Los pines AD0 conectează-ne la pines digitales diferite pentru a putea decide cu activăm în fiecare moment. Es important mirar cuáles son los pines that use the placa that we using using for comunicare with the screen, as ya hemos dicho, ya que si utilizamos alguno de estos pines no nos funcionará. Deberați să rămâneți dintr-o formă parecată la următoarea schemă (faceți clic pentru amplificare):

Imagine
Imagine

Parece o maraña de cables, dar putem să vedem că toate cablurile de același color sunt cortocircuitate și le-au purtat la pinul corespunzător, mai puțin de AD0, care se conectează direct la placa. El cod pentru puterea utilizării este o modificare a celor care am folosit 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 (pentru dar un margen de securitate) cambiaremos de sensor que leemos poniendo a nivel alto el pin AD0 del sensor de lectura y el resto a nivel inferior, leyendo así de la dirección por defecto. De toate formele codului complet le facilităm într-un următor paragraf și se poate vedea toate aceste detalii. În acest punct al proiectului de dezbateri structurează bine poziția fiecărui senzor în guanta, de placa de inserție și a microcontrolatorului, deoarece următorul pas este soldar tot și coserlo al guante. Este foarte important să gândim în tensiunile pe care le primesc cablurile când mâna este închisă, că te-ai întrerupt cu tremurarea facilității dacă nu ne-am încredințat. Es preferible that over cable y quede something feo that tener that llevar un soldador in the bolsillo cada vez that quieras use the product final. A the hour de coser los acelerómetros very important dejarlos well 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, este trebuie să rămână bine fijo, deși este mai dificil de coser. En nuestro guante quedó de la următoarea manieră:

Imagine
Imagine
Imagine
Imagine

El pegamento lo utilizamos para que los cables 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 cables para que siguieran una guía recta por el dedo.

Step 3: Sacar Results Por Pantalla

Sacar Rezultate Por Pantalla
Sacar Rezultate Por Pantalla
Sacar Rezultate Por Pantalla
Sacar Rezultate Por Pantalla

No queremos depender continuamente del computer, y less si tenemos una screen conectada to our microprocesador. Para poder write about this, hay multitude de librerías ya escritas for poder hacerlo. Nosotros hemos optado por la librería “U8g2”, care se poate descărca și instala din același IDE de Arduino:

Imagine
Imagine

În concret, se va folosi pachetul, care va include principiul codului. El uso de la librería es muy sencillo. Pentru a afișa pentru ecranul ESP32, utilizați funcția u8x8.drawString (), cu parametrul de intrare va fi valorul afișat. Pentru ajustarea numărului de cifre a afișa, putem folosi funcția sprintf, care ne permite să variez precizia cu care să afișăm noile noastre măsuri. Un simplu exemplu ar fi:

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

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

Al atinge acest pas, proiectul rămâne practic practic, puține singur rămâne să găsesc marjele de poziție pe care să le punem pentru fiecare letră și să le adaptăm pentru ca literele să fie corecte cu poziția mâinii.

Pasul 4: Fijar Rangos De Valores

Fijar Rangos De Valores
Fijar Rangos De Valores

Dependând de cum ne-am cosido los sensores al guante habrá unos valores u otros, por lo que no podemos ofrecer los datos que nos sirvieron a nosotros. De toate formele, maniera de consecință nu este nimic complicat. Consiste en use uni umbrales that delimitan the different positions of the dedos y assignan un valor a cada dedo (care ne indică poziția de dicho dedo). El programa tiene estas fases:

  • Muestreo: în această etapă obținem valorile acelerometrelor. Para ello vamos mirando cíclicamente cada uno y guardamos su valor. O dată obținute datele datelor acelerometrilor folosim unii umbrele pentru simplificarea detecției de fiecare literă posterior. Dentro de los acelerómetros tenemos 3 comportamientos different, y por ello 3 types de umbrales distinct, estos son:

    • Acelerometru de referință: va fi colocat în reversul mâinii și indicăm cum este orientat mâna. Cu umbrele utilizate diferențiate între 3 poziții: sus, jos și dimensiune.
    • Pulgar: în funcție a rezultatului obținut în acelerometru de referință folosim unii umbrali și alții. En todos los casos miraremos hacia donde está el pulgar orientado.
    • Resto de dedos: al igual că în el pulgar miraremos cómo están colocados los dedos respecto al acelerómetro de referencia. La diferență este în care în acest caz solo miramos si está estirado, curvado, doblado o muy doblado.
  • Detecție de literă: o dată obținute pozițiile de deduse comparăm unul la unul deduse pentru a vedea dacă se completează o nu o poziție de o mană. Para ello utilizamos una lista de prioridad, por lo que evitamos que se cumplen varias letras en caso de error asigurând astfel că programul sigue funcționând de formă corectă. Pentru a ne asigura că o literă este corectă și nu a fost o eroare am creat un algoritm de securitate (deja ce este probabil că fără a căuta persoana sa manevră pentru o literă fără a vrea). Dicho algoritmo tiene dos funciones:

    • Evitar detectează o literă de formă eronată: pentru că se consideră că o literă este corectă este trebuie să se mențină constantă în timpul aproximativ 1 secundă.
    • Evitar detectarea formei periodice o literă: o dată detectată la litera nu se va reîntoarce la detectarea a no ser că varie la poziția de la mana, este spunând, dacă se menține scrisoarea „a” în 10 secunde numai se detectează una "A". Dacă vrem să punem două ori la aceeași literă, să ne mutăm la mană pentru că deje de detectare ca „a” și să mă întorc.
  • Reproducție: în această fază reproduceți litera pe care o avem detectată anterior, pentru a utiliza acest lucru din DF Player realizând următorii pași:

    • Inicializar el puerto serie
    • Crear un obiect de tip player folosind bibliotecă „DFRobotDFPlayerMini.h”
    • Inicializați reproducătorul
    • Configurează volumul selectează pista corespunzătoare la letra detectată
    • selectați pista corespunzătoare la letra detectată

    O dată configurat pentru prima dată el reproductor solo debemos select qué track reprodir

  • Monitor: el monitor tiene dos funcciones, 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, putem să vedem ce dedică este căutând și astfel corregirlo mai ușor modificând levemente valorile de los umbrales. În timpul fazei de vânzare a produsului ecranul se va folosi pentru ca utilizatorul să aibă un feedback imediat, sabiind că ceea ce a spus că a fost corect interpretat pentru garantarea.

Pasul 5: Audio

Audio
Audio
Audio
Audio

¡Sólo nos queda includeir the stage de audio a our project y ya tendremos our guante traductor de signos! Utilizăm DFPlayer mini MP3, ya que además de barato este increíblemente sencillo de utiliza. Necesitaremos unicamente los pins Tx y Rx de nuestro microcontrolador. Mediante o conexiune ca învăță la figura conectăm placa, el lector de tarjetas y nuestro altavoz:

Imagine
Imagine

Sin olvidar que el pin Tx del DFPlayer are nevoie de o rezistență de 1Kohm pentru funcționarea corectă. Pero nu totul poate fi fericit în acest lume; el Tx y Rx por defecto del microprocesador se utiliza para la entrada de datos del microUSB con el que lo estamos programando, por lo que queremos utilizarlo habría que conectarlo a una batería externa y comprobar que funcționează de esta forma. Ne pare o manieră puțin practică de funcționare, pentru ceea ce utilizăm următoarea bibliotecă:

github.com/DFRobot/DFRobotDFPlayerMini

Ce ne permite să utilizăm orice pin digital ca transmisor și receptor. En nuestro caso elegimos el 25 y el 26. Por lo tanto el code queda de la următoarea formă:

github.com/DFRobot/DFRobotDFPlayerMini

Acesta va fi codul final pe care îl folosim și toate funcțiile sunt deja implementate.

Pasul 6: Último Paso

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

Dacă am ajuns la acest pas care vrea să spun că doar nu trebuie să facem acest proiect portabil: conectându-ne microcontrolatorul cu o baterie ya putem desenați de computerul nostru. Un consiliu, dacă adăugăm un întrerupător în cablul pozitiv al alimentației putem încadra și apagarlo la voluntad. También es una good idea coser un small bolsillo where poner toată electronica și că nu vrea să colgând, de la următoarea formă:

Imagine
Imagine

De aceasta forma ne asiguram ca el altavoz quede orientat spre palma de la mana. Astfel este cum rămâne proiectul pe care l-am propus:

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

Una mejora pe care o gustăm proponer este o corază care protejează electronica apei și a golurilor. Pentru un limbaj de semnale mai complet care permite un repertoriu de cuvinte mai complet serian necesare dosarilor care se comunică între sí. Por lo que otra de las mejoras ar fi implementarea sistemului de comunicări între cei guanți. La placa que hemos utilizado tiene un modulo de internet incorporado, lo que puede llegar a ser útil para esta tarea. De asemenea, se poate utiliza un mic modul BLE (Bluetooth Low Energy) pentru aceeași funcție, chiar se poate face de multe forme, ¡știu creativ!

Y finalmente nos gustaría despedirnos y agradeceros that se haya seguido until the final este project. Esperamos que le sirva a mucha gente y que nos mandéis de alguna forma el resultado de vuestro proyecto. Este mai mult, ne va încânta să verifiez dacă a implementat cele mai bune propuneri.

¡Mucha suerte y fuerza, compañeros!

Recomandat: