Table of Contents

Marius-Robert DRĂGHICI (78635) - Ultrasonic piano

Autorul poate fi contactat la adresa:

Introducere

Descriere generală

Claviatura pianului este reprezentată de opt senzori ultrasonici de distanță, fiecare senzor fiind asociat uneia din cele 8 note ale unei octave: Do, Re, Mi, Fa, Sol, La, Si, Do. Când utilizatorul își plasează mâna deasupra unui senzor, programul va reda nota corespunzătoare acelui senzor, în funcție de octava curentă. Fiecare senzor are asociat un led care se va aprinde când nota corespunzătoare ledului va fi redată. Se va folosi un card SD pentru stocarea melodiilor. Pe ecranul LCD grafic, se vor afișa informații despre modul curent de funcționare, despre acțiunile posibile ce pot fi realizate sau despre melodia curentă. Sunetul va fi redat cu ajutorul difuzorului.

Pianul poate funcționa în următoarele moduri:

Hardware Design

Listă de piese:

Schema electrica:

Software Design

Proiectul a fost dezvoltat pe Windows 10, utilizand:

* Atmel Studio

* tool-chain-ul AVR

* |HIDBootFlash

Bibliotecile folosite in cadrul proiectului sunt:

* ili9341.h preluata de aici pentru comunicarea cu ecranul lcd tft

* HC_SR04.h o biblioteca adaptata pentru a comunica cu cei 8 senzori ultrasonici

* usart.h din laboratorul 1 utilizata pentru debugging

Pentru detectarea obstacolelor de catre senzori, am folosit intreruperi si pentru calcularea distantei pana la obstacol am folosit timere. Pentru a detecta obstacolele, initial trebuie sa trimitem un puls care sa dureze cel putin 10 us la pinul de trigger al senzorului. Dupa ce primeste semnalul de trigger, senzorul transmite automat 8 unde de sunet de 40kHz fiecare. Apoi microcontrollerul asteapta ca pinul echo al senzorului sa ajunga in starea high. Cand pinul echo a ajuns in starea high, timerul incepe sa contorizeze timpul necesar undei sonore a ecoului sa se intoarca inapoi la senzor, lucru care se va intampla cand pinul echo va fi in starea low. Odata ce pinul echo a ajuns in starea low, microcontrollerul retine valoarea curenta a timerului, pe care o va utiliza pentru calcularea distantei pana la obstacolul intalnit. In acest calcul, trebuie sa luam in considerare si de cate ori timerul a facut overflow.

Rezultate Obţinute

Concluzii

Consider ca proiectul realizat a fost o experienta destul de interesanta, din care am invatat multe lucruri.

Download

draghicimariusrobert_336ca_ultrasonic_piano.zip

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

* datasheet ecran LCD: datasheet_ili9340.pdf

* datasheet atmega: doc8272.pdf

* biblioteca LCD: ili9341