Cântatul la pian este o acțiune care stimulează atenția și memoria, îmbunătățește concentrarea, dar este și relaxantă. Însă, la început, controlul mișcărilor mâinilor pe claviatură poate părea dificil și nenatural. De aceea, scopul proiectului este de a veni în ajutorul celor care pornesc în această călătorie a muzicii, lăsându-se ghidați de un pian mai inteligent.
Smart piano reprezintă o claviatură minimală de pian care își ghidează utilizatorul să apese clapele prin luminarea acestora. Astfel, în funcție de melodia dorită, clapele se for aprinde corespunzător pentru fiecare notă și vor emite un sunet în momentul în care este apăsată orice clapă. Doar atunci când utilizatorul va apăsa corect toate clapele, melodia pe care o va cânta va fi cea pe care a ales-o.
Există 2 moduri de funcționare: Free play mode și Practice mode. Prin intermediul unui ecran LCD utilizatorul va putea alege modul de utilizare și în cazul celui de-al doilea mod: melodia pe care dorește să o cânte. Prin intermediul butoanelor de control el va putea oricând să se întoarcă la meniul principal.
Piesă | Cantitate |
---|---|
Placă de bază ATmega324 | 1 |
Buzzer passiv | 1 |
LCD Nokia5110 | 1 |
Breadboard | 2 |
Leduri x 8 | 8 |
Rezistențe | 8 x 470Ω |
Jumper wires | ∞ |
1. Funcții pentru afișarea diferitor meniuri pe display
void print_start_screen(void); void print_menu(void); void print_practice_menu(void); void print_songs(void); void print_in_play_menu(void);
2. Funcții pentru controlul dispozitivelor I/O
void init_IO(void); void switch_off_leds(void); void switch_on_led(int pin); int is_button_pressed(int pin); void stop_buzzer(void);
3. Funcțiile pianului
void play_note(int note); void practice_song(char *notes, int notes_number); void free_play(void);
Pentru mai multe detalii se poate consulta README-ul din arhivă.
Am reușit să realizez un pian funcțional de pe care se pot învăța căteva melodii scurte (pe care le-am selectat cu greu ):
Live demo here: https://www.youtube.com/watch?v=-KgTNxhYBmI
Chiar dacă nu a ieșit ce voiam inițial (un pian cu niște clape mai umane) , în final tot am obținut un pian destul de distractiv. Pe lângă partea software alte părți cu care mi-am bătut capul au fost: alegerea melodiilor și asamblarea proiectului într-o cutie care să arate cât de cât drăguț (and not so mainstream).
It may be not the best, but it’s fun.
Data | Activitate |
---|---|
9.05 | Comandă prima parte din piese |
14.05 | Sosire piese & montare display |
15.05 | Montare butoane control & creare meniuri |
16.05 | Montare LED-uri & încercare CapacitiveSensor |
18.05 | Încercare CapacitiveSensor din nou → renunțare → comandă alte piese |
20.05 | Sosire piese (butoane & breadboard) și montarea claviaturii |
21.05 | Finisare pare soft |
22.05 | Finisare design proiect (super cutia de bomboane) |
23.05 | Update schema electrica, update hardware & wiki stuff |