Go Down

Topic: Luminosità Led con Mouse (Read 406 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
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy