JukeBox

1. Introducere

Descrierea proiectului:

Proiectul constă în realizarea unui JUKEBOX - o cutie muzicală bazată pe o placă compatibilă cu Arduino UNO. JUKEBOX-ul permite utilizatorului să selecteze o melodie printr-un card RFID, să controleze volumul melodiei cu un potenţiometru și să pornească sau să oprească muzica prin apăsarea unui buton. Un LCD afișează în timp real melodia redată, iar sunetul este reprodus printr-un difuzor conectat la un modul MP3 Player.

Scopul proiectului:

• Învățarea și integrarea mai multor protocoale de comunicație (SPI, UART, I2C) și a întreruperilor într-un proiect practic.

Ideea de la care am pornit:

• Dorința de a crea un dispozitiv interactiv și intuitiv pentru redarea de muzică, folosind tehnologii RFID și control manual al volumului.

2. Descriere generală

Schemă bloc

3. Hardware Design

Lista componente

Schema electrica

Componente hardware utilizate

1. Placuta compatibila cu Arduino UNO(ATMega328P)

  • Microcontroller-ul principal
  • Functioneaza la tensiuni de 5V si dispune de 14 pini digitali, 6 pini analogici si 7 pini de alimentare
  • Are pini pentru interfetele I2C, UART si SPI

2. Modul RFID MFRC5222

  • Modul utilizat pentru identificarea tag-urilor cardurilor RFID pentru alegerea melodiei ce urmeaza sa fie redata
  • Interfata: SPI
Pin modul Conectat la pinul(de pe placa)
3V3 3V3
RST pin 9
GND GND
MISO pin 12
MOSI pin 11
SCK pin 13
SDA pin 10

3. Modul MP3 Mini DFPlayer

  • Modul folosit pentru redarea fisierelor .mp3 de pe cardul SD
  • Interfata: UART
Pin modul Conectat la pinul(de pe placa)
VCC 5V
RX pin 5
TX pin 6
SPK_1 pin + (difuzor)
GND GND
SPK_2 pin - (difuzor)

4. LCD 16×2

  • Ecran folosit pentru a afisa detalii despre melodia curenta
  • Interfata: I2C
Pin modul Conectat la pinul(de pe placa)
VCC 5V
GND GND
SDA SDA
SCL SCL

5. Buton start-stop

  • Folosit pentru a pune pauza si pentru a reporni o melodie
  • Conectat la pinul digital 2 al placutei

6. Difuzor

  • Conectat la iesirea SPK_1/SPK_2 a modulului MP3 Player

7. Potentiometru

  • Folosit pentru a modifica nivelul volumului pentru melodii
  • Interfata: ADC
  • Conectat la VCC(5V), GND si pinul A0

4. Software Design

Descrierea codului aplicatiei

Aplicatia are ca scop principal redarea melodiilor in functie de cardurile RFID alese de utilizator si scanate. JukeBox-ul utilizeaza un DFPlayer Mini pentru redarea melodiilor, un LCD pentru interactiune vizuala si un senzor RFID MFRC522 pentru scanarea si detectarea cardurilor.

Functionalitatile principale sunt:

  • Detectarea unui card RFID care are un identificator unic;
  • Asocierea cardului RFID cu o melodie de pe cardul SD;
  • Redarea sau intreruperea melodiei prin intermediul unui buton;
  • Afisarea starii curente pe un LCD(exemplu: “Playing…”, “Stopped song.”);
  • Ajustarea volumului melodiei in timp real prin intermediul unui potentiometru.

Ca mediu de dezvoltare am ales platforma Arduino IDE, iar bibliotecile utilizate de mine sunt:

  • DFRobotDFPlayerMini - utilizata in controlul volumului, redarea si oprirea melodiilor;
  • LiquidCrystal_I2C.h - utilizata in controlul afisajului;
  • SPI.h - utilizata pentru comunicatia SPI necesara pentru modulul RFID;
  • MFRC522.h - utilizata pentru scanarea cardurilor RFID.

Strategii de implementare

  • Identificare card RFID - Pentru fiecare card RFID am verificat identificatorul unic al acestuia(UID-ul) si am stocat aceste date intr-un vector de string-uri cards_UIDs[10]. Pentru fiecare card scanat, se face o cautare in vector, iar daca se gaseste o asociere, se reda melodia corespunzatoare.
  • Evitarea repetarii aceleiasi melodii - Daca se scaneaza acelasi card ca si cel scanat anterior, atunci melodia nu se va intrerupe, ci isi va continua flow-ul natural.
  • Controlul volumului - Cu ajutorul potentiometrului conectat la un pin analogic, se face o mapare intre valoarea acestuia si nivelul volumului.
  • Redarea/Intreruperea unei melodii - Prin intermediul butonului start/stop este redata sau intrerupta melodia selectata in acel moment.

Pentru vizualizarea codului, voi adauga o arhiva cu acesta la finalul paginii.

5. Rezultate obtinute

In urma finalizarii proiectului, am obtinut un JukeBox functional, capabil sa redea melodii selectate prin intermediul unor carduri RFID. Atat componentele hardware, cat si cea software au fost integrate cu succes, iar comportamentul final al produsului respecta cerintele initiale.

6. Jurnal

23.04.2025: Confirmare finală temă proiect

25.04.2025: Comandă componente hardware

30.04.2025: Verificare individuală a componentelor

09.05.2025: Realizare schema electrica

10.05.2025: Verificare ale componentelor impreuna, sub forma “finala” a produsului( varianta pe breadboard) + forma schematica a codului, menita sa testeze functionalitatile de baza

jukebox-breadboard.jpg

14.05.2025: Incepere lipire componente pe PCB

21.05.2025: Finalizare PCB + scriere cod pentru JukeBox

jukebox-pcb1.jpg jukebox-pcb2.jpg

23.05.2025: Finalizare parte de cod

25.05.2025: Masurare dimensiuni pentru cutie + proiectare cutie

29.05.2025: Finalizare ultimele detalii ale proiectului

Aici se afla un videoclip cu produsul final: https://youtube.com/shorts/UFc1QdXYftI?si=3eSySxjhAdf1KRWv

Codul sursa: cod_jukebox.zip

pm/prj2025/vstoica/noela_elena.pirleci.txt · Last modified: 2025/05/29 21:48 by noela_elena.pirleci
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