Table of Contents

Air Drums

Introducere

”Tobe invizibile utilizând accelerometrul” este un proiect ce folosește o placă Arduino, modulul complex și versatil MPU6050 pe post de accelerometru, și software-ul Arduino pentru a detecta momentul în care utilizatorul ”lovește” aerul în jurul acestui modul și a converti acest semnal într-un sunet de tobă. În particular, pentru acest proiect, se folosește o placă de tip Arduino UNO care va fi programată utilizând software-ul Arduino. Senzorii piezoelectrici de pe modulul MPU6050 detectează schimbarea de presiune din vibrațiile aerului atunci când utilizatorul simulează o bătaie de tobă, și, prin conexiunea cu placa Arduino UNO, aceste vibrații sunt convertite prin intermediul logicii de codare în sunete de tobă. Sunetele de tobă astfel obținute, ce corespund poziției în care se află accelerometrul, sunt redate printr-un difuzor clasic.

Descriere generală

===== 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.

200

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ă.

===== Interactiune =====

 • 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.

Hardware Design

  • Arduino Uno - Placă de dezvoltare bazată pe microcontroler
  • Modulul MPU6050 - Componenta ce detecteaza schimbarea de presiune din vibrațiile aerului atunci când utilizatorul simulează o bătaie de tobă
  • Difuzor de putere 0.5W și impedanță de 8Ω
  • Rezistori - Pentru a limita curentul și pentru a proteja componentele sensibile la tensiune
  • Breadboard
  • Fire Jumper

Schema Electrica a Proiectului

În proiectul de față, comunicarea între placa Arduino UNO și modulul MPU6050 se face serial și sincron. Protocolul I2C (descris în capitolul 4.2), face posibilă comunicarea duală dintre cele două dispozitive. Conexiunea serială se face prin conectarea pinilor SDA (Serial Data Line) și SCL (Serial Clock) între cele două dispozitive. Pinul AD0 este conectat la masă, adresa slave a modulului MPU6050 fiind 0x68. Difuzorul este conectat la masa și la pinul 11, care permite utilizarea metodei PWM(Pulse With Modulation). Astfel devine posibilă manipularea frecvenței și generarea sunetelor. Bibliotecile folosite în codul pentru implementarea software sunt compatibile cu protocoalele transmise prin conexiunea pinilor, pentru a putea recepționa semnalul prin modulul MPU6050 și ulterior pentru a putea genera sunetul de tobă.

Software Design

Librăriile utilizate:

- Wire.h: Biblioteca permite comunicarea cu dispozitive I2C sau TWI. Ea se folosește de adrese pe 7 biți, al optulea bit determinând operația (de scriere sau citire). Implementarea sa folosește, totuși, un buffer de 32 de octeți. Prin urmare, orice comunicare ar trebui să se fie în această limită. Biții care depășesc limita se vor pierde.

Funcții: begin() end() requestFrom() beginTransmission() endTransmission() write() available() read() setClock() onReceive() onRequest() setWireTimeout() clearWireTimeoutFlag() getWireTimeoutFlag()

- PCM.h: Biblioteca permite redarea unor probe audio scurte generate direct din cod. Acestea sunt codificate sub forma unor array-uri de numere întregi. Este compatibilă cu arhitectura avr, însă este necesar harware extern (ex. difuzor).

Alte aplicații: - Audacity – editor audio - EncodeAudio – aplicație care codifică track-urile sub forma cerută de biblioteca PCM.h. Este necesar ca track-urile să aibă rata de 8kHz și si formatul de 16 bițiPCM.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

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

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF