Remote Music Player

Autor: Micuț Andrei-Ion

Introducere

In acest proiect doresc redarea melodiilor cu ajutorul unei telecomenzi de televizor. Atunci cand o melodie porneste, notele sale muzicale vor fi vor fi proiectate in led-urile ce se vor aprinde in functie de acestea, iar timpul de iluminare va fi dat de durata notelor sau doar vor ilumina daca butonul asignat pentru mute a fost apasat. De asemenea voi putea sa dau skip melodiei curente sau sa ma duc la urmatoarea melodie. Ideea care sta la baza acestui proiect este un casetofon vechi cu CD-uri si cu telecomanda. Consider ca, un asemenea proiect este util, deoarece daca dorim sa ascultam muzica fara sa ne mai deplasam din loc si avem la indemana o telecomanda, este cel mai potrivit, iar jocul de lumini creeaza o atmosfera aparte.

Descriere generala

Utilizatorul va apasa pe un buton al telecomenzii, iar aceasta va trimite o unda magnetica ce va fi receptata de receptorul conectat pe breadboard la arduino. In functie de ce tasta a fost apasata va fi redata si melodia asignata acesteia (acelui cod in hexa). Dupa ce arduino analizeaza ce melodie dorim sa redam, buzzer-ul va incepe sa redea melodia, iar, intre timp, led-urile vor fi iluminate in functie de nota muzicala si vor ramane asa atata timp cat dureaza si nota sau doar led-urile isi vor continua jocul de lumini fara buzzer daca butonul de mute este activat. Daca dorim sa sarim peste o melodie, atunci vom apasa butonul corespunzator de pe breadboard ce va trece la urmatoarea melodie, iar in cazul in care dorim sa revenim la melodia anterioara, vom actiona butonul corespunzator de pe breadboard.

Diagrama bloc:

Hardware Design

Lista componente
Nume componenta Cantitate Valori
Arduino UNO R3 1
BreadBoard 1
Receptor (dioda) 1
Telecomanda de televizor Samsung 1
Buzzer pasiv 1 5V
LED 5mm roșu 1 1.63 ~ 2.03V
LED 5mm galben 1 2.10 ~ 2.18V
LED 5mm albastru 1 2.48 ~ 3.7V
Buton 3
Rezistenta 3
Fire mama-tata
Fire tata-tata

Schema electrica

Software Design

Acest proiect a fost dezvoltat in Arduino (vers. 1.8.12), unde mi-am inclus urmatoarele:

  • pitches.h - contine toate notele muzicale necesare
  • themes.h - contine 4 melodii, fiecare melodie avand un array de note si unul ce ne indica durata fiecarei note
  • IRremote.h - folosit pentru a reusi sa realizez legatura intre telecomanda si arduino prin intermediul acestei biblioteci si a emitatorului de la telecomanda impreuna cu receptorul conectat la arduino
  • avr/io.h - include definitiile I/O corespunzatoare dispozitivului
  • avr/wdt.h - declara interfata unor macrocomenzi inline care gestioneaza cronometrul watchdog-ului prezent in multe dispozitive AVR; pentru a preveni modificarea accidentala configuratiei temporizatorului de supraveghere de catre o aplicatie care se blocheaza

Implementarea este structurata in functii pentru fiecare melodie in parte, o functie de verificare a comenzii, setup si loop. In cadrul functiei pentru fiecare melodie am o bucla pentru a parcurge fiecare nota, iar in cadrul ei spun cat dureaza o nota, cat de mare sa fie pauza dintre note si starea butonului de pe breadboard. Cele 3 led-uri vor fi iluminate secvential. In functie de starea butonului (activ/inactiv), buzzer-ul va reda melodia acompaniat de cele 3 led-uri sau notele muzicale vor putea fi observate doar prin iluminarea led-urilor. De asemenea, vor mai fi 2 butoane pe breadboard ce imi vor permite sa redau melodia anterioara sau melodia ulterioara. La finalul melodiei, iluminarea se va opri dupa un mic delay.

In functia de verificare a comenzii, ma voi folosi de biblioteca IRremote pentru a decodifica semnalele trimise de emitatorul telecomenzii catre receptorul conectat la arduino. In functie de valoarea comenzii in hexa, o melodie va fi redata.

In setup stabilesc inputul si outputul aferent proiectului.

In functia loop voi verifica ce tasta a fost apasata (codul hexa corespunzator unei taste), iar in functie de aceasta, se va intra intr-o stare corespunzatoare unei melodii.

Rezultate Obtinute

Video cu functionalitatea proiectului: https://youtu.be/CdfegasW6bk

Concluzii

A fost o experienta unica si distractiva, deoarece majoritatea componentelor au fost procurate legit, insa receptorul a fost smuls de pe o placa de baza a unui televizor vechi. Una dintre singurele materii la care putem lucra, la propriu, cu componentele, urmand astfel meseria si pe care o avem, cea de inginer.

Download

Bibliografie/Resurse

pm/prj2021/avaduva/remotemusicplayer.txt · Last modified: 2021/05/27 23:11 by andrei_ion.micut
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