Table of Contents

Music Board - Pasca Mihai Alexandru 331CA

Mihai Alexandru Pasca, 331CA

Introducere

Proiectul consta in realizarea un pian cu functie de record/playback si functie de learn, pentru a ajuta utilizatorul sa cante diferite melodii.

Descriere generală

Tastele pianului vor fi reprezentate de 8 butoane, care reprezinta o octava. Cand se porneste functia de learn, cele 8 led-uri se vor aprinde indicand butonul care trebuie apasat. Tempo-ul este schimbat cu ajutorul unui potentiometru, astfel se poate incepe invatarea unei melodii la un tempo mai scazut.

Schema Bloc

Hardware Design

Lista de piese

Schema electrica

Software Design

Am folosit biblioteca “LiquidCrystal_I2C” pentru interactiunea cu LCD-ul. Mediul de dezvoltare a fost Arduino IDE.

In fisierul utils.h am definit frecventele pentru notele pianului, am denumit pinii, butoanele si am denumit starile in care se poate afla pianului.

Am salvat notele melodiilor folosind keyword-ul PROGMEM pentru a le salva in memoria flash. Acestea vor fi citite folosind functia specifica pgm_read_word_near().

In setup se intializeaza LCD-ul si pinii folositi. In loop se citeste input-ul de la potentiometru pentru calcularea tempo-ului si se citeste si input-ul de la keypad. Keypad-ul are 4 pini de input si 4 pini de output, se trimite input pe una din intrari, care reprezinta selectarea unei linii, iar in cazul in care primim output pe una din intrari, am detectat apasarea unui buton. In functie de pinii pe care se trimit si primesc date se calculeaza care buton a fost apasat si se efectueaza actiunea pentru care acesta este folosit, se reda o nota in cazul in care facea parte din tastele pianului sau in caz contrar se efectueaza o operatiune de control/in meniu.

Aplicatia se poate afla in una dintre starile: Normal, Record, Playback, Learn. Acestea sunt selectate prin butoanele de control. De asemenea se poate schimba pitch-ul la care pianul canta.

Rezultate obtinute

Demo: https://youtu.be/wg0XmZUWB_8

Concluzii

O experienta interesanta avand in vedere ca e primul(daca nu si singurul) proiect fizic facut in facultate. M-am lovit de lucruri noi precum lipitul pieselor si am invatat ce inseamna sa aplici in viata reala notiuni de electronica, dar si notiunile noi invatate in cadrul acestei materii. In principiu forma finala a proiectului este asa cum am gandit-o, am reusit sa implementez functionalitatile pe care le aveam in plan.

Download

Cod sursa:pasca_mihai_proiectpm.zip

Jurnal

Bibliografie/Resurse

1. https://www.youtube.com/watch?v=aaqaAXlZbuc&t=140s

2. https://github.com/rydepier/Arduino-and-4x4-Matrix-Keyboard

3. https://lastminuteengineers.com/i2c-lcd-arduino-tutorial/

Export to PDF