This is an old revision of the document!
===== Resurse Hardware =====
Modulul MPU6050: este un modul popular de tip senzor, utilizat pentru a detecta și măsura accelerația, rotația, cât și câmpurile magnetice ale sistemelor electronice. Acesta utilizează o combinație de senzori, ce includ un accelerometru tri-dimensional și un giroscop tri-dimensional. În proiectul prezent, am utilizat atât caracteristicile sale de accelerometru cât și pe cele de giroscop.
Protocolul SPI: este un protocol de conexiune serială sincronă utilizat pentru a conecta sisteme de dispozitive electronice. În conexiunea SPI, dispozitivele sunt conectate folosind patru linii de conexiune:
• SCLK (Serial Clock) - semnal de ceas utilizat pentru a sincroniza transmisiunea de date dintre dispozitive; • MOSI (Master Out Slave In) - datele se transmit de la dispozitivul master către dispozitivul slave; • MISO (Master In Slave Out) - datele se transmit de la dispozitivul slave către dispozitivul master; • SS (Slave Select) - un semnal utilizat de către dispozitivul master pentru a selecta dispozitivul slave cu care dorește să se conecteze.
Protocolul I2C este conceput pentru a facilita comunicarea între circuitele integrate într-un sistem, cum ar fi microcontrolere, senzori, cipuri de memorie și alte periferice. Protocolul I2C prezintă o arhitectură de tip master-slave. Comunicarea se realizează printr-un bus comun, care este format din două linii de transimisune: SDA (linia de date seriale) și SCL (linia de ceas serial).
Modulul MPU6050 comunică cu microcontrolerul prin protocolul I2C. Pentru a utiliza MPU6050 cu o interfață I2C, microcontrolerul sau alt dispozitiv acționează ca dispozitiv principal (master), iar MPU6050 acționează ca dispozitiv secundar (slave). Dispozitivul principal inițiază comunicarea prin selectarea MPU6050 utilizând linia SDA și apoi trimiterea datelor către și primirea datelor de la MPU6050 utilizând aceeași linie. În cazul de față, placa Arduino UNO va acționa ca dispozitiv master, iar MPU6050 ca dispozitiv slave.
Arduino: converteste vibratiile detectate de accelerometru prin intermediul logicii de codare în sunete de tobă.
Descrierea proiectului
• accelerometrul va fi montat la capătul unui băț. Sistemul va recunoaște mișcarea, și, bazându-se pe intensitate, va genera la ieșire un semnal, ca un ”beat” pe baza unui ”pattern”. Acesta va fi ulterior amplificat și redat prin intermediul unui difuzor; • amplitudinea semnalului receptat cu ajutorul accelerometrului va fi ilustrat de un Bar Graph; • vor fi mai multe tipuri de sunete generate, în concordanță cu mișcările executate de către utilizator.
===== Descriere software =====
Microfon: nu necesită software suplimentar.
Amplificator: nu necesită software suplimentar.
Conversie A/D: Arduino utilizează o bibliotecă standard pentru citirea semnalului analogic de la convertorul A/D.
Arduino: programul Arduino primește valoarea semnalului analogic de la convertorul A/D, analizează semnalul și generează o valoare de luminozitate pentru Banda LED.
Banda LED: utilizează o bibliotecă specială, cum ar fi Adafruit NeoPixel, pentru a controla LED-urile din banda de LED-uri.
===== Interactiune =====
Semnalul audio este detectat de microfon și este trimis la amplificator, care amplifică semnalul și îl trimite la convertorul A/D. Acesta convertește semnalul analogic într-un semnal digital pe care Arduino îl poate procesa. Programul Arduino analizează semnalul și generează o valoare de luminozitate pentru Banda LED. Banda LED primește valoarea de luminozitate de la Arduino și ajustează luminozitatea și culoarea în funcție de semnalul audio detectat.
Codul Arduino citește semnalul audio de la microfon, analizează amplitudinea undelor sonore și generează o ieșire corespunzătoare pentru a controla luminozitatea și culoarea benzii LED. Codul folosește biblioteca FastLED pentru a controla banda LED și biblioteca Adafruit_Sound pentru a citi semnalul audio de la microfon. Codul include, de asemenea, un modul Bluetooth sau Wi-Fi pentru a stabili o conexiune cu aplicația Android.
Aplicația Android oferă o interfață simplă de utilizator care permite utilizatorului să pornească/oprească banda LED și să modifice intensitatea luminii folosind un cursor. Aplicația comunică cu Arduino folosind Bluetooth sau Wi-Fi pentru a trimite comenzi de pornire/oprire a benzii LED și pentru a modifica luminozitatea benzii LED. Aplicația este construită folosind MIT App Inventor, o platformă vizuală de programare care permite dezvoltarea rapidă și ușoară a aplicațiilor.
Design-ul software este bazat pe conceptul de a crea un vizualizator muzical interactiv care este ușor de utilizat și personalizabil. Software-ul permite utilizatorului să controleze banda LED în timp real, creând o afișare dinamică care reacționează la muzică. Design-ul software este modular, cu componente separate pentru codul Arduino și aplicația Android, permițând modificare și extindere ușoară în viitor.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.