This is an old revision of the document!
Gesture controlled music player
Introducere
Proiectul oferă posibilitatea utilizatorului de a controla volumul și melodia curentă prin intermediul unui set de gesturi predefinite.
Scopul proiectului este de a oferi o alternativă mai interactivă a acestor acțiuni.
Ideea a venit ca urmare a faptului că ascult muzică constant și folosirea unor comenzi de acest tip ar fi facilă.
Proiectul ar fi util în situații asemănătoare sau în cazul calculatoarelor care nu dispun de dispozitive periferice.
Descriere generală
Se inițiază comunicarea cu Python prin intermediul portului ales.
2 notificări de tip toast vor apărea pe ecranul calculatorului odată ce aceasta s-a realizat.
Pentru a porni sistemul de recepționare a gesturilor, utilizatorul trebuie să țină ambele mâini în fața celor doi senzori.
Odată pornit, unul dintre următoarele gesturi poate fi ales:
ambele mâini în fața senzorilor ⇒ play/pause în funcție de stadiul melodiei curente
numai o mână în fața senzorului din stânga:
pentru mai puțin de 0,5 secunde ⇒ swipe left (se trece la melodia anterioară din playlist)
pentru mai mult de 0,5 secunde ⇒ volume down
numai o mână în fața senzorului din dreapta:
pentru mai puțin de 0,5 secunde ⇒ swipe right (se trece la melodia următoare din playlist)
pentru mai mult de 0,5 secunde ⇒ volume up
Gesturile vor fi recepționate numai după apariția imaginii de clepsidră pe matricea de LED-uri.
Pentru fiecare gest se va afișa un icon sugestiv pe matricea de LED-uri.
Fiecare gest va fi transmis mai departe programului Python care va realiza acțiunea prin intermediul bibliotecii PyAutoGUI.
Hardware Design
Listă de componente
Arduino UNO
Mini breadbord
2 Senzori ultrasonici HC-SR04
Modul cu matrice de LED-uri MAX7219
Multe fire
Suport
Schemă electrică
Software Design
Mediu de dezvoltare:
PyCharm
Arduino IDE
Librării și surse 3rd-party:
Python:
time pentru funcția sleep
serial pentru comunicația serială
pyautogui pentru realizarea acțiunilor menționate prin automatizare
GUI
win10toast pentru notificările de tip toast
Arduino:
Fișiere sursă:
Python: main.py
Arduino: main.ino
Rezultate obținute
acuratețe destul de crescută a recunoașterii gesturilor
senzorii de distanță funcționează foarte bine în majoritatea cazurilor, cu excepția unor cazuri când la distanță foarte mică genrează valori foarte mari eronate
pentru a include mai multe acțiuni/gesturi, ar trebui mărit numărul de senzori folosiți
Poze proiect
Demo
Concluzii
a fost foarte interesant să văd cum Arduino poate fi conectat cu Python
prin Python putem folosi algoritmi, structuri de date și librării mai complexe cu care putem prelucra datele capturate de senzori
per total, un prooiect foarte util prin care am putut să facem ceva și fizic
Download
Bibliografie/Resurse