Orga de lumini

Introducere
Proiectul presupune captarea sunetului prin mufa jack de la placa de sunet si separea lui pe 8 grupari de frecvente. Pentru fiecare grupare in parte se aprinde un led-ul specific.

Descriere generala

Dispozitivul va putea afisa analiza spectrala de la calculator, prin conectarea cu ajutorul unei mufe jack de la placa de sunet de pe calculator la convertorul analog numeric incorporat pe microcontroler (Port PA0). Pentru a fisare se utilizeaza pini PCx.

  • Dispozitivul este alcatuit din alcatuit din:
    • Display de led-uri
    • Mufe jack
    • Placa de baza cu microcontroler ATMEGA16 (realizata în Etapa 1)

Utilizatorul interactioneaza cu microcontrolerul prin intermediul mufei jack 3.5 tata-tata care este legata doar la GND si PA0 transformand mufa jack din stereo in mono. Montajul este alimetat de la placa de baza cu 5V. Pentru transformarea din analog in digital se foloseste convertorul integrat al microcontrolerului (precizie 10 biti). Pentru implementare s-au utilizat urmatoarele:

  • cod scris in assembler si optimizat pentru MegaAVRs pentru calculul FFT (Fast Fourier Transformation), de pe site-ul http://elm-chan.org/
  • cod scris in assembler pentru debugging pe USART.

Scheme proiect:

Hardware Design Componente hardware:

Pe langa componentele necesare realizarii placii de baza(etapa 1), au mai fost achizitionate urmatoarele componente:

1. LED-uri

2. rezistente

3. mufa jack audio stero 3.5mm mama

4. mufe jack audio stero 3.5mm tata

5. Placa test 100×100

6. Cablu plat 10 Fire 1m

7. Pin Header 1×40

8. Bareta

Componentele au fost cumparate de la: http://www.syscomelco.ro/ si http://www.conexelectronic.ro/ initial am achizitionat LED-uri verzi si rezistente de 1k insa le-am schimbat mai tarziu.

Software Design Limbaj de programare: C Mediu de dezvoltare si compilare: Notepad++ si utilizare Makefile

  • Implementarea nu a fost foarte grea, partea cea mai anevoioasa fiind documentarea si cautarea unei implementari cat mai eficiente de FFT. Cu usurinta s-a gasit si implementarea tot in assembler pentru USART care are ca scop usurarea procesului de debugging, care din pacate nu s-a realizat datorita unor probleme intampinate cu avrusbboot.
  • Valorile se citesc de la ADC si asupra lor este aplicat FFT(Fast Fourier Transformation).
  • Fisierele utilizate pentru realizarea FFT sunt cele puse la dispozitie de Elm-chan si nu au fost realizate modificari asupra lor: ffft.h ffft.S si fftest.c, acelasi lucru se poate spune de fisierele pentru SUART: suart.h, suart.S
  • Functia main( din fisierul main.c) configureaza convertorul analog digital de la ATmega16 sa asculte pe PA0, preia datele procesate de FFT 3 si face si afisarea rezultatelor prin configurarea porturilor PCx care aprind LED-ul x corespunzator formulei result[i]%8(unde result[i] este una din cele 64 frecvente calculate cu ajutorul FFT)

Rezultate Obţinute:

Aceasta esta placa obtinuta, am ales utilizarea unei placi test 100×100 deoarece initial intentionam utilizarea unui MSGEQ7 - Seven Band Graphic Equalizer Display Filter: http://www.mix-sig.com/index.php?option=com_content&view=article&id=145%3Amsgeq7-&catid=52&Itemid=55 https://www.sparkfun.com/datasheets/Components/General/MSGEQ7.pdf Insa a trebuit sa recurg la planul de rezerva, si anume apicarea FFT, fara insa ca acesta sa poata avea puterea acestui IC putandu-se realiza abia un samplingul de maxim 15kbps, de unde rezulta banda de frecvente de maxim 7.5kHz ceea ce este aproape jumatate din ce poate MSGEQ7(16kHz). In viitor intentionez aducerea in proiect a acestei componente.

Concluzii

Proiectul a fost unul interesant, implica aplicarea cunostiintelor dobandite la laboratorul de Proiectarea
 Microprocesoarelor. In acelasi timp, este un proiect complex caruia trebuie sa ii fie acordat timp pentru 
 ca probleme pot aparea oricand. 
Ca si observatii: Convertorul incorporat pe microcontrollerul ATMEGA16 este unul destul de incet, mai 
 eficienta ar fi fost mai  folosirea unui ADC extern, mai performant sau al integratului MSGEQ7, care 
 oferea o plaja mai mare de frecvente dar in acelasi timp economisea din puterea de calcul a 
 microcontrolerului, realizand filtre pe frecventele 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz si 16kHz.

Download

Bibliografie/Resurse

  • [Quantum Torque FFT.]
pm/prj2012/abostan/200.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