Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:amocanu:alexandru.mihai02 [2024/05/12 22:42]
alexandru.mihai02
pm:prj2024:amocanu:alexandru.mihai02 [2024/05/26 21:39] (current)
alexandru.mihai02
Line 6: Line 6:
 ===== Introducere ===== ===== Introducere =====
  
-Proiectul își propune realizarea unei mănuși capabile să identifice semnele specifice ASL (American Sign Language). În funcție de postura mâinii purtătorului,​ se va afișa pe ecran litera ​corespunzătoare semnului interpretat. ​+Proiectul își propune realizarea unei mănuși capabile să identifice semnele specifice ASL (American Sign Language). În funcție de postura mâinii purtătorului,​ se va afișa pe ecran mesajul ​corespunzătoare semnului interpretat. ​
  
 Acest proiect este util, considerând că la momentul actual există un suport tehnologic limitat pentru persoanele cu deficiențe auditive în vederea comunicării cu alte persoane care nu cunosc limbajul. În plus, acest proiect prezintă o foarte mare scalabilitate,​ putând fi introduse noi semne sau mecanisme în vederea învățării autonome a unor expresii din limbaj.  ​ Acest proiect este util, considerând că la momentul actual există un suport tehnologic limitat pentru persoanele cu deficiențe auditive în vederea comunicării cu alte persoane care nu cunosc limbajul. În plus, acest proiect prezintă o foarte mare scalabilitate,​ putând fi introduse noi semne sau mecanisme în vederea învățării autonome a unor expresii din limbaj.  ​
Line 17: Line 17:
  
  
-{{:​pm:​prj2024:​amocanu:​schemablockpm.jpg?​700 |}} +{{:​pm:​prj2024:​amocanu:​schemablockpm.jpg?​800 |}}
  
 În vederea realizării proiectului vor exista 2 etape principale. ​ În vederea realizării proiectului vor exista 2 etape principale. ​
Line 46: Line 45:
  
 === Descrierea circuitului === === Descrierea circuitului ===
 +
 +Alimentarea se realizează prin intermediul USB-ului integrat în placa microcontroller-ului și generează o tensiune de 5V pentru toate componentele sistemului.
  
 Pinii analogici ai microcontroller-ului (A0-A4) determină tensiunea corespunzătoare care cade peste fiecare flex sensor. Pentru a măsura tensiunea corespunzătoare fiecare flex sensor este pus în serie cu o rezistență de 10kOhm, creându-se astfel un divizor de tensiune ce determină semnalul analogic preluat. Pinii analogici ai microcontroller-ului (A0-A4) determină tensiunea corespunzătoare care cade peste fiecare flex sensor. Pentru a măsura tensiunea corespunzătoare fiecare flex sensor este pus în serie cu o rezistență de 10kOhm, creându-se astfel un divizor de tensiune ce determină semnalul analogic preluat.
  
-Pinii digitali ai microcontroller-ului (D8-D12) sunt legați la display-ul LCD pentru a putea afișa pe ecran litera dorită. Momentan circuitul este configurat pentru a afișa Unknown în cazul în care litera nu este recunoscută sau A în cazul în care se recunoaște aceasta literă. În plus, pentru a regla intensitatea display-ului LCD, am adăugat un potențiometru pe care l-am reglat astfel încât informația afișată să fie clară.+Pinii digitali ai microcontroller-ului (D7-D12) sunt legați la display-ul LCD pentru a putea afișa pe ecran litera dorită. Momentan circuitul este configurat pentru a afișa ​'Unknown' ​în cazul în care litera nu este recunoscută sau 'A' ​în cazul în care se recunoaște aceasta literă. În plus, pentru a regla intensitatea display-ului LCD, am adăugat un potențiometru pe care l-am reglat astfel încât informația afișată să fie clară.
  
 === Decizii de implementare hardware === === Decizii de implementare hardware ===
Line 55: Line 56:
 Am decis a coase flex senzorii de mănușă pentru a asigura totuși o mobilitate corespunzătoare mâinii (în cazul în care aceștia ar fi fost lipiți de mănușă, mișcarea ar fi fost limitată și ar fi putut să se rupă). Cablarea a constituit o problemă pentru că pinii senzorilor sunt foarte fragili și lipirea lor efectivă cu pastă conductoare nu a adus rezultatul dorit (nu se închidea circuitul). Așadar am ales de a sertiza 3 dintre senzorii, iar ceilalți 2 au fost lipiți simplu pentru a fixa cablurile de senzori. Am decis a coase flex senzorii de mănușă pentru a asigura totuși o mobilitate corespunzătoare mâinii (în cazul în care aceștia ar fi fost lipiți de mănușă, mișcarea ar fi fost limitată și ar fi putut să se rupă). Cablarea a constituit o problemă pentru că pinii senzorilor sunt foarte fragili și lipirea lor efectivă cu pastă conductoare nu a adus rezultatul dorit (nu se închidea circuitul). Așadar am ales de a sertiza 3 dintre senzorii, iar ceilalți 2 au fost lipiți simplu pentru a fixa cablurile de senzori.
  
-===== Software Design =====+=== Mănușa în stare nefuncțională ​=== 
 +{{ :​pm:​prj2024:​amocanu:​sign_language_glove_functional.jpeg?​300 |}}
  
 +=== Mănușa în stare funcțională ===
 +{{ :​pm:​prj2024:​amocanu:​sign_language_glove_nefunctional.jpeg?​300 |}}
 +
 +===== Software Design =====
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +  ​Mediu de dezvoltare: ArduinoIDE
-  ​mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR) +  * Biblioteci utilizate: LiquidCrystal,​ SoftwareSerial.
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
 +[[https://​youtu.be/​AeMXSBa2YGM|Demo - Youtube]]
 +=== Obținerea datelor ===
 +
 +Prima etapă reprezintă etapa de obținere a datelor pentru fiecare senzor și fiecare mesaj. În acest scop, am decis ca fiecare semn să fie măsurat de câte minim 5 ori (întrucât,​ în cazul existenței unui outlier, măsurătoarea este eliminată și refăcută). Datorită modului de implementare a divizorului de tensiune, valorile oferite de senzori se află între 180 și 320, fiind o plajă suficient de largă pentru a putea eșantiona fiecare mesaj.
 +
 +De asemenea, înainte fiecărei măsurători este necesară o calibrare mecanică a mănușii pentru a avea certitudinea că senzorii se află într-o poziție corespunzătoare.
 +
 +=== Prelucrarea datelor ===
 +
 +Pentru fiecare senzor și semn, am determinat media și deviația standard a valorilor obținute. Aceste valori sunt folosite pentru a determina un interval de încredere a măsurătorilor pentru un semn corespunzător,​ conform următoarei formule: [mean - 3 * std, mean + 3 * std] pentru fiecare senzor. În urma unei analize atente, am observat că intervalele respective sunt disjuncte, astfel încât fiecare semn este unic determinat.
 +
 +=== Interpretarea semnelor ===
 +
 +A doua etapă constă în identificarea semnelor pe baza unor măsurători aleatorii. Pentru fiecare semn și senzor, avem stocate în cadrul unor liste valorile mediei și deviației standard, urmând ca să iterăm prin aceste valori și să identificăm care dintre ele se potrivesc corespunzător semnului propus.
 +
 +În cazul în care nu se obține o măsurătoare corectă, se afișează un mesaj pe eroare pe display.
 +
 +{{ :​pm:​prj2024:​amocanu:​pm_signs.jpeg?​600 |}}
 +
 +=== Implementare și mențiuni ===
 +
 +Proiectul se folosește de următoarele laboratoare în vederea realizării:​
 +  * Lab0: GPIO
 +  * Lab1: USART
 +  * Lab2: Întreruperi
 +  * Lab3: Timere
 +  * Lab6: I2C
 +
 +Am configurat timerul 1 al microcontroller-ului să genereze o întrerupere la fiecare secunda în vederea citirii senzorilor și interpretării semnelor corespunzătoare.
 +
 +Display-ul LCD a fost configurat conform sample-ului din bibliografie. La fiecare secundă mesajul curent este șters, iar un nou mesaj este afișat conform semnului identificat. De asemenea, mesajul este afișat și pe serială, metodă utilizată în timpul procesului de debug și identificare a valorilor extreme.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Device-ul este capabil să identifice 10 semne conform ASL: 
-Care au fost rezultatele obţinute ​în urma realizării proiectului vostru. +  * STAND-BY 
-</​note>​+  * PERFECT 
 +  * I LOVE YOU 
 +  * LATER 
 +  * NO 
 +  * YES 
 +  * QUESTION 
 +  * THAT 
 +  * GOOD JOB 
 +  * YOU 
 + 
 +Implementarea device-ului este fiabilă, intervalele de încredere pentru valorile senzorilor fiind generoase ​în vederea identificării semnelor.
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Proiectul vine în ajutorul persoanele cu deficiente auditive pentru a le oferi un sprijin în comunicare. Acesta reprezintă un prototip și poate fi extins din mai multe considerente:​ pot fi adăugate semne noi într-un mod foarte facil folosind implementarea modulului de învățare,​ cât și integrarea unor modele de învățare automată pentru identificarea unor semne noi.
  
-<note warning>​ +Prezintă o vastă aplicabilitate în domeniul medicinei, atât pentru persoanele ​cu deficiențe auditive cât și în vederea recunoașterii mișcărilor degetelorDe asemeneapoate fi folosită în vederea implementării unor module de automatizare a mișcărilor în jocuri (VR).
-O arhivă (sau mai multe dacă este cazul) ​cu fişierele obţinute ​în urma realizării proiectului:​ surse, scheme, etcUn fişier READMEun ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +===== Download =====
-</​note>​+
  
-===== Jurnal =====+Codurile sursă, cât și datele înregistrate se găsesc în următoarea arhivă.
  
-<note tip> +{{:​pm:​prj2024:​amocanu:​pm_project.zip|}}
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<note+<html><​a class="​link"​ href="​https://​www.optimusdigital.ro/​en/​others/​3401-flex-sensor-22-.html">​Flex sensor 2.2"</​a></​html
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+ 
-</note>+<​html><​a class="​link"​ href="​https://​www.plusivo.com/​electronics-kit/​88-plusivo-microcontroller-super-starter-kit-196-pcs.html">​Arduino super starter kit</​a></​html>​ 
 + 
 +<​html><​a class="​link"​ href="​https://​th.bing.com/​th/​id/​OIP.j151v1pDyyKrSVRp6rckRwAAAA?​rs=1&​pid=ImgDetMain">​Sign language signs</​a></​html>​ 
 + 
 +<​html><​a class="​link"​ href="​https://​en.wikipedia.org/​wiki/​Sign_language">​Sign language</​a>​</html>
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2024/amocanu/alexandru.mihai02.1715542957.txt.gz · Last modified: 2024/05/12 22:42 by alexandru.mihai02
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0