Differences

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

Link to this comparison view

pm:prj2023:vstoica:ambilight [2023/05/05 15:00]
stelian.chioveanu [Hardware Design]
pm:prj2023:vstoica:ambilight [2023/05/29 00:31] (current)
stelian.chioveanu [Download]
Line 1: Line 1:
 ====== Ambilight PC ====== ====== Ambilight PC ======
 +(Chioveanu Stelian 332CA)
 ===== Introducere ===== ===== Introducere =====
  
 <note tip> <note tip>
-Acest proiectul ​implica crearea un sistem de ambilight pentru laptop/PC utilizand o placa Arduino si LED-uri RGB. Scopul este de a crea o experienta mai captivanta pentru utilizatorii de laptop/PC, prin iluminarea peretelui din spatele dispozitivului în functie de culorile din ecran. Acest lucru se realizeaza prin utilizarea unui program care citeste culorile de pe ecran si trimite informatiile la Arduino pentru a controla culorile LED-urilor. Proiectul este o combinatie de hardware si software, oferind o experienta unica si personalizata pentru utilizatorii de laptop/PC+Acest proiect ​implica crearea un sistem de ambilight pentru laptop/PC utilizand o placa Arduino si LED-uri RGB. Scopul este de a crea o experienta mai captivanta pentru utilizatorii de laptop/PC, prin iluminarea peretelui din spatele dispozitivului în functie de culorile din ecran. Acest lucru se realizeaza prin utilizarea unui program care citeste culorile de pe ecran si trimite informatiile la Arduino pentru a controla culorile LED-urilor. Proiectul este o combinatie de hardware si software, oferind o experienta unica si personalizata pentru utilizatorii de laptop/PC
 </​note>​ </​note>​
 ===== Descriere generală ===== ===== Descriere generală =====
Line 15: Line 16:
   * Banda led – afiseaza culorile primate de la arduino   * Banda led – afiseaza culorile primate de la arduino
  
-{{stelian_chioveanu_ambilight_diagrama.png}}+{{stelian_chioveanu_ambilight_diagrama.png?500}}
  
 </​note>​ </​note>​
Line 32: Line 33:
   * Arduino   * Arduino
 Pentru modulul Bluetooth am utilizat un divisor de tensiune(acesta avea nevoie de 3.3V in loc de 5V cat ofera arduino). Pentru conectarea benzii led am utilizat 3 rezistente de 1k in paralele(330ohm). Pentru modulul Bluetooth am utilizat un divisor de tensiune(acesta avea nevoie de 3.3V in loc de 5V cat ofera arduino). Pentru conectarea benzii led am utilizat 3 rezistente de 1k in paralele(330ohm).
-{{wrap(stelian_chioveanu_ambilight_breadboard.png?w=200&​h=150)}} + 
-{{2000x1500>:​stelian_chioveanu_ambilight_breadboard.png}} +{{stelian_chioveanu_schema-hardware-breadboard.png?500}} 
-{{200x150>:​stelian_chioveanu_ambilight_schema.png}}+{{stelian_chioveanu_schema-hardware.png?500}}
 </​note>​ </​note>​
  
Line 48: Line 49:
  
 Pentru partea de ambilight va fi nevoie de un program extern pe nume Prismatik care preia culorile de pe ecran si le trimite prin interfata seriala. Pentru partea de ambilight va fi nevoie de un program extern pe nume Prismatik care preia culorile de pe ecran si le trimite prin interfata seriala.
 +
 +S-a utilizat o intrerupere pe pinul 2, care la apasarea butonului va incrementa variabila "​mode"​ care reprezinta modul de functionare(bluetooth,​ ambilight, spectrum). Am utilizat un debouncer.
 +
 +<​code>​
 +ISR(INT0_vect) {
 +  if((long)(micros() - lastDebounceTime) >= debounceDelay) {
 +    mode++;
 +    lastDebounceTime = micros();
 +  }
 +}
 +</​code>​
 +
 +In functie de variabila "​mode"​ modul de functionare va fi altul:
 +
 +<​code>​
 +void loop() {
 +  if(mode % 3 == 0){
 +    TIMSK1 |= (1 << OCIE1A);
 +    spectrum();
 +    TIMSK1 &= ~(1 << OCIE1A);
 +  }
 +  if(mode % 3 == 1){
 +    bluetooth();​
 +  }
 +  if(mode % 3 == 2){
 +    ambi();
 +  }
 +}
 +</​code>​
 +
 +Am utilizat un timer pentru o functie delay custom. Acest timer incrementeaza o valoare, asteptand modificarea valorii intr-un while acolo unde aveam nevoie de delay.
 +
 +<​code>​
 +ISR(TIMER1_COMPA_vect) {
 +  if (counter_time > 20000) {
 +    counter_time = 0;
 +  }
 +  counter_time++;​
 +}
 +</​code>​
 +
 +Functia "​Light_RGB_LED"​ parseaza culorile primite prin bluetooth:
 +
 +<​code>​
 +void Light_RGB_LED(){
 +  int SP1 = RGB_string.indexOf('​.'​);​
 +  int SP2 = RGB_string.indexOf('​.',​ SP1+1);
 +  int SP3 = RGB_string.indexOf('​.',​ SP2+1);
 +  String R = RGB_string.substring(0,​ SP1);
 +  String G = RGB_string.substring(SP1+1,​ SP2);
 +  String B = RGB_string.substring(SP2+1,​ SP3);
 +  LEDS.showColor(CRGB(R.toInt(),​ G.toInt(), B.toInt()));​
 +}
 +</​code>​
 +
 +Functia "​spectrum"​ cicleaza prin diferite culori(de la turcoaz la albastru si mov).
 +
 +
 +Functia "​ambi"​ este cea pentru ambilight, aceasta preluand valorile de la seriala.
 +
 +
 +Pentru partea de bluetooth, se asteapta valori de genul (x.x.x) unde x este o valoare intre 0 si 255. Dupa extragerea valorilor, toate ledurile vor primi aceasta valoare.
 </​note>​ </​note>​
  
Line 53: Line 116:
  
 <note tip> <note tip>
-{{stelian_chioveanu_ambilight_rezultat1.png}} +{{stelian_chioveanu_ambilight_rezultat1.png?500}} 
-{{stelian_chioveanu_ambilight_rezultat2.jpeg}}+{{stelian_chioveanu_ambilight_rezultat2.jpeg?500}} 
 +{{stelian_chioveanu_final.jpeg?​500}}
 </​note>​ </​note>​
  
Line 65: Line 129:
  
 <​note>​ <​note>​
-{{pm:​prj2023:​vstoica:​proiect_pm_ambilight.zip| Sursa si diagrame}}+{{pm:​prj2023:​vstoica:​stelian_chioveanu_final.zip| Sursa si diagrame}}
 </​note>​ </​note>​
  
pm/prj2023/vstoica/ambilight.1683288055.txt.gz · Last modified: 2023/05/05 15:00 by stelian.chioveanu
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