Diana-Andreea BOBOC (24948) - Theremin

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul Theremin are ca scop implementarea si construirea unui instrument muzical controlat prin simpla miscare a mainii prin aer. Ideea proiectului a pornit de la instrumentul muzical electronic cunoscut si sub numele de eterofon sau thereminofon. Acesta a fost inventat de fizicianul rus Lev Sergeyevich Termen (Léon Theremin) in anul 1919. Principiul de functionare al instrumentului inventat de Termen se baza pe 2 oscilatoare de radio frecventa: un oscilator opereaza la frecventa fixa, pe cand cel de-al doilea va opera la o frecventa variabila in functie de miscarile muzicianului fata de antena. Mana muzicianului actioneaza ca o armatura a unui condensator variabil dintr-un circuit LC ce este parte a oscilatorului si determina frecventa sa. Proiectul este ideal pentru pasionatii de muzica, ce doresc sa readuca vechile inventii in pas cu noile tehnologii.

Descriere generală

Implementarea proiectului meu se va baza pe senzori de ultrasunete care vor simula functionalitatea oscilatoarelor: un senzor de transmitere care va emite unda in aer, aceasta se va lovi de mana utilizatorului si va fi redirectionata catre receptor. Receptorul va interpreta semnalul, in functie de distanta fata receptor-mana utilizator si de miscarea mainii acestuia care ii va modifica directia. Datele vor fi trimise microprocesorului sub forma unei tensiuni, care le va trimite mai departe unui difuzor pentru redarea sunetului obtinut.

Hardware Design

Aici puneţi tot ce ţine de hardware design:

  • listă de piese:
    1. placuta de baza
    2. 1 senzor digital pentru ultrasunete HC-SR04 ce contine atat transmitter cat si receiver si logica analogica de transmitere-receptie semnal
    3. 1 buzzer
  • scheme electrice

Software Design

Mediu de dezvoltare

 Ca si mediu de dezvoltare am folosit Programmer's Notepad, varianta cu compilatorul WinAVR instalat si 
 Bootloader-ul USB din cadrul laboratorului.
 

Surse si functii implementate

     In primul rand, folosesc module de initializare IO si a Timer-ului 1.
     Pentru a capta semnalul primit pe pinul de Echo al senzorului ultrasonic am folosit Timer0 si 
 rutina de tratare a intreruperii PINT_1. Astfel, cu ajutorul unei variabile globale (got_echo) 
 retin starea anterioara intrarii in interupere si in functie de aceasta pornesc Timer0 in mod CTC 
 cu prescaler de 8 (daca got_echo = 0) si respectiv opresc Timer0, masor distanta de la senzor la 
 mana si in functie de aceasta si de distanta precedenta decid care nota ar trebui cantata 
 (urmatoarea in cazul in care distanta a crescut, anterioara in cazul in care distanta s-a micsorat).
     Pentru a reda o nota, am folosit interuperi in mod CTC cu Timer1 si cu toggle pin OC1A la 
 compararea cu OCR1A. Astfel, OCR1A va retine frecventa fiecarei note, si aceasta valoare 
 se va schimba doar in momentul in care nota precedenta s-a terminat de redat si in momentul in care 
 este necesara updatarea notei (avem echo). Aceste lucruri sunt verificate de variabilele globale 
 note_remaining si note_position.

Rezultate Obţinute

 Theremin-ul este functional, insa nu se face o trecere lina intre sunete.
 Am putea spune ca am realizat un cimpoi. :-D
 

view

Concluzii

Proiectul este functional, dar pentru o precizie mai mare si o claritatea a sunetelor mai buna recomand folosirea altor senzori care sa permita un calcul al distantei senzor-obiect mult mai buna.

Download

Bibliografie/Resurse

Resurse hardware

 Datasheet senzori: http://www.micropik.com/PDF/HCSR04.pdf
 Datasheet ATMEGA324: http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf

Resurse software

 Buzzer: http://cs.curs.pub.ro/wiki/pm/lab/lab0
 Timere si intreruperi: http://cs.curs.pub.ro/wiki/pm/lab/lab3
pm/prj2016/csoare/9.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