Andreea BEJGU - Vumetru de baza

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta in redarea unei melodii si sincronizarea jocului de lumini pe o matrice de leduri (4×4) in functie de frecventele redate.

Am pornit de la ideea unui vumetru, insa am simplificat aprinderea LED-urilor pentru o singura valoare a unei frecvente la un moment dat.

Descriere generală

Schema bloc

schema-gen.jpg

Butonul de Start porneste difuzorul si aprinderea LED-urilor. Pentru a le opri se apasa butonul de Reset de pe placuta de baza, dupa care la apasarea butonului de Start se poate reporni redarea sunetului si a jocului de lumini.

LED-urile se aprind succesiv, in functie de frecventa sunetului redat pe difuzor.

Hardware Design

Componente folosite:

  • Placuta de baza (etapa I)
  • 16 LED-uri: 6 rosii, 4 verzi, 6 galbene
  • 16 rezistente (10 x 270 ohmi, 6 x 330 ohmi)
  • Difuzor (8 ohmi)
  • Condensator pentru difuzor (100 uF)
  • Buton start

Schema bloc generala

PortC (primele 2 coloane de LED-uri)

Componente:

* 8 LED-uri (3mm)
* 8 rezistente (6 x 270 ohmi, 2 x 330 ohmi)

PortA (celelalte 2 coloane de LED-uri)

Componente:

* 8 LED-uri (3mm)
* 8 rezistente (4 x 270 ohmi, 4 x 330 ohmi)

Buton

Software Design

Logica Programului

Programul are in memorie un vector de frecvente de 6000 de elemente, obtinut prin conversia unui fisier de tip .WAV cu ajutorul unui executabil wav2c.

O data ce este apasat butonul de start se incepe parcurgerea vectorului astfel: o data la 4 elemente se determina frecventa care trebuie redata. In functie de aceasta se va seta jocul de lumini. LED-urile sunt aprinse la un interval de 80 ms, simultan cele selectate de pe PORTA si PORTC (nu se aprind mai intai cele de pe un port si apoi cele de pe celalalt).

De asemenea fiecare nota (frecventa) este redata doar 160 ms, dupa care este citita urmatoarea, intercalata intre secventa de aprindere a LED-urilor; astfel dureaza 640 ms aprinderea LED-urilor pentru prima frecventa din seria de 4 interpretate.

Difuzorul este legat la un pin PWM al microcontroller-ului si functioneaza in intreruperi.

In momentul in care este apasat butonul de Reset, executia programului se opreste.

Alte detalii

Software-ul a fost scris in Programmer's Notepad si compilat cu WinAVR.
Schemele electrice au fost realizate in Eagle.

Pornisem cu ideea de a realiza transmisia de date intre PC si microcontroller utilizand conexiunea USB prin care incarcam si programul, insa nu am reusit acest lucru, de aceea am ramas la varianta memorarii unei secvente de frecvente in memoria programului.

Surse si functii:

  • basicvum.c: contine implementarea programului si datele (voi organiza codul ulterior intr-un header pentru vectorul de elemente si antetele functiilor)
  • functia init() configureaza pinii de pe porturile A,C,D pentru LED-uri (A si C), difuzor (PD5) si buton (PD6)
  • functiile setPWM() si unsetPWM() pot fi folosite pentru activarea/dezactivarea difuzorului, in functie de efectul de sunet dorit; se pot reda sunetele si cu pauze, pentru acest lucru folosindu-se unsetPWM() cu un anumit delay intre iteratii

Rezultate Obţinute

Am reusit sa redau o secventa de sunete si sa sincronizez aprinderea LED-urilor; calitatea sunetului nu este foarte buna, avand in vedere ca imi stabilesc propriile intervale de timp, iar redarea sunetului se face pe un singur canal, insa in mare scopul a fost atins.

Placuta finala - dupa apasarea butonului de Start

2013-05-19_18.15.52.jpg

Placuta finala - in starea de asteptare

2013-05-19_18.15.24.jpg

Concluzii

A fost interesant sa realizez acest proiect singura, fiind primul de acest gen pe care l-am finalizat. Partea buna a fost ca a mers totul din prima, nu am avut probleme cu componentele, lipiturile sau rularea codului.

De asemenea exista posibilitatea generarii de melodii pe baza unei partituri si a duratelor, modificand vectorul de frecvente, deci pot sa setez placuta sa cante ce doresc :-D.

Download

Jurnal

Bibliografie/Resurse

pm/prj2013/dtudose/vumetru-de-baza.txt · Last modified: 2021/04/14 17:07 (external edit)
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