Differences

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

Link to this comparison view

pm:prj2023:alexau:led_controller [2023/05/01 15:06]
eduard.mihailescu created
pm:prj2023:alexau:led_controller [2023/05/21 20:34] (current)
eduard.mihailescu
Line 1: Line 1:
-====== ​Nume proiect ​======+====== ​Led Controller ​====== 
 ===== Introducere ===== ===== Introducere =====
  
 <note tip> <note tip>
-Prezentarea ​pe scurt proiectului vostru: +Acest proiect, poreclit de mine "​Visual-Audio Spectre",​ se axează ​pe controlarea unei benzi de LED-uri prin intermediul unui microcontroller Arduino, 
-  * ce face +pentru ​lumina în diferite moduri (selectate prin intermediul unui buton) bazate pe semnalele sonore (muzica) primite de la un laptop. ​ 
-  * care este scopul lui +Scopul acestui proiect ​este de crea un setup de lucru și gaming captivant, ​care să ofere un mediu estetic plăcut pentru ochi șsă îmbunătățească experiența utilizatorului. 
-  * care fost ideea de la care pornit + 
-  ​* ​de ce credeţi că este util pentru alţii şpentru voi+Ideea de bază a proiectului a pornit din dorința de a combina pasiunea pentru tehnologie și design într-un singur produs inovator. 
 +Cred ca proiectul ​este util atât pentru mine, cât și pentru alții, deoarece îmbină funcționalitatea șestetica,  
 +oferind un element de atracție vizuală și dinamică în orice spațiu în care este implementat.
 </​note>​ </​note>​
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip> +=== Schema Bloc ===
-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ă blochttp://​www.robs-projects.com/​mp3proj/​newplayer.html +{{:pm:prj2023:​alexau:​emihailescu_schema_bloc.png|}}
-</​note>​+
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +=== Lista piese === 
-Aici puneţi tot ce ţine de hardware design: +  ​* ​  1 Microcontroller Arduino UNO R3 
-  * listă de piese +  *   1 Banda LED WS2812B, 5M, 60 led/M, IP20, 5V 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-urie.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +  *   11 Jumper Wires 
-  * diagrame de semnal ​ +  *   1 Condensator 1000μF 
-  * rezultatele simulării +  *   1 Rezistor 330Ohm 
-</​note>​+  *   1 LM393 Sound Detection module 
 +  *   1 Buton 
 +  * O sursa de curent (220V -> 5V,6A) 
 +=== Diagrama hardware == 
 + 
 +{{:​pm:​prj2023:​alexau:​emihailescu_montaj.png?​600|}} 
 + 
 +=== Diagrama electrica === 
 + 
 +{{:pm:​prj2023:​alexau:​emihailescu_schema_electrica.png?600|}} 
 + 
 + 
 +=== Montaj ==== 
 + 
 +{{:​pm:​prj2023:​alexau:​emihailescu_arduino.png?​500|}}
  
 ===== Software Design ===== ===== Software Design =====
Line 32: Line 47:
 <note tip> <note tip>
 Descrierea codului aplicaţiei (firmware): Descrierea codului aplicaţiei (firmware):
