Arduino output per Processing

Ciao ragazzi, ho dato una piccola aggiornata allo sketch arduino_output per Processing aggiungendo qualche piccolo dettaglio e miglioria, con tutti i commenti possibili in italiano. Volevo renderlo pubblico qui per la portata di tutti quelli che la vogliono utilizzare o anche scaricabile da qui: http://bit.ly/zGeRfb Buon divertimento :slight_smile:

/* Arduino OUTPUT
 * Updated 12 Marzo 2012
 * By Rei Kurti
 
 * Programma per controllare tramite PC lo stato dei 13 piedini di Arduino UNO     
   in questo caso utilizzati per comandare 13 LED. Il programma          
   permette di premere 13 pulsanti ognuno corrispondente ad un uscita       
   facendo accendere il LED corrispondente. Tramite il seriale è         
   possibile visualizzare lo stato dei LED.                                                                              
 */

//Importo le librerie processing.serial.*, cc.arduino.*
import processing.serial.*;
import cc.arduino.*;

Arduino arduino;
color stro = color (0, 0, 0);         // Colore contorni quadratini (stroke).
color back = color(222, 222, 222);    // Colore dello sfondo (background).
color off = color(131, 17, 17);       // Colore del pulsante quando non viene premuto (fill on).
color on = color(255, 36, 36);        // Colore del pulsante quando viene premuto (fill off).

int[] values = { Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW,
 Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW,
 Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW };
//------------------------------------------------------------------------------------------------------------+
void setup() {
  
  size(470, 200);  // Dimensioni del riquadro
  
  println(Arduino.list());                                    // VISUALIZZA SUL SERIALE LE PORTE COM CONNESSE AL PC
  arduino = new Arduino(this, Arduino.list()[1], 57600);      // Settaggio porta COM a qui si è connessi ( nel mio caso COM5 = 1)
  
  for (int i = 0; i <= 13; i++)
    arduino.pinMode(i, Arduino.OUTPUT);
  
  println(" ");                       // VISUALIZZA SUL SERIALE UNO SPAZIO VUOTO  
  println(" INIZIO PROGRAMMA: ");     // VISUALIZZA SUL SERIALE LA SCRITTA "INIZIO PROGRAMMA"
  println(" ----------------- ");     // VISUALIZZA SUL SERIALE TRATTINI 
}
//-------------------------------------------------------------------------------------------------------------+
void draw() {
  
  background(back);    // Setto il colore dello sfondo come back --> color(222, 222, 222).
  stroke(stro);        // Setto il colore dei contorni dei quadratini come stro --> color (0, 0, 0).
  
  for (int i = 0; i <= 13; i++) {     // Variabile i=0, 
    if (values[i] == Arduino.HIGH)    // Se il valore di i è equivalente ad Arduino.HIGH ...
      fill(on);                       // allora il quadratino è acceso ...
    else                              // se no ...
      fill(off);                      // allora il quadratino è spento.       
    rect(420 - i * 30, 30, 20, 20);   // Disegna quadratini
  }
  textSize(15);                                               // Grandezza testo
  fill(#09647C);                                              // Colore testo
  text("Programma controllo LED a comando :", 28, 20);        // Scrive il testo tra parentesi + coordinate (TESTO, x, y)
}
//-------------------------------------------------------------------------------------------------------------+
void mousePressed() {
  
  int pin = (450 - mouseX) / 30;      // Imposta variabile pin 
  
  if (values[pin] == Arduino.LOW) {
    arduino.digitalWrite(pin, Arduino.HIGH);
    values[pin] = Arduino.HIGH;   
    println(" LED "+pin+ " ON ");     // VISUALIZZA SUL SERIALE IL LED CHE VIENE ACCESO QUANDO VIENE PREMUTO.
    
  } else {
    
    arduino.digitalWrite(pin, Arduino.LOW);
    values[pin] = Arduino.LOW;    
    println(" LED "+pin+ " OFF ");    // VISUALIZZA SUL SERIALE IL LED CHE VIENE SPENTO QUANDO VIENE PREMUTO.
  }
}

Bravo :slight_smile:

ratto93:
Bravo :slight_smile:

Ti ringrazio :slight_smile:

Perché non lo metti nel Playground? :smiley:

PaoloP:
Perché non lo metti nel Playground? :smiley:

Si può?? non lo sapevo, lo farò di sicuro. Grazie :smiley: