Table of Contents

Audio Player

Autor: Anghel Cristiana-Andreea

Introducere

Proiectul constă în implementarea unui audio player care redă piese de pe un card SD precum un dispozitiv MP3.

Descriere generală

Plăcuța Arduino Uno va fi conectată la un ecran pe care va afișa detaliile melodiei și un difuzor pentru redarea melodiei.
Dispozitivul va îndeplini următoarele funcții:

Dacă piesa se termină, player-ul va trece la următoarea. Player-ul va funcționa în modul “repeat all songs”. Componentele vor fi conectate cu ajutorul firelor și breadboard-ului.

Hardware Design

Piese necesare

Schema Electrică

Software Design

Codul sursă se găsește mai jos în secțiunea Download.

Pentru a programa playerul, am folosit următoarele biblioteci și funcții:

Programul începe prin redarea primei melodii selectate. După ce o melodie se termină, playerul o va reda pe următoarea. Butoanele funcționează printr-o singură apăsare. De exemplu la prima apăsare a butonului de pauză se va pune pauză, dacă este apăsat iar va pune play. La o singură apăsare a butonului de next/back playerul va trece la următoarea/anterioarea melodie. Dacă playerul este pe pauză pe o melodie și este apăsat next/back, playerul începe redarea imediată a următoarei/anterioarei melodii, ieșind de pe starea de pauză.

Când playerul se află în starea play, pe primul rând al lcd-ului va fi afișat: “Now playing…”, iar pe starea pause: ” Paused ”. Pe al 2-lea rând va fi afișat numele melodiei redate (pe pauză sau nu). Pentru a afișa numele corect am creat un vector de chars, în care păstrez numele melodiilor citite de SD (nume diferit de numele original, datorită bibliotecii SD.h care nu afișează numele întreg) și în funcție de index-ul melodiei redate afișez numele melodiei. Astfel, pentru redarea altor melodii este necesară modificarea vectorului *song și afișării în funcție de index.

Rezultate Obţinute

Concluzii

A fost o experiență interesantă să sudez piese(nu credeam că voi face asta vreodată) și să construiesc un proiect atât pe partea hardware cât și pe cea software.
În ciuda problemelor cu piese greșite (SD shield) și conexiunile foarte sensibile care m-au încurcat la testare, m-am bucurat de proiectul obținut.
Cel mai mult mi-a plăcut să lucrez cu modulul I2C și LCD-ul cu biblioteca LiquidCrystal_I2C.h.

Download

Download pdf documentation

Download arduino code

Jurnal

17.05.2021: Dau comanda de piese.(inițial aveam un SD shield)
18.05.2021: Ajung piesele.
24.05.2021: Dau comanda de kit pentru sudat.
26.05.2021: Ajunge kit-ul și sudez modulul I2C la LCD, gnd și power(2 fire tată-tată) la difuzor și pinii la SD shield.
27.05.2021: Testez piesele și merg toate, înafara de SD shield care recunoaște cardul dar nu și partiția/fișierele.
28-29.05.2021: Continui sa formatez SD shieldul în diferite moduri și să folosesc diferite biblioteci pentru Arduino SD (ex: SDfat). Fără success.
02.06.2021: Cumpăr cititor microSD și testez că merge.
03.06.2021: Programez partea de butoane și logica redării.
04.06.2021: Realizez schema electrică în Eagle și termin documentația.

Bibliografie/resurse

Pentru a reda melodiile de pe SD card și pentru a conecta cititorul:
https://steemit.com/utopian-io/@kimp0gi/playing-music-in-arduino-using-sd-card-module

Pentru a verifica starea de pause/unpause și citirea unei singure apăsări de buton:
https://roboticsbackend.com/arduino-turn-led-on-and-off-with-button/

Pentru a conecta și afișa cu ajutorul modulului I2C si LCD:
https://www.instructables.com/How-to-Connect-I2C-Lcd-Display-to-Arduino-Uno/