This shows you the differences between two versions of the page.
pm:prj2025:vstoica:noela_elena.pirleci [2025/05/14 20:15] noela_elena.pirleci |
pm:prj2025:vstoica:noela_elena.pirleci [2025/05/29 21:48] (current) noela_elena.pirleci |
||
---|---|---|---|
Line 39: | Line 39: | ||
** Schema electrica ** | ** Schema electrica ** | ||
- | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/vstoica/schema-electrica-JukeBox.png}} | + | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/vstoica/schema-electrica-finala-jukebox.png}} |
** Componente hardware utilizate ** | ** Componente hardware utilizate ** | ||
Line 50: | Line 50: | ||
2. Modul RFID MFRC5222 | 2. Modul RFID MFRC5222 | ||
* Modul utilizat pentru identificarea tag-urilor cardurilor RFID pentru alegerea melodiei ce urmeaza sa fie redata | * 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 16x2 | ||
+ | * 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 | ||
+ | |||
+ | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/vstoica/jukebox-breadboard.jpg?800x600}} | ||
+ | |||
+ | 14.05.2025: Incepere lipire componente pe PCB | ||
+ | |||
+ | 21.05.2025: Finalizare PCB + scriere cod pentru JukeBox | ||
+ | |||
+ | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/vstoica/jukebox-pcb1.jpg?500x350}} | ||
+ | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/vstoica/jukebox-pcb2.jpg?500x350}} | ||
+ | |||
+ | 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: {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/vstoica/cod_jukebox.zip}} | ||