Pian pe tastatura, cu recorder de note si playback



              
IMPORTANT: Din motive restrictive de timp, nu am terminat proiectul. Am implementat doar partea de pian. Partea de recorder si de playback device le voi reda aici doar la nivel conceptual.

        
Introducere

               In cadrul acestei pagini, voi prezenta implementarea hardware si software a unui dispozitiv de reprodus note muzicale, cu optiuni de inregistrare si redare(playback) a notelor. Proiectarea se va realiza si programa pe modulul ATmega324.

        
Descriere generala
               Proiectul este constituit din 3 functionalitati principale:

  • redarea unei note muzicale avand 'tastatura'(butoanele) ca input
  • stocarea fiecarui sunet in memoria flash
  • redarea intregii melodii compuse anterior
               Prima etapa: Redarea notelor muzicale se bazeaza pe emiterea unor anumite frecvente, aferente fiecarei note. Voi avea nevoie de un microcontroller (evident) si de un convertor digital-analog care transforma inputul transmis de la tastatura in semnal analogic.

               A doua etapa: Stocarea se va face prin intermediul comunicatiei SPI. Voi avea unui buffer asociat scrierii in memoria flash a device-ului. Practic, se vor stoca frecventele in ordinea in care au fost emise. Doresc sa aleg o octava mai mica (O0, O1, O2, O3) pentru a avea toate valorile (in Hz) mai mici de 256, adica pentru a putea fi stocate fiecare pe 8 biti. Daca bufferul este plin, atunci informatia se va scrie in memorie. Daca memoria este plina, voi aprinde eventual un LED de avertizare, si nu se vor mai putea stoca date. Eventual voi implementa si stergerea datelor.

               A treia etapa: Redarea melodiei anterioare se va face prin citirea din memorie a intregii informatii, incepand de la pointerul de start. Partea de redare implica si comunicarea prin interfata SPI, precum si PWM.

               Pentru emiterea frecventelor, voi folosi PWM. Pentru comunicarea intre master(userul) si slave, voi folosi interfata SPI.

        
Schema bloc

        
Componente hardware

  • Microprocesorul ATmega324
  • Butoane: 8 sau 16 pentru fiecare nota muzicala; un buton pentru singing; un buton pentru recording; un buton pentru playback
  • 3 LEDuri: un LED pentru PLAYING..., un LED pentru RECORDING..., un LED ce se aprinde cand memoria este full
  • Cablu alimentare
  • Ecran LCD (optional)
  • Difuzor
  • DAC
  • Rezistente
  • Tranzistoare
  • Port USB2.0
        
Schema electrică
               Proiectul este constituit din 3 functionalitati: piano, recorder (while singing), playback device. Toate cele 3 pornesc de la apasarea a unul din cele 3 butoane de start: SING (activeaza pianul), RECORD (activeaza recorder-ul), PLAYBACK (activeaza playback-ul ultimei melodii). Voi prezenta schema electrica pentru fiecare din ele:

  • Piano:


               Aceasta schema implementeaza doar pianul, nu si recorder-ul. Voi descrie functionalitatea schemei, pe scurt. Claviatura (cele 8 butoane: DO RE MI FA SOL LA SI DO) este conectata la porturile PA, care sunt declarate ca si porturi de input. Fiecare buton este legat printr-o rezistenta de 100 Ohm la pin-ul aferent de input (din PA), si cu celalalt port este legat la GND. Porturile PC sunt folosite pentru a copia valorile de la porturile PA. Este nevoie de acest lucru pentru a prelua valorile in modulul convertorului digital-analog. Convertorul digital-analog se bazeaza pe varianta R2R, implementata cu 8 diode, 8 rezistente (o dioda si o rezistenta pentru fiecare nota de input), doua condensatoare, unul ceramic de 100nF si unul electrolitic de 10uF si un tranzistor NPN, eu am ales varianta de tranzistor BD139. La final, difuzorul are polul + conectat la Vcc, iar polul - conectat la colectorul tranzistorului din DAC.

        
Galerie foto


        
Concluzii

               Regret nespus ca nu am reusit sa realizez decat partea de pian, nu si cea de inregistrare si redare a ultimei melodii. Probabil voi mai lucra la proiect si il voi updata pe viitor.

        
Surse
               pm_sources1.0.zip

        
Bibliografie/Resurse
               Laboratorul 0
               Colegi, prieteni, asistenti
               Internetul nu m-a inspirat, de aceasta data.

pm/prj2019/adragan/mypiano.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