Jukebox

Autor: Adrian-Tudor Dumitrescu

Introducere

Proiectul va implementa un Jukebox care va avea un playlist de melodii. Exista butoane de play/next/shuffle/back si un meniu pentru a alege melodia. Melodiile vor fi redate printr-un buzzer. In timp ce este redata o melodie se va afisa numele ei. Exista si posibilitatea de inregistrare a unei secvente proprii de sunete(butoanele devin sunete), melodie care se va adauga in lista de cantece.

Utilitate, inspiratie si functii

Am pornit de la ideea de a transforma melodii actuale intr-o forma mai electrica, 8-bit.Consider ca proiectul are o utilitate variata deoarece pot fi adaugate constant functionalitati de afisare, navigare, redare melodii si lucru cu cardul de memorie/butoane. Cu ajutorul butoanelor se navigheaza prin meniuri(deocamdata nu am lipit lcd-ul si butoanele astfel incat sa se stie fiecare ce face). Procesul decizional si pasii de functionare:

Hardware Design

Scema electrica se alfa si pe Tinkercad aici.

Modulul Micro SD se afla in imaginea de mai jos alaturi de un adaptor pentru care pentru a adauga melodii in laptop:

Am folosit un ecran LCD cu modul I2C pentru a minimiza pinii folositi la arduino pentru controlarea LCD. Modulul are si un potentiometru pentru intensitatea luminoasa pe spate si pini de GND,VCC,SDA,SCL:

Software Design

Proiectul a fost dezvoltate in Arduino IDE.

Am folosit o biblioteca pentru controlarea LCD-ului cu I2C LiquidCrystal_I2C reprezentand o extensie a biblioteci normale LiquidCrystal.Deasemenea, am folosit pentru comunicarea cu modulul Micro SD 2 biblioteci din Arduino IDE SPI.h si SD.h.

jukebox.txt

Functii

Functia play() citeste din cardul SD, cu ajutorul https://www.arduino.cc/en/Reference/FileRead ,fisierele reprezentand melodii(in ordine sau random) pana cand se apasa butonul de “back” sau pana se termina melodiile.Melodiile sunt stocate in forma urmatoare(nota urmata de tipul ei): game.txt.

Functia record() retine butoanele apasate ca note si le scrie, cu ajutorul https://www.arduino.cc/en/Reference/FilePrintln,intr-un fisier nou creat in card. Deocamdata nu se poate alege tempo-ul sau durata fiecarei note, functionalitati ce pot fi adaugate ulterior.

In loop se verifica pe rand butoanele daca sunt apasate si in functie de variabila state, care reprezinta in ce stadiu/meniu se afla programul, se afiseaza/apeleaza corespunzator.

Rezultate

Functionalitatea proiectului se gaseste intr-un demo aici, alaturi de imaginile cu proiectul general si legarea butoanelor cu rezistente.

Concluzii

Un proiect interesant, distractiv de facut, mai ales ca incepusem deja sa ma joc cu LCD-urile si buzzerele. Modulul Micro SD uneori nu se conecteaza si am stat destul de mult pe el sa il leg, dar in general am stat cu placere sa verific componentele si sa incerc sa le aranjez.Totodata, il folosesc sa tot incerc noi melodii sa pun pe el sa vad cum s-ar auzi si ce as putea sa schimb. Ce m-a motivat de la inceput e tocmai acest fapt, posibilitatile sunt infinite, de la melodii la functionalitati.

Download

Jurnal

19.04 - Comanda piese

29.04 - Testarea pieselor individuale

02.05 - Comanda LCD nou (aveam de 16×2 inainte)

10.05 - Prima asamblare a proiectului

12.05 - Dezvoltare functionalitati software

20.05 - Comanda Modul Micro SD (am realizat ca nu pot retine melodiile global)

25.05 - Adaugare modul la proiect si testare

01.06 - Finisare proiect si pagina Wiki

Bibliografie/Resurse

pm/prj2021/avaduva/jukebox.txt · Last modified: 2021/06/02 16:28 by adrian.dumitrescu99
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