This shows you the differences between two versions of the page.
pm:prj2022:bogdanc:theremin [2022/05/13 20:30] andrei.caraiman1807 created |
pm:prj2022:bogdanc:theremin [2022/05/28 14:52] (current) andrei.caraiman1807 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 13: | Line 13: | ||
Theremin, cunoscut si ca eterofon sau thereminofon este un instrument muzical electronic controlat fara interventia fizica a muzicianului. Denumirea sa provine de la fizicianul rus Lev Sergeyevich Termen, cunoscut si ca Léon Theremin ce a inventat acest instrument in 1919. Theremin folosea principiul heterodinei pentru a emite un semnal audio. Instrumentul contine 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. | Theremin, cunoscut si ca eterofon sau thereminofon este un instrument muzical electronic controlat fara interventia fizica a muzicianului. Denumirea sa provine de la fizicianul rus Lev Sergeyevich Termen, cunoscut si ca Léon Theremin ce a inventat acest instrument in 1919. Theremin folosea principiul heterodinei pentru a emite un semnal audio. Instrumentul contine 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. | ||
- | Voi folosi o pereche, transmitator-receptor, de senzori de ultrasunete.Transmitatorul va emite o unda in aer, ea se va reflecta de un obiect din apropiere (mana muzicianului) si va fi directionata catre receptor. Acesta va interpreta unda si va emite o tensiune liniar-variabila catre procesor, in functie de distanta la care se afla obiectul de acesta, cat si in functie de miscarea obiectului (care implicit va modifica drumul undelor reflectate din obiect). Procesorul va prelucra semnalul si va trimite acest semnal catre un difuzor care va reproduce sunete diferite in functie de semnalul primit. | + | Implementarea aleasa este una simplificata. Folosesc un senzor de distanta, care estimeaza distanta pana la un obiect(mana). In functie de aceasta, |
- | {{:pm:prj2022:bogdanc:whatsapp_image_2022-05-13_at_8.17.57_pm.jpeg?200|}} | + | se calculeaza o frecventa care va fi trimisa celor 6 buzzere. Cu cat distanta creste, cu atat nota este mai inalta, si invers. Senzorul infrarosu |
+ | detecteaza comenzile din telecomanda si poate modifica lungimea notelor (doime, patrime, optime) si octava. | ||
+ | |||
+ | {{:pm:prj2022:bogdanc:whatsapp_image_2022-05-28_at_2.25.57_pm.jpeg?300|}} | ||
</note> | </note> | ||
Line 24: | Line 28: | ||
- placuta de baza | - placuta de baza | ||
- | - transducer - senzor ultrasonic Velleman MA40A5R | + | - senzor de distanta |
- | - transmitter - emitator ultrasonic Velleman MA40A5S | + | - modul receptor infrarosu + telecomanda |
- | - un difuzor de 8 Ohm | + | - 6 buzzere |
- | - 17 rezistente | + | - 6 rezistente |
- | + | ||
- | - 14 condensatori | + | |
- | + | ||
- | - 4 diode | + | |
- | + | ||
- | - 3 tranzistori de audio-frecventa | + | |
- | + | ||
- | - 3 rezistente semi-reglabile multi-tura pentru reglaje | + | |
- | + | ||
- | - 2 amplificatoare operationale pentru amplificare si detectare de nivel | + | |
- | + | ||
- | - circuit logic NAND cu trigger Schmitt pentru generator ultrasonic | + | |
- | + | ||
- | Receptorul se conecteaza la chip pe o intrare (PA7) in convertorul analog digital (ADC) pentru ca micro-procesorul sa poata prelua datele ce sosesc de la senzor. Difuzorul se conecteaza la chip prin PWM (Pulse Width Modulation) pe pinul PD5 printr-un condensator de 100 uF. | + | |
- | + | ||
- | Schema electrica: | + | |
- | {{:pm:prj2022:bogdanc:whatsapp_image_2022-05-13_at_8.21.56_pm.jpeg?200|}} | + | |
+ | {{:pm:prj2022:bogdanc:image_2022-05-28_141509417.png?300|}} | ||
</note> | </note> | ||
Line 55: | Line 43: | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | Pentru a reprezenta notele muzicale, am folosit doi vectori de int-uri (tones1, tones2) - pentru doua octave. Comportamentul default este folosirea |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | tones2. Dupa ce calculez distanta in functie de timpul primit de la senzor, alegem doar valorile sub 40cm, si vom alege o frecventa din vector |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | pe care o vom trimite la buzzer. Toate buzzerele sunt legate la pin-ul 12, pentru a avea aceeasi nota muzicala. Lungimea notei este reprezentata |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | de un delay, care initial este 125 = 1000 / 8 (nota este o optime). Cand nota este doime sau patrime, impartitorul va fi 2, respectiv 4. |
- | * (etapa 3) surse şi funcţii implementate | + | |
+ | Senzorul infrarosu receptioneaza semnale de la telecomanda, iar in functie de codul in hexa al semnalului, are 2 posibile actiuni: | ||
+ | - modificarea lungimii notei | ||
+ | - modificarea octavei | ||
</note> | </note> | ||
- | ===== Rezultate Obţinute ===== | ||
+ | ===== Concluzii ===== | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Consider ca proiectul a fost util si interesant, iar timpul dedicat lui a fost placut. |
</note> | </note> | ||
- | |||
- | ===== Concluzii ===== | ||
- | |||
===== Download ===== | ===== Download ===== | ||
<note warning> | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | {{:pm:prj2022:bogdanc:332cc_caraimanandrei_thereminpm.zip|}} |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
</note> | </note> | ||
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | https://www.arduino.cc |
+ | |||
+ | https://ocw.cs.pub.ro/courses/pm | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||