MP3 Player

Autor

Urse Adrian Dinu

Grupa: 331CC

Introducere

Fiind pasionat de muzica, am ales sa realizez un MP3 Player care poate sa redea melodii stocate pe un card MicroSD. Scopul proiectului este familiarizarea cu Arduino UNO si modul in care componentele folosite interactioneaza cu acesta. 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, revine 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. Pentru a porni player-ul, se apasa pe buton.

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.

Concluzii

In concluzie, proiectul a fost experienta placuta si o oportunitate de a folosi cunostintele acumulate la orele de laborator si curs.

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.txt · Last modified: 2022/06/01 21:46 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