This is an old revision of the document!
Autor: Vlaic Andrei-Gabriel
Proiectul consta in implementarea unui simplu pian electric cu 13 clape pentru toate tonurile si semitonurile dintr-o gama muzicala. Pianul mai are ca si functionalitati extra capacitatea de a schimba intre game cu ajutorul unui buton si deasemenea poate reda de pe un card SD o piesa muzicala, iar redarea notelor muzicale de pe pian si de pe cardul SD se va realiza prin intermediul a 2 difuzoare.
Placa de dezvoltare Arduino UNO va prelua date de la butoane prin intermediul bibliotecii tone care va transmite datele corespunaztoare catre difuzor, iar pentru cardul SD vor exista butoane pentru navigarea intre piese si pentru reglarea volumului.
Pentru scrierea codului am folosit ArduinoIDE. Am inclus libraria TMRpcm si am definit frecventele de baze pentru notele octavei Do(C) avand ca frecventa de referinta tonul La(A = 400Hz). Am declarat constantele pentru pinii unde se conecteaza butoanele care produc sunetul aferent notei apasate, un numar intreg pentru valoare octavei (imi pot schimba octava in sus prin dublarea frecventei intr-un anumit interval), si cateva variabile folosite pentru a inregistra doar o apasare a butonului de schimbare a octavei.
In functia setup imi initializez citirea de pe cardul SD folosind libraria tmrpcm. Piesa redata de pe card poate fi schimbata in cod prin schimbarea indicelui de la tmrpcm.play(“songX.wav”) deoarece nu am mai avut un pin liber pentru un buton care sa schimbe indicele piesei redate fara folosirea unui multiplexor. Daca initializarea a avut loc cu succes va incepe redarea unei piese de pe difuzorul de 0.5W/8Ohmi, in rest in setup setez pinii pentru butoane folosind pinMode si digitalWrite.
In cadrul functiei loop realizez un test pentru a vedea daca butonul de schimbare al octavei este apasat constant si ignor pentru un anumit interval de timp input-ul daca nu se schimba pentru a nu schimba de mai multe ori o octava la apasarea unui buton, in rest am 5 nivele pentru valoriile octavei si cateva loop-uri while pentru a utiliza functia tone pentru redarea notelor muzicale de pe difuzorul-brick.
< 1.05.2021 Comanda piese pentru proiect
1.05.2021 Crearea paginii de wiki. Milestone 1 completat
2.05.2021 Comanda extra pentru un difuzor 0.5W dupa o discutie cu laborantul
13.05.2021 Testare componente comandate
20.05.2021 Finalizare parte software, ramane de finalizat pagina de wiki + documentatia
3.06.2021 Finalizare pagina de wiki + video. Milestone 2 completat
https://www.autodesk.com/products/eagle/free-download Program folosit pentru realizarea schemei electrice https://www.arduino.cc/en/software Program folosit pentru scrierea codului https://www.arduino.cc/reference/en/ Documentatie functii din ArduinoIDE https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/
https://audio.online-convert.com/convert-to-wav Folosit pentru conversia fisierelor mp3 in format wav pentru redarea pieselor https://domoticx.com/arduino-library-tmrpcm/ Librarie folosita pentru redarea pieselor de pe cardulSD + documentatie