This shows you the differences between two versions of the page.
pm:prj2023:ncaroi:disco-strip [2023/05/26 23:32] ioana.rusu [Hardware Design] |
pm:prj2023:ncaroi:disco-strip [2023/05/26 23:47] (current) ioana.rusu [Descriere generală] |
||
---|---|---|---|
Line 12: | Line 12: | ||
<note tip> | <note tip> | ||
- | ===== **Schema bloc** ===== | ||
- | |||
- | |||
- | |||
- | |||
- | {{:pm:prj2023:ncaroi:platforma_de_kkt.png?650x100}} | ||
- | |||
- | |||
- | |||
- | |||
===== **Resurse Hardware** ===== | ===== **Resurse Hardware** ===== | ||
Line 77: | Line 67: | ||
{{:pm:prj2023:ncaroi:scema_elec.jpg?400|}} | {{:pm:prj2023:ncaroi:scema_elec.jpg?400|}} | ||
+ | |||
+ | Î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ă. | ||
+ | |||
</note> | </note> | ||
Line 83: | Line 79: | ||
<note tip> | <note tip> | ||
- | Design-ul software constă din două componente principale: //codul Arduino// care controlează banda LED în funcție de semnalul audio și //aplicația Android// care permite utilizatorului să pornească/oprească banda LED și să modifice intensitatea luminii. | ||
- | ***Codul Arduino**: | + | 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. | ||
- | 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. | + | Funcții: |
+ | begin() | ||
+ | end() | ||
+ | requestFrom() | ||
+ | beginTransmission() | ||
+ | endTransmission() | ||
+ | write() | ||
+ | available() | ||
+ | read() | ||
+ | setClock() | ||
+ | onReceive() | ||
+ | onRequest() | ||
+ | setWireTimeout() | ||
+ | clearWireTimeoutFlag() | ||
+ | getWireTimeoutFlag() | ||
- | ***Aplicația Android**: | + | - 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). | ||
- | 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. | + | 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. | ||
- | 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. | ||
</note> | </note> | ||