Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:cstan:22 [2022/04/22 19:36]
lucian.flutur
pm:prj2022:cstan:22 [2022/06/02 11:16] (current)
lucian.flutur [Descriere generală]
Line 1: Line 1:
-====== ​Speaker ​Bluetooth ​cu matrice ​LED ======+====== Bluetooth ​transmitter with LED matrix for speakers======
 ===== Introducere ===== ===== Introducere =====
  
 Lucian Flutur 1222A Lucian Flutur 1222A
 <note tip> <note tip>
-Acest proiect are ca scop  relizarea unui spekaer ​bluetooth cu o matrice LED controlată de un microfon.+Acest proiect are ca scop relizarea unui transmitator ​bluetooth cu o matrice LED controlată de un microfon.
 </​note>​ </​note>​
 ===== Descriere generală ===== ===== Descriere generală =====
  
 <note tip> <note tip>
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. 
  
-Exemplu ​de schemă bloc: http://www.robs-projects.com/​mp3proj/​newplayer.html+ 
 +Placa Arduino este folosită pentru conectarea matricei LED și a microfonului pentru a crea un circuit ​de analiză de spectrumAcestea sunt conectate sub o tensiune de 5V pe breadboardTot prin breadboard este conectat și transmițătorul Bluetooth 5.0 și un fan pentru răcirea circuitelor. Tensiunea de alimentare de 5V este luată de pe placa Arduino iar placa Arduino este alimentată prin mufa USB 2.0. semnalul audio din transmițător este luat mai departe pe mufa RJ45 și se conectează la orice boxă cu mufa RCA. 
 + 
 + 
 + 
 </​note>​ </​note>​
  
Line 17: Line 21:
  
 <note tip> <note tip>
-Aici puneţi tot ce ţine de hardware design: +1 x Arduino MEGA 2560 
-  * listă de piese +1 x Elected microhone 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +1 x LED matrix 8x8 
-  * diagrame de semnal ​ +1 x Breadboard 
-  * rezultatele simulării+1 x Bluetooth 5.0 Transmitter 
 +1 x RJ45 
 +1 x RCA 
 +1 x Fan 5V 0.23A 
 </​note>​ </​note>​
  
Line 28: Line 36:
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +#include "​LedControl.h"
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</​note>​+
  
-===== Rezultate Obţinute =====+/* Led matrix - Max7219 Declared */ 
 +LedControl lc LedControl(12,​ 10, 11, 1);
  
-<note tip> +const int maxScale = 11;
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+/*  Sensor - Max9812 Declared */ 
 +const int sensorPin ​A4; 
 +const int sampleWindow ​50;  // 50ms 20Hz 
 +unsigned int sample;
  
-===== Download =====+unsigned long startMillis;​ 
 +unsigned long timeCycle;
  
-<note warning+unsigned int signalMax = 0; 
-O arhivă ​(sau mai multe dacă este cazulcu fişierele obţinute în urma realizării proiectului:​ surseschemeetc. Un fişier READMEun ChangeLogun script de compilare şcopiere automată pe uC crează întotdeauna o impresie bună ;-).+unsigned int signalMin = 1024; 
 +unsigned char index = 0; 
 + 
 +unsigned int peakToPeak[8];​ 
 +unsigned int displayPeak[8];​ 
 +unsigned int temp[8]={0,​0,​0,​0,​0,​0,​0,​0};​ 
 +unsigned int signalMaxBuff[8];​ 
 +unsigned int signalMinBuff[8];​ 
 + 
 + 
 +void setup() { 
 +  // Led matrix 
 +  lc.shutdown(0,​ false); // bật hiện thị 
 +  lc.setIntensity(0,​ 1); // chỉnh độ sáng  
 +  lc.clearDisplay(0);​ // tắt tất cả led 
 + 
 +  Serial.begin(9600);​ 
 +
 + 
 +void loop() { 
 +  startMillis = millis(); 
 +  //​peakToPeak = 0; 
 + 
 +  signalMax = 0; 
 +  signalMin = 1024; 
 +   
 +  // Get data in 50ms 
 +  while (millis() - startMillis ​sampleWindow) { 
 +    sample = analogRead(sensorPin);​ 
 +     
 +    if (sample < 1024) { 
 +      if (sample ​signalMax) { 
 +        signalMax = sample; 
 +      } 
 +      ​if ​(sample < signalMin
 +        signalMin = sample; 
 +      } 
 +    }  
 + 
 +    // 20Hz - 64Hz - 125Hz - 250Hz - 500Hz - 1kHz (timeCycle = 1/F)(ms) 
 +    timeCycle = millis() - startMillis;​ 
 +    if (timeCycle == 1 || timeCycle == 2 || timeCycle == 4 || timeCycle == 8  
 +        || timeCycle == 16 || timeCycle == 32 || timeCycle == 40 || timeCycle == 50) { 
 +              signalMaxBuff[index] = signalMax;​ 
 +              signalMinBuff[index] = signalMin;​ 
 +              index = (index + 1) % 8; 
 +              delay(1); 
 +              //​Serial.println(timeCycle);​ 
 +    } 
 +  } 
 + 
 +  // Delete pointer to array 
 +  index = 0; 
 + 
 +  // Calculation after get samples 
 +  for (int i = 0; i < 8; i++) {  // i = row (led matrix) 
 +    // sound level 
 +    peakToPeak[i] = signalMaxBuff[i] - signalMinBuff[i];​ 
 +     
 +    // Map 1v p-p level to the max scale of the display 
 +    displayPeak[i] = map(peakToPeak[i]010230maxScale);​ 
 + 
 +    // Show to led matrix 
 +    displayLed(displayPeak[i], i); 
 +     
 +    // Led drop down 
 +    if (displayPeak[i] >= temp[i]) { 
 +      temp[i] = displayPeak[i];​ 
 +    } 
 +    else { 
 +      temp[i]--; 
 +    } 
 +     
 +    lc.setLed(0,​ i, temp[i], true)
 +    delayMicroseconds(250);​ 
 +  } 
 +    
 +
 + 
 +void displayLed(int displayPeak,​ int row) { 
 +  switch (displayPeak) { 
 +    case 0 : lc.setRow(0, row, 0x80); break; 
 +    case 1 : lc.setRow(0,​ row, 0xC0); break; 
 +    case 2 : lc.setRow(0,​ row, 0xE0); break; 
 +    case 3 : lc.setRow(0,​ row, 0xF0); break; 
 +    case 4 : lc.setRow(0,​ row, 0xF8); break; 
 +    case 5 : lc.setRow(0,​ row, 0xFC); break; 
 +    case 6 : lc.setRow(0,​ row, 0xFE); break; 
 +    case 7 : lc.setRow(0,​ row, 0xFF); break; 
 +  } 
 +}
  
-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**. 
 </​note>​ </​note>​
  
-===== Jurnal ​=====+===== Rezultate Obţinute ​=====
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal ​în care să poată urmări asistentul ​de proiect progresul proiectului.+Rezultatul obținut în urma realizării proiectului este un transmițător audio Bluetooth funcțional care poate fi folosit cu orice boxă cu input RCA și voltaj ​de referință -10dBv.
 </​note>​ </​note>​
  
-===== Bibliografie/​Resurse ​=====+===== Concluzii ​=====
  
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
-<html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</a></html>+<note tip> 
 + 
 + 
 +Să faci un proiect Arduino când este criză de semiconductori global, nu este distractiv. 
 + 
 +</note>
  
pm/prj2022/cstan/22.1650645419.txt.gz · Last modified: 2022/04/22 19:36 by lucian.flutur
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0