RGB Control - Processing

Salve a tutti.
Durante questo periodo di vacanze mi sono dedicato ad alcuni progetti tra cui un programma (in linguaggio Processing), per la gestione di un LED RGB.
Se a qulcuno dovesse interessare ecco il codice sorgente:

/* Questo sketch permette di pilotare un LED RGB controllandone lo stato (ON/OFF)
 * e il colore mediante tre slider che gestiscono rispettivamente il rosso, il 
 * verde e il blu.
 *
 * Program created by Hertz on 30/08/2013
 *
 * NOTA: Per utilizzare questo programma bisogna caricare su Arduino 
 *       lo sketch di esmpio standardFirmata.
 *
*/

import controlP5.*;
import cc.arduino.*;
import processing.serial.*;

ControlP5 cp5;
Arduino arduino;
PFont f;

int bluLed = 11;
int redLed = 10;
int greenLed = 9;

int redValue = 128;
int bluValue = 128;
int greenValue = 128;

void setup() {
  size(400,300);
  smooth();
  f = createFont("Arial",27);
  textFont(f);
  arduino = new Arduino(this, Arduino.list()[0], 57600);
  cp5 = new ControlP5(this);
  
  arduino.pinMode(bluLed, Arduino.OUTPUT);
  arduino.pinMode(redLed, Arduino.OUTPUT);
  arduino.pinMode(greenLed, Arduino.OUTPUT);
  
  cp5.addSlider("RED",0,255,128,45,65,30,200);
  cp5.addSlider("GREEN",0,255,128,115,65,30,200);
  cp5.addSlider("BLU",0,255,128,185,65,30,200);
  cp5.addBang("ON",280,70,50,30);
  cp5.addBang("OFF",280,150,50,30);
  
  }
 
void draw() {
  background(0);
  fill(255);
  stroke(255);
  text("RGB Control",120,30);
   }

void RED(int redValue_) {
  redValue = redValue_;
  println("a slider event. setting redValue to "+redValue_);
  }
void GREEN(int greenValue_) {
  greenValue = greenValue_;
  println("a slider event. setting greenValue to "+greenValue_);
  }
void BLU(int bluValue_) {
  bluValue = bluValue_;
  println("a slider event. setting bluValue to "+bluValue_);
  }
void ON() {
  arduino.analogWrite(redLed, redValue);
  arduino.analogWrite(bluLed, bluValue);
  arduino.analogWrite(greenLed, greenValue);
  println("ON");
  }
void OFF() {
  arduino.analogWrite(redLed, Arduino.LOW);
  arduino.analogWrite(bluLed, Arduino.LOW);
  arduino.analogWrite(greenLed, Arduino.LOW);
  println("OFF");
  }

Sono ben accetti consigli e critiche!!
Cosa ne pensate???

Lato Arduino cosa usi? Firmata o un tuo sketch?
Come sono collegati i led RBG? A quali pin di Arduino?
Versione di Processing e IDE di Arduino usata?

Su Arduino carico Firmata (come specificato nello sketch).
I LED sono ad anodo comune, quindi:

  • a GND di Arduino;
    katodo rosso a pin 10;
    katodo verde a pin 9;
    katodo blu pin 11;

La versione di Processing che utilizzo è la 2.0b8, quella dell IDE di Arduino è la 1.0.5

Credo di aver specificato tutto, se manca qualche altra cosa chiedete :slight_smile:

Hertz:
Su Arduino carico Firmata (come specificato nello sketch).
...
La versione di Processing che utilizzo è la 2.0b8, quella dell IDE di Arduino è la 1.0.5

Finalmente hanno aggiornato FirmataForProcessing alla 2 !!!
http://playground.arduino.cc/Interfacing/Processing
http://playground.arduino.cc/uploads/Interfacing/processing2-arduino.zip

Scusa, però perchè 2.0b8 di Processing? C'e' una versione stabile 2.02

Hertz:
(come specificato nello sketch).

Scusa, ma i credits iniziali di solito li salto. :sweat_smile:

Si so che è uscita la versione 2.02 di Processing ma non ho avuto ancora il tempo di aggiornarlo, per quanto riguarda Firmata non sapevo fosse uscito un aggiornamento.
Appena ho un po' di tempo aggiorno entrambi.