This is an old revision of the document!


MP3 Player

Autor

Urse Adrian Dinu

Grupa: 331CC

Introducere

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.

Download

Cod sursa: mp3player.zip GitHub

Jurnal

  • 25.03.2022 - Cumparare piese
  • 10.04.2022 - Asamblare piese si testare
  • 02.05.2022 - Finalizare documentatie M1
  • 21.05.2022 - Adaugare buton si testare
  • 27.05.2022 - Finalizare documentatie M2

Bibliografie/Resurse

pm/prj2022/sgherman/mp3player.1654084325.txt.gz · Last modified: 2022/06/01 14:52 by adrian_dinu.urse
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