Go Down

Topic: Luminosità Led con Mouse (Read 384 times) previous topic - next topic

RxxK

Mar 04, 2012, 09:55 am Last Edit: Mar 04, 2012, 10:24 am by UweFederer Reason: 1
Ciao ragazzi, volevo chiedervi se conoscete qualche buona guida per comandare la luminosità di un led attraverso il mouse. Ho provato a seguire la guida che ce sul sito di arduino ( http://arduino.cc/en/Tutorial/Dimmer ) ma senza successo, non riesco a capire dove sbaglio. Qulcuno mi può aiutare ?? grazie :D

lollotek

che Arduino usi?
che codice hai caricato ? quello che hai postato prende il valore di luminosità dalla seriale, tu hai provato a mandarlo?
se si vuole aiuto bisogna spiegare al meglio la situazione in cui ci si trova..

uwefed

Di nuovo un caso per la sfera di cristallo... ;) ;)

come leggi il mouse?
Ciao Uwe

Federico Vanzati

Per fa si che arduino conosca la posizione del tuo mouse (o comunque una sua interpretazione) i passid a fare sono:

  • avere un sw sul pc in grado di leggere la posizione del mouse

  • nello stesso sw ci deve essere una parte dedicata all'invio del valore alla porta seriale di Arduino

  • su Arduino ci deve essere uno sketch in ascolto sulla seriale ed ogni volta che riceve qualcosa lo trasforma in una differente luminosità del led



Nell'esemio che hai trovato tutti e tre i passi sono già fatti: lo sketch lo carichi su Arduino e su processing fai girare questo codice:

Code: [Select]
// Dimmer - sends bytes over a serial port
// by David A. Mellis
//This example code is in the public domain.

import processing.serial.*;
Serial port;

void setup() {
size(256, 150);

println("Available serial ports:");
println(Serial.list());

// Uses the first port in this list (number 0).  Change this to
// select the port corresponding to your Arduino board.  The last
// parameter (e.g. 9600) is the speed of the communication.  It
// has to correspond to the value passed to Serial.begin() in your
// Arduino sketch.
port = new Serial(this, Serial.list()[0], 9600);  

// If you know the name of the port used by the Arduino board, you
// can specify it directly like this.
//port = new Serial(this, "COM1", 9600);
}

void draw() {
// draw a gradient from black to white
for (int i = 0; i < 256; i++) {
stroke(i);
line(i, 0, i, 150);
}

// write the current X-position of the mouse to the serial port as
// a single byte
port.write(mouseX);
}


Se questi 2 passi li hai già fatti (ma non ce lo hai detto, non potevamo saperlo) allora potrebbe essere che la porta seriale di default impostata su processing ( 0 ) non corrisponda a quella della tua arduino. In questo caso dovresti:

una volta lanciata l'applicazzione, guardare nella "striscia nera" sotto l'ide (di processing) perchè il metodo:

Code: [Select]
println(Serial.list());
fa si che che compaiano tutte le porte seriali che processing riesce a vedere e vengono numerate, prendi quel numero e lo metti:

Code: [Select]
port = new Serial(this, Serial.list()[0], 9600);

in alternativa se cosci già la porta a cui è collegato (come dovresti), specialmente su Win dove i numeri delle COM sono assegnati ai device puoi scrivere:

Code: [Select]
port = new Serial(this,"COMx", 9600);

dove al posto della x metti il numero della COM port di Arduino, ad esempio COM8.
F

pablos

forse vuole farlo tramite uno slider creato su html ....... non vedo l'utilità di usare un mouse se non vede i movimenti a video

ciao
no comment

RxxK


Per fa si che arduino conosca la posizione del tuo mouse (o comunque una sua interpretazione) i passid a fare sono:

  • avere un sw sul pc in grado di leggere la posizione del mouse

  • nello stesso sw ci deve essere una parte dedicata all'invio del valore alla porta seriale di Arduino

  • su Arduino ci deve essere uno sketch in ascolto sulla seriale ed ogni volta che riceve qualcosa lo trasforma in una differente luminosità del led



Nell'esemio che hai trovato tutti e tre i passi sono già fatti: lo sketch lo carichi su Arduino e su processing fai girare questo codice:

Code: [Select]
// Dimmer - sends bytes over a serial port
// by David A. Mellis
//This example code is in the public domain.

import processing.serial.*;
Serial port;

void setup() {
size(256, 150);

println("Available serial ports:");
println(Serial.list());

// Uses the first port in this list (number 0).  Change this to
// select the port corresponding to your Arduino board.  The last
// parameter (e.g. 9600) is the speed of the communication.  It
// has to correspond to the value passed to Serial.begin() in your
// Arduino sketch.
port = new Serial(this, Serial.list()[0], 9600);  

// If you know the name of the port used by the Arduino board, you
// can specify it directly like this.
//port = new Serial(this, "COM1", 9600);
}

void draw() {
// draw a gradient from black to white
for (int i = 0; i < 256; i++) {
stroke(i);
line(i, 0, i, 150);
}

// write the current X-position of the mouse to the serial port as
// a single byte
port.write(mouseX);
}


Se questi 2 passi li hai già fatti (ma non ce lo hai detto, non potevamo saperlo) allora potrebbe essere che la porta seriale di default impostata su processing ( 0 ) non corrisponda a quella della tua arduino. In questo caso dovresti:

una volta lanciata l'applicazzione, guardare nella "striscia nera" sotto l'ide (di processing) perchè il metodo:

Code: [Select]
println(Serial.list());
fa si che che compaiano tutte le porte seriali che processing riesce a vedere e vengono numerate, prendi quel numero e lo metti:

Code: [Select]
port = new Serial(this, Serial.list()[0], 9600);

in alternativa se cosci già la porta a cui è collegato (come dovresti), specialmente su Win dove i numeri delle COM sono assegnati ai device puoi scrivere:

Code: [Select]
port = new Serial(this,"COMx", 9600);

dove al posto della x metti il numero della COM port di Arduino, ad esempio COM8.


Grazie mille Federico,sei stato molto esaudiente. Ho seguito la tua procedura e va tutto alla perfezione utilizzando Processing :D

Go Up