-  * mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR) +  * Mediu de dezvoltare ​Arduino IDE 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +  * Biblioteci externe folosite: FastLED + OneButton 
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +  * Algoritmi și structuri: Algoritmi pre-implementati de *random*, unde sinusoidale ce pot fi compuse, algoritmi euristici șde decay
-  ​(etapa 3) surse şfuncţii implementate+
 </​note>​ </​note>​
 +
 +Codul a fost scris utilizând informații din trei laboratoare,​ mai exact 
 +  * Laboratorul 2: Întreruperi hardware -> cod ce se rulează în momentul în care timer-ul ajunge la valoare dorita
 +  * Laboratorul 3: Timere -> cod pentru crearea unui timer ce ruleaza cu o frecventa de 0.5Hz
 +  * Laboratorul 4: ADC -> setarea unui pin ce primește informații în format analog de la un senzor de sunet
 +
 +Logica de baza este destul de simpla. În funcția de setup, fac set-up la banda led folosind funcțiile de setup din biblioteca '​FastLED',​ configurez pinul A1 pentru a activa ADC-ul, setez timer-ul sa declanșeze o întrerupe odată la 2 secunde și leg butonul care este controlat de pinul 3 de funcția care schimba pattern-ul curent.
 +
 +În functia principala de loop, citesc de fiecare data informația care îmi este data de senzor, o translatez în spațiul de valori care mă intereseaza [0-NUM_LEDS-1],​ după care, cu ajutorul unui switch verific pe ce pattern de luminare sunt în momentul actual și apelez funcția corespunzătoare pattern-ului.
 +
 +Fiecare pattern este diferit în felul sau. Primele 5 pattern-uri sunt "​standalone",​ nu se folosesc de valoare citită de pe senzor, și doar luminează pe baza unor funcții matematice ce conferă un aspect interesant și frumos (pe baza de testing). Ultimele 3 pattern-uri folosesc atât intensitatea sunetului citită de senzor pentru a lumina un număr de led-uri proporțional cu aceasta, cât și de întrerupere și timer pentru a schimba în timp culoarea.
 +
 +{{:​pm:​prj2023:​alexau:​cod_eduard_mihailescu.png?​500|}}
 +
 +
 +Restul de cod poate fi vizualizat la următorul link de [[https://​github.com/​Starnox/​pm_project/​blob/​main/​music_visualizer_2/​music_visualizer_2.ino|Github]]
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Link video YouTube: [[https://​youtube.com/​shorts/​dc9mchq6sdU?​feature=share|Rezultat]]
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download ===== +Consider ca rezultatul final este unul foarte satisfăcător, atingând ​mai multe milestone-uri decât mi-am propus inițial (6 pattern-uri în plusși sunt chiar recunoscător ca am avut acest assignment de la facultate deoarce m-a impins sa ies din aria mea de confort intr-o ​ zona în care voiam sa intru dar nu puteam sa încep. Am învățat din greșelicum ar fi faptul ca trebuit sa refac doua comenzi deoarece nu am citit bine data sheet-urileam învățat ca un usb normal poate sa dea în jur de 500mA-900mA, iar LED-urile ​pe care le-am achizițonat, ​în funcție de intensitatea la care lucrează poate sa consume și 10A (am cumpărat și atașat o sursa externa de 5V). Per totalsunt foarte mulțumit de aceasta experiență 
- +
-<note warning>​ +
-O arhivă (sau mai multe dacă este cazulcu fişierele obţinute ​în urma realizării proiectului:​ surse, schemeetc. 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 Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +
-</​note>​+
  
 ===== Jurnal ===== ===== Jurnal =====
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.+  * 20.04.2023 Alegere proiect 
 +  * 30.04.2023 Comanda piese 
 +  * 05.05.2023 Comandat piesa lipsa 
 +  * 06.05.2023 Test initial 
 +{{:​pm:​prj2023:​alexau:​initial_test_eduard.png?​600|}} 
 + 
 +  * 07.05.2023 Test input intensitate muzica 
 +  * 15.05.2023 Adăugare 3 pattern-uri 
 +  * 20.05.2023 Adăugare încă 5 pattern-uri
 </​note>​ </​note>​
  
Line 63: Line 95:
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+  ​https://​www.youtube.com/​watch?​v=4Ut4UK7612M 
 +  ​https://​github.com/​FastLED/​FastLED 
 +  ​https://​github.com/​mathertel/​OneButton 
 +  ​https://​github.com/​NeverPlayLegit/​Rainbow-Fader-FastLED/​blob/​master/​rainbow.ino 
 + 
 </​note>​ </​note>​
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/alexau/led_controller.1682942809.txt.gz · Last modified: 2023/05/01 15:06 by eduard.mihailescu
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