This shows you the differences between two versions of the page.
pm:prj2021:abirlica:electric-piano [2021/05/22 11:51] sebastian.marinescu [Schema electrica] |
pm:prj2021:abirlica:electric-piano [2021/05/31 16:35] (current) sebastian.marinescu [Software Design] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Pian electric ===== | ===== Pian electric ===== | ||
- | **Autor**: Marinescu Sebastian | + | **Autor**: Marinescu Sebastian - 336CB |
- | Un pian electric care reuseste sa redea sunetele din gama DO major. Prin intermediul unui senzor IR si o telecomanda pianul este capabil sa readea o melodie la alegere. | + | Un pian electric care reuseste sa redea sunetele din gama DO major. Prin intermediul unui senzor IR si o telecomanda pianul este capabil sa cante o melodie la alegere prestabilita. |
===== Hardware design ===== | ===== Hardware design ===== | ||
- | {{pm:prj2021:abirlica:piano_block_diagram.png?600|}} | + | |
+ | {{pm:prj2021:abirlica:piano_block_diagram.png?750|}} | ||
+ | |||
+ | {{pm:prj2021:abirlica:electric_piano_photo.png?750|}} | ||
Componente necesare: | Componente necesare: | ||
Line 25: | Line 28: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | ===== Rezultate Obţinute ===== | + | {{pm:prj2021:abirlica:implementare_electric_piano.png?600|}} |
- | <note tip> | + | |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Descrierea codului aplicaţiei: |
- | </note> | + | |
+ | * mediu de dezvoltare: Arduino IDE | ||
+ | * librării şi surse 3rd-party: | ||
+ | - NewTone | ||
+ | - IRremote | ||
+ | * algoritmi şi structuri de date: | ||
+ | - logica simpla (switch, for, if) | ||
+ | - structuri de baza C: vectori, variabile | ||
+ | * surse şi funcţii implementate: | ||
+ | - **notes.h**: frecventele pentru fiecare nota muzicala | ||
+ | - **songs.h**: defineste melodiile pe care este capabila sa le redea placuta | ||
+ | - **songs.c**: notele efective ale melodiilor (stocate in niste vectori) | ||
+ | - **constants.h**: definirea unor pini si a unor valori a telecomandei IR | ||
+ | - **proj.ino**: | ||
+ | - **void playsong(const int *notes, const int no_notes, const int tempo)** - itereaza prin notele unei melodii si le reda | ||
+ | - **void setup()** - initializeaza pinii | ||
+ | - **void loop()** - daca este apasat un buton reda nota corespunzatoare, altfel asteapta de la telecomanda IR un cantec pe care sa il redea | ||
+ | |||
+ | |||
+ | <note>Link repo: https://github.com/sebika/electricPiano</note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Proiectul reuseste ceea ce isi propune, si anume sa fie capabil sa preia un semnal IR si sa redea o melodie. De asemnea aplicatia este capabila sa preia input de la utilizator si prin intermediul butoanelor daca acesta doreste. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note>Link catre pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/electric-piano </note> | + | Resurse software: https://github.com/robsoncouto/arduino-songs |
- | <note> | + | Link video: https://drive.google.com/file/d/16LxAXOvrLfmz56UkWWEa3yfnCk1cbt55/view |
- | https://github.com/robsoncouto/arduino-songs | + | |
- | </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> |