Progetto Lampada RGB con interfaccia capacitiva


salve tutti, mi presento, mi chiamo fulvio e mi sono cimentato in un progetto forse un po' ambizioso per le mie conoscenze.

una piccola premessa prima di iniziare il topic: mi impegno solennemente nel portare termine questo progetto e prometto che una volta che sarà completato posterò una guida fotografica o video per realizzare da 0 un progetto simile.

veniamo noi:
giorni fa sono stato in un grande negozio di mobili ed articoli d'arredo svedese; lì ho visto una meravigliosa lampada da tavolo forma di sfera, bianca opaca, molto elegante, ma onestamente leggermente anonima.


ho pensato di comprare una lampadina rgb dai cinesi e dargli un po' di vita ...ma gestire tutto con un telecomando mi sembrava una soluzione non degna di un aspirante maker, così mi sono venute mille idee.

mi è venuto subito in mente arduino: il progetto consisterà in una lampada rgb ma che cambia colore quando si avvicina la mano in una specifica area e che si accenda e si spenga quando la si tocchi in un altra porzione della sfera.

sono riuscito scrivere il codice che fa accendere e spegnere la luce utilizzando questo codice ed inserendo un sottile filamento di rame nella parte interna della sfera :
code: [select]

#include <capacitivesensor.h>
int statoled = low;
int led = 13;
capacitivesensor cs_4_2 = capacitivesensor(4,2);
 
void setup()
{
pinmode(led, output);
cs_4_2.set_cs_autocal_millis(0xffffffff); // turn off autocalibrate on channel 1 - example
}
 
void loop()
{
long total1 = cs_4_2.capacitivesensor(30);
 
if (total1 > 50){
if (statoled == low){
statoled = high;
digitalwrite(led, statoled);
delay(200);}
else{
statoled = low;
digitalwrite(led, statoled);
delay(200);
}
}
delay(10);
}


devo dire che funziona egregiamente, anche se il filo è molto sottile e disposto per una prova alla meno peggio.

in rete ho trovato il progetto di un ragazzo che ringrazio, riccardo ouvina, il quale servendosi di 3 funzioni sinusoidali sfasate di pi/3 ha realizzato un simpatico gioco di luci utilizzando questo codice che ho leggermente modificato:

code: [select]

float rgb[3];
int redled   = 11;  // red led in digital pin 11 (pwm)
int greenled = 10;  // green led in digital pin 10 (pwm)
int blueled  = 9;   // blue led in digital pin 9 (pwm)

void setup(){
  pinmode(redled,output);  // tell arduino it's output
  pinmode(greenled,output);// tell arduino it's output
  pinmode(blueled,output); // tell arduino it's output
 
  // set outputs low
  digitalwrite(redled,low);
  digitalwrite(greenled,low);
  digitalwrite(blueled,low);
}

void loop(){
  (float x=0;x<pi;x=x+0.00001){
    rgb[0]=255*abs(sin(x*(180/pi)));           // calculate brightness red led
    rgb[1]=255*abs(sin((x+pi/3)*(180/pi)));    // calculate brightness green led
    rgb[2]=255*abs(sin((x+(2*pi)/3)*(180/pi)));// calculate brightness blue led
      {
      //  write brightness on leds
      analogwrite(redled,rgb[0]);
      analogwrite(greenled,rgb[1]);
      analogwrite(blueled,rgb[2]);
    }
    for(int i=0;i<3;i++){
      if(rgb[i]<1){
        delay(100);
      }
      if(rgb[i]<5){
        delay(50);
      }
      if(rgb[i]<10){
        delay(10);
      }
      if(rgb[i]<100){
        delay(5);
      }
    }
    delay(1);
  }
}


adesso quello che vorrei fare è: utilizzando queste due porzioni di codice, unirle in un unico codice e creare un interfaccia capacitiva due aree di contatto che funzionano nel seguente modo:
  • quando tocco la prima area (a1) sulla superficie della sfera la luce si accende e si spegne
  • quando tocco la seconda area (a2) sulla superficie della sfera colori vengono sfumati lentamente e quando la mano si allontana da a2 il programma si arresta lasciando l'ultima combinazione di colori


c'è qualche anima pia che saprebbe/potrebbe aiutarmi o instradarmi per realizzare questo progetto?

grazie in anticipo tutti per il vostro tempo.
fulvio



Arduino Forum > International > Italiano > Generale (Moderator: leo72) > Progetto Lampada RGB con interfaccia capacitiva


arduino

Comments