Proiectul constă în crearea unui astfel de instrument, pe bază de componente electrice digitale, Și se va folosi de un senzor care măsoară distanța dintre instrumentist și instrument, în funcție de care se va alege nota muzicală ce trebuie redată în momentul respectiv.
Ideea de la care am pornit a fost aceea de instrument muzical electronic, și a evoluat pe parcurs. Consider că acest proiect este util întrucât reprezintă un instrument care nu necesită o pregătire specială pentru a-l folosi, putând fi utilizat cu ușurință.
* Arduino Uno - placa de dezvoltare Arduino care va controla semnalul emis de senzorul de distanță
* Senzor de distanță - acesta va detecta poziția mâinii utilizatorului și va genera semnale de ieșire corespunzătoare
* Buzzer - va emite sunetul generat de semnalul Arduino
* Rezistențe - vor fi necesare pentru a limita curentul care trece prin buzzer și LED-uri
* Breadboard - va fi necesară pentru a conecta componentele între ele
* Jumper Wires - vor fi necesare pentru a conecta componentele la breadboard și Arduino
Ca si biblioteci aditionale se foloseste LiquidCrystal_I2C si Wire.
Codul scris va fi în limbajul C și va fi încărcat direct pe plăcuță.
S-a implementat o metodă de aproximare a notelor care trebuie redate, întrucât măsurarea distanței va avea erori.
In partea de setup, pe langa initializarea datelor, se asteapta 5 secunde pentru a se inregistra distanta maxima fata de Theremin. Distanta maxima inregistrata initial sau o distanta mai mare va corespunde celei mai inalte note din scala aleasa.
La fiecare pas se aproximeaza nota care trebuie cantata in acel moment. La distante mai mici de senzor se canta note mai joase.
Exista un buton care este tratat ca si o intrerupere. Atunci cand acesta este apasat, se schimba scala (din A minor in C major si invers).
Atat scala cat si nota cantata la un moment dat este afisata pe LCD.
Daca mana instrumentistului ramane la aceeasi distanta fata de senzor, se canta nota respectiva, se asteapta un mic delay, si dupa aceeasi nova va fi cantata iar. Rolul delay-ului respectiv este de a face sunetul produs mai placut, si acest delay se regaseste intre fiecare doua note cantate una dupa alta.
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.