This shows you the differences between two versions of the page.
pm:prj2022:agmocanu:laserpiano [2022/05/26 10:56] apostolache2211 |
pm:prj2022:agmocanu:laserpiano [2022/06/02 18:30] (current) apostolache2211 |
||
---|---|---|---|
Line 20: | Line 20: | ||
Schema bloc: | Schema bloc: | ||
+ | |||
{{:pm:prj2022:agmocanu:schema_bloc_postolache_331cb.jpg?nolink|}} | {{:pm:prj2022:agmocanu:schema_bloc_postolache_331cb.jpg?nolink|}} | ||
+ | |||
Utilizatorul interactioneaza doar cu laserele, ce reprezinta "clapele" pianului si cu butonul de pornit/oprit. Laserele interactioneaza cu fotorezistentele ce trimit informatia la Arduino. Placa Arduino trimite comenzi la led, lasere si difuzor. | Utilizatorul interactioneaza doar cu laserele, ce reprezinta "clapele" pianului si cu butonul de pornit/oprit. Laserele interactioneaza cu fotorezistentele ce trimit informatia la Arduino. Placa Arduino trimite comenzi la led, lasere si difuzor. | ||
Line 41: | Line 43: | ||
Schema Electrica: | Schema Electrica: | ||
- | {{:pm:prj2022:agmocanu:7_schema_circuit.jpg|}} | + | {{:pm:prj2022:agmocanu:schema_electrica_post.jpg?direct&300|}} |
===== Software Design ===== | ===== Software Design ===== | ||
Line 54: | Line 56: | ||
* Fotorezistentele sunt conectate la pinii analogici si sunt cele care inregistreaza intensitatea luminii. Daca valoarea citita e mai mare decat un TRESHOLD, atunci nu se va intampla nimic. In caz contrar, se va decide nota muzicala ce va fi cantata de pian. | * Fotorezistentele sunt conectate la pinii analogici si sunt cele care inregistreaza intensitatea luminii. Daca valoarea citita e mai mare decat un TRESHOLD, atunci nu se va intampla nimic. In caz contrar, se va decide nota muzicala ce va fi cantata de pian. | ||
* Am adaugat si o functie printPianoState() care printeaza la interfata seriala mesaje doar atunci cand pianul isi schimba starile de activitate. | * Am adaugat si o functie printPianoState() care printeaza la interfata seriala mesaje doar atunci cand pianul isi schimba starile de activitate. | ||
- | * O alta functionalitate adaugata este accea ca dupa 10 secunde in starea de ON in care nu s-a cantat nicio nota muzicala pianul sa se opreasca. | + | * O alta functionalitate adaugata este accea ca dupa 10 secunde in starea de ON in care nu s-a cantat nicio nota muzicala pianul sa se opreasca. S-au folosit 2 variabile globale currentTime si lastTime impreuna cu functia millis(). |
- | S-au folosit 2 variabile globale currentTime si lastTime impreuna cu functia millis(). | + | |
Notele muzicale s-au calculat pe baza algoritmului descris la urmatorul link: [[https://www.instructables.com/EAL-Arduino-Laser-Harp/]] | Notele muzicale s-au calculat pe baza algoritmului descris la urmatorul link: [[https://www.instructables.com/EAL-Arduino-Laser-Harp/]] | ||
Line 66: | Line 67: | ||
Am implementat toata descrierea proiectului. | Am implementat toata descrierea proiectului. | ||
- | Link la DEMO: | + | Link la DEMO: [[https://youtu.be/QCsH9M4IrD8]] |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Am reusit sa implementez tot ce mi-am propus. Consider ca a fost un proiect interesant la care a trebuit sa incorporez si idei de design in crearea cadrului ce suporta diodele si alegerea dispunerii "clapelor" pianului. | ||
+ | Partea de software nu mi-a dat batai de cap, spre deosebire de partea de hardware, din cauza numarului mare de fire ce nu se puteau neinterescta si slabei calitatii de legatura intre diode si fire. | ||
===== Download ===== | ===== Download ===== | ||
+ | Arhiva ce contine codul sursa si schemele: {{:pm:prj2022:agmocanu:331cb_postolache_alexandru-gabriel_proiect_pm.zip|}} | ||
+ | Codul se mai gaseste si aici: [[https://github.com/alexP22-create/PM-FAIR/blob/main/proiect.ino]] | ||
+ | |||
+ | PDF: {{:pm:prj2022:agmocanu:laser_piano_milestone2.pdf|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
* **7/5/2022**: realizare pagina wiki + schema bloc (Milestone 1) | * **7/5/2022**: realizare pagina wiki + schema bloc (Milestone 1) | ||
+ | * **8/5/2022**: comandarea pieselor | ||
+ | * **10/5/2022**: research despre lucrul cu piesele comandate | ||
+ | * **19/5/2022**: legarea componentelor si realizarea schemei electrice | ||
+ | * **24/5/2022**: finalizarea codului pentru partea software | ||
+ | * **25/5/2022**: mici retusuri si testare | ||
+ | * **26/5/2022**: finalizare pagina OCW (Milestone 2) | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | * [[https://www.instructables.com/Laser-Piano-DIY/]] | ||
+ | * [[https://www.instructables.com/EAL-Arduino-Laser-Harp/]] | ||
+ | * [[https://www.instructables.com/Light-Sensor-Photoresistor-Arduino-Tinkercad/]] | ||
+ | * [[https://create.arduino.cc/projecthub/reverendfuzzy/simple-on-off-pushbutton-f637a7]] | ||
+ | * [[https://electropeak.com/learn/interfacing-5-v-5-mw-dot-laser-diode-module-with-arduino/]] | ||
+ | * [[https://create.arduino.cc/projecthub/muhammad-aqib/arduino-rgb-led-tutorial-fc003e]] | ||
+ | * [[https://www.arduino.cc/en/Tutorial/BuiltInExamples/toneMelody]] | ||
+ | |||
<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> |