Scopul proiectului este realizarea unui MP3 Player care poate
sa redea melodiile stocate pe un MicroSD. Fluxul melodiilor este
controlat prin gesturi, iar volumul printr-un potentiometru.
Descriere generală
Senzorul de gesturi va detecta miscarile mainii.
In functie de gestul facut, player-ul va trece la urmatoarea melodie, se intoarce la melodia anterioara, va pune pauza, va relua redarea.
Player-ul va afisa pe ecranul LCD fiecare operatie si melodia curenta.
Pentru a controla volumul, se va folosi potentiometrul liniar.
Schema bloc
Hardware Design
Lista de componente:
Arduino UNO
DFPlayer Mini MP3 Player
Senzor gesturi APDS-9960
LCD 1602
Modul I2C
Potentiometru liniar
Difuzor 1W
LED RGB
Buton
Schema electrica
Software Design
Am folosit ca mediu de dezvoltare Arduino IDE 1.8.20.
Biblioteci utilizate
SoftwareSerial.h - pentru comunicarea seriala cu DFPlayer Mini
DFRobotDFPlayerMini.h - driver pentru DFPlayer Mini
SparkFun_APDS9960.h - pentru setarea senzorului de gesturi
LiquidCrystal_I2C.h - pentru ecranul LCD
Structura codului
Functia setup
Initializez interfata seriala
Initializez portul serial pentru comunicarea cu DFPlayer Mini
Adaug rutina de intrerupere pentru senzorul de gesturi
Initializez senzorul de gesturi
Pornesc senzorul de gesturi
Intializez comunicarea cu DFPlayer Mini
Initializez butonul
Initializez LED-ul RGB
Functia print_song
Afiseaza pe ecranul LCD numele melodiei, in functie de pozitia data ca parametru.
Functia handleGesture
Functie care citeste gesturile detectate de senzor
UP - afisez NEXT pe ecran pentru 1 sec si trec la urmatoarea melodie
DOWN - afisez BACK pe ecran pentru 1 sec si revin la melodia anterioara
LEFT - afisez PAUSE pe ecran si pun pauza
RIGHT - afisez UNPAUSE pe ecran si reiau redarea
Functia RGB_color
Functie care seteaza culoarea LED-ULUI RGB
Functia loop
Citesc butonul. Daca a fost apasat, comut starea player-ului.
Daca player-ul este pornit:
La fiecare 500ms setez alta culoare pentru LED-ul RGB
Citesc valoarea potentiometrului si setez volumul
Afisez numele melodiei curente pe ecran
Daca s-a detectat un gest, apelez handleGesture pentru a procesa gestul facut
Daca player-ul a fost oprit:
Afisez pe ecran “MP3 Player OFF”
LED-ul RGB este stins
Rezultate Obţinute
Demo
Daca videoclipul nu se incarca, folositi acest link.