Ok, ieri ho ordinato l'Arduino UNO Rev3 come consigliato da Alfio.
Ho gia' smontato i 2 potenziometri del joypad della PS2 e sono perfetti: si spostano di 60° su due assi ma variano la loro resistenza tra 0 e 10k, anche se in maniera un tantino poco lineare. Spero questo non sia un problema. Ho intenzione di disegnare presto una curva R-gradi per capire come si muove lungo il suo arco.
Ci sara' un terzo potenziometro, supponiamo sempre da 10k, sul terzo asse e gestira' il "volume totale" della luce: il master.
Le modifiche al progetto iniziale sono queste:
4 fotoresistenze agli angoli della stanza, rivolte verso il basso. Non leggono la luce diretta dei led ma quella ambiente. Un selettore a 2 posizioni: MANUAL / AUTO (un contatto che va alto o basso).In "manual" la luce si comanda col joystick sui 3 assi. In "auto" la luce va dove ce n'e' di meno, a seconda della lettura delle 4 fotoresistenze.
Se apro una finestra c'e' moltissima luce a NE, molta a NW e poca a SW e SE. La luce andra' al 100% a SW e al 75% a SE, mentre a NE e NW puo' essere pure spenta, in modo che la lettura delle 4 fotocellule sia uniforme. Il "volume" della luce sara' comunque gestito dal potenziometro del terzo asse.
Quando lo rimetto in MANUAL il comando "balance" e "fader" viene gestito dal joystick, manualmente.
Seconda modifica: dimmer automatico. Un contatto che messo alto o basso si occupi di agire sul comando "volume" quando il selettore di poc'anzi e' messo su manual. In pratica e' una sorta di semiauto: la luce la dirigo col joystick ma la quantita' di luce la decide la somma delle fotocellule.
Sarebbe bello comunque, per i due scopi, un selettore AUTO/SEMIAUTO/FULL.
Terza modifica: il contatto pulsante del joystick mi accende e mi spegne interamente la luce, come un bistabile, ma con una certa velocita' da decidere con un trimmer fisso nella scatola. La posizione del trimmer dentro la scatola decide il tempo T in cui la luce deve passare da 0 al valore impostato dal volume (da zero a 5 secondi), e viceversa quando si ripreme il pulsante per spegnere tutto.
Quarta modifica: usare due joystick uguali, in due posti della stanza. Quando si agisce su uno, l'altro e' inattivo. Non appena si tocca il secondo joystick (cioe' varia una delle sue resistenze, che sono comunque costantemente lette) allora si esclude il primo e si usano i valori delle resistenze del secondo, chiaramente con il salto di luce dovuto alla diversa posizione del joystick. Viceversa se torno al primo.
Credo siano cose fattibili con la programmazione, no? Sta diventando troppo macchinoso? :)