Differences

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

Link to this comparison view

pm:prj2023:avaduva:hand_wave_cinema [2023/05/21 19:46]
teodora.stroe2210 [Functii]
pm:prj2023:avaduva:hand_wave_cinema [2023/05/30 12:04] (current)
teodora.stroe2210 [Jurnal]
Line 58: Line 58:
    - Arduino:    - Arduino:
         * void **setup()**:​         * void **setup()**:​
-             * seteaza viteza pentru transmisia de date +             * seteaza viteza pentru transmisia de date; 
-             * configureaza pinii I/O pentru senzori, buton si led +             * configureaza pinii I/O pentru senzori, buton si led; 
-             * initializeaza si configureaza display-ul OLED+             * initializeaza si configureaza display-ul OLED;
         * void **loop()**:         * void **loop()**:
-             * detecteaza daca butonul a fost apasat si face toggle la variabila de stare a interpretarii gesturilor +             * detecteaza daca butonul a fost apasat si face toggle la variabila de stare a interpretarii gesturilor; 
-             * daca interpretarea gesturilor este blocata, ecranul nu afiseaza niciun mesaj si led-ul de pe placuta Arduino este aprins+             * daca interpretarea gesturilor este blocata, ecranul nu afiseaza niciun mesaj si led-ul de pe placuta Arduino este aprins;
              * altfel:              * altfel:
-                  * se calculeaza distantele dintre senzori si maini +                  * se calculeaza distantele dintre senzori si maini; 
-                  * se verifica detectia ambelor maini, si daca comanda **EXIT** a fost detectata, se inchide programul +                  * se verifica detectia ambelor maini, si daca comanda **EXIT** a fost detectata, se inchide programul; 
-                  * daca o singura mana a fost detectata, se interpreteaza gesturile mainii respective+                  * daca o singura mana a fost detectata, se interpreteaza gesturile mainii respective;
         * int **compute_distance(int trigger, int echo)**:         * int **compute_distance(int trigger, int echo)**:
-             * calculeaza distanta pana la obiect pe baza formulei: ''​time_taken * 0.034 / 2''​ +             * calculeaza distanta pana la obiect pe baza formulei: ''​time_taken * 0.034 / 2''​; 
-             * returneaza valoarea distantei, distanta maxima acceptata fiind __50cm__+             * returneaza valoarea distantei, distanta maxima acceptata fiind __50cm__;
         * void **get_hands_distances()**:​         * void **get_hands_distances()**:​
-             * calculeaza, pentru fiecare mana, distanta pana la senzor+             * calculeaza, pentru fiecare mana, distanta pana la senzor;
         * void **display_message(const char *message)**:​         * void **display_message(const char *message)**:​
-             * afiseaza centrat mesajul pe display+             * afiseaza centrat mesajul pe display;
         * int **detect_both_hands()**:​         * int **detect_both_hands()**:​
-             * daca ambele maini se afla la o distanta intre __40-50cm__,​ se afiseaza (ecran, serial) mesajul "​**Play/​Pause**"​ si returneaza 0 +             * daca ambele maini se afla la o distanta intre __40-50cm__,​ se afiseaza (ecran, serial) mesajul "​**Play/​Pause**"​ si returneaza 0; 
-             * daca ambele maini se alfa la o distanta mai mica de __12cm__, se afiseaza (ecran, serial) mesajul "​**EXIT**"​ si returneaza 1+             * daca ambele maini se afla la o distanta mai mica de __12cm__, se afiseaza (ecran, serial) mesajul "​**EXIT**"​ si returneaza 1;
         * void **detect_left_hand()**:​         * void **detect_left_hand()**:​
-             * face lock pe mana stanga, daca se afla la o distanta intre __12-17cm__+             * face lock pe mana stanga, daca se afla la o distanta intre __12-17cm__;
              * cat timp mana nu se departeaza la mai mult de __40cm__ de senzor:              * cat timp mana nu se departeaza la mai mult de __40cm__ de senzor:
-                  * daca mana s-a apropiat, este afisata comanda "​**Volume DOWN**"​ +                  * daca mana //s-a apropiat//, este afisata comanda "​**Volume DOWN**"​; 
-                  * daca mana s-a departat ​de senzor, este afisata comanda "​**Volume UP**"+                  * daca mana //s-a departat//, este afisata comanda "​**Volume UP**";
         * void **detect_right_hand()**:​         * void **detect_right_hand()**:​
-             * face lock pe mana dreapta, daca se afla la o distanta intre __12-17cm__+             * face lock pe mana dreapta, daca se afla la o distanta intre __12-17cm__;
              * cat timp mana nu se departeaza la mai mult de __40cm__ de senzor:              * cat timp mana nu se departeaza la mai mult de __40cm__ de senzor:
-                  * daca mana s-a apropiat, este afisata comanda "​**Rewind**"​ +                  * daca mana //s-a apropiat//, este afisata comanda "​**Rewind**"​; 
-                  * daca mana s-a departat ​de senzor, este afisata comanda "​**Forward**"​+                  * daca mana //s-a departat//, este afisata comanda "​**Forward**"​.
   - Python:   - Python:
-        * se creeaza o noua instanta de VLC Player +        * se creeaza o noua instanta de VLC Player; 
-        * se seteaza filmul in functie de inputul utilizatorului si se porneste playback-ul +        * se seteaza filmul in functie de inputul utilizatorului si se porneste playback-ul; 
-        * citeste mesajul de pe serial, afiseaza si executa comanda+        * citeste mesajul de pe serial, afiseaza si executa comanda
 + 
 +==== Pasi de utilizare: ==== 
 + 
 +  - Se pozitioneaza corespunzator senzorii, deasupra display-ului laptopului, si se conecteaza placuta Arduino. 
 +  - Se incarca sursa in microcontroler. 
 +  - Din directorul in care se afla scriptul de python, se porneste programul prin rularea comenzii: <​code>​ python3 home_wave_cinema.py 2> nul </​code>​ 
 +  - Utilizatorul alege unul dintre filmele disponibile,​ prin introducerea numarului corespunzator. 
 +  - Utilizatorul interactioneaza cu media player-ul prin gesturi: 
 +      * **Play/​Pause** - pozitionarea ambelor maini la o distanta cuprinsa intre __40-50cm__;​ 
 +      * **Volume DOWN** - pozitionarea mainii stangi la o distanta __12-17cm__ si //​apropierea//​ ei de senzor; 
 +      * **Volume UP** - pozitionarea mainii stangi la o distanta __12-17cm__ si //​departarea//​ ei de senzor; 
 +      * **Rewind** - pozitionarea mainii drepte la o distanta de __12-17cm__ si //​apropierea//​ ei de senzor; 
 +      * **Forward** - pozitionarea mainii drepte la o distanta de __12-17cm__ si //​departarea//​ ei de senzor. 
 +  - Daca in orice moment al rularii aplicatiei utilizatorul se decide sa opreasca interpretarea gesturilor, acesta trebuie sa apese butonul. Se va afisa un mesaj sugestiv in consola aplicatiei, nu se vor mai afisa mesaje pe display-ul OLED si led-ul de pe placuta Arduino va fi aprins. La inca o apasare de buton, interpretarea gesturilor va fi reluata. 
 +  - Atunci cand utilizatorul apropie ambele maini la o distanta mai mica de __12cm__ de senzori se primeste comanda de **EXIT** si programul este inchis.
 ===== Rezultat===== ===== Rezultat=====
  
-<note tip> +Un scurt demo al proiectului ​poate fi urmarit la urmatorul link:
-Care au fost rezultatele obţinute în urma realizării ​proiectului ​vostru.+
  
-[de incarcat videoclip] +[[https://​youtu.be/​IDsWs87Uzd8]]
-</note>+
  
 ===== Jurnal ===== ===== Jurnal =====
Line 105: Line 118:
   * 16.05.2023 - hardware design   * 16.05.2023 - hardware design
   * 21.05.2023 - software design   * 21.05.2023 - software design
 +  * 30.05.2023 - demo video
 ===== Resurse ===== ===== Resurse =====
  
pm/prj2023/avaduva/hand_wave_cinema.1684687568.txt.gz · Last modified: 2023/05/21 19:46 by teodora.stroe2210
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