Archivo de la etiqueta: processing

led rgb, arduino y processing


Después de ver los videotutoriales de 0xDA_bit sobre Processing, me entró el gusanillo de probar de nuevo este maravilloso software, y decidí hacer el control de un led RGB conectado a Arduino pero modificando sus componentes de color mediante un programa realizado en Processing.

Para realizar dicho cometido me puse a buscar librerias de componentes para añadir a nuestros programas que vayamos realizando en Processing e ir haciendolos más profesionales y más complejos. Dicha librería la podéis descargar desde http://www.mediafire.com/?as8bnrkfk9v8kjf o bien desde la siguiente página web http://www.lagers.org.uk/g4p/.

Os dejo el esquemático de conexión del diodo led RGB a Arduino y también una imagen del software:

Aquí tenéis el video de funcionamiento:

Para el código basta con grabar en el Arduino el ejemplo que trae el IDE de Arduino que está en Firmata y es el StandardFirmata for Uno, y este es el código para processing (acordaros de copiar la librería guicomponents en processing):

//Añadimos las librerias necesarias
import processing.serial.*;
import cc.arduino.*;
import guicomponents.*;

Arduino arduino;
/*Programa simple que crea 3 selectores de color para controlar 
los componentes RGB de un diodo led conectado a Arduino.*/
GKnob knbRed, knbGreen, knbBlue;
int r, g, b; //variables donde guardaremos el valor correspondiente a cada componente de color
int kx, ky;

void setup() {
  size(400, 220);
  arduino = new Arduino(this,  Arduino.list()[2], 57600);  //Creamos el componente para trabajar con Arduino desde el programa 
  //Arriba donde pone Arduino.list()[], el 2 es donde me reconoce a mi el Arduino, puede ser 1 o 0, depende de las cosas conectadas
  //mediante puerto serie virtual
  r = g = b = 160;  //iniciamos cada componente a un valor de 160 (entre 0 y 255)
  arduino.analogWrite(10,r);  //Escribimos dichos valores en los 3 pines asignados para controlar nuestro diodo led RGB
  arduino.analogWrite(9,g);
  arduino.analogWrite(6,b);
  kx = 20;
  ky = 20;
  
  //Creacción y control del programa en processing, viene todo hecho en los ejemplos de la libreria guicomponents
  G4P.setMouseOverEnabled(true);
  G4P.cursor(HAND, CROSS);

  knbRed = new GKnob(this, kx, ky, 150, 150, 270);
  knbRed.setControlMode(GKnob.CTRL_ANGULAR);
  knbRed.setRotArcOnly(true);
  knbRed.setLimits(r, 0, 255);
  knbRed.setNbrTickMarks(9);
  knbRed.localColor = GCScheme.getColor(this, GCScheme.RED_SCHEME);

  knbGreen = new GKnob(this, kx + 8, ky, 150, 270, 20);
  knbGreen.setControlMode(GKnob.CTRL_ANGULAR);
  knbGreen.setRotArcOnly(true);
  knbGreen.setLimits(g, 0, 255);
  knbGreen.setNbrTickMarks(9);
  knbGreen.localColor = GCScheme.getColor(this, GCScheme.GREEN_SCHEME);

  knbBlue = new GKnob(this, kx + 4, ky + 9, 150, 20, 150);
  knbBlue.setControlMode(GKnob.CTRL_ANGULAR);
  knbBlue.setRotArcOnly(true);
  knbBlue.setLimits(b, 0, 255);
  knbBlue.setNbrTickMarks(9);

  stroke(0);
  strokeWeight(3);
  rectMode(CORNERS);
}

void draw() {
  background(220, 220, 255);
  fill(r, g, b);
  rect(kx + 190, 40, width - 40, height - 40);
  fill(0);
  text("Drag mouse in circular movement around the knobs centre", 10, height-10);
}


//En esta función es donde mando el valor pwm al arduino para cada color del led RGB
void handleKnobEvents(GKnob knob) {
  if (knob == knbRed){ 
    r = knob.getValue();
    arduino.analogWrite(10,r);}
  else if (knob == knbGreen){
    g = knob.getValue();
    arduino.analogWrite(9,g);}
  else if (knob == knbBlue){
    b = knob.getValue();
    arduino.analogWrite(6,b);}
}

Espero que os guste!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

ProcessingTutorials Cap 2. Introducción Processing/Arduino (II)


Con un poco de retraso, como viene siendo costumbre en mí, hacemos entrega del segundo capítulo de la mini serie de tutoriales “Processing Tutorials”.

En este segundo capítulo, proseguimos los conceptos dados en el primer video, haciendo de ambas partes un solo video. En esta parte, hemos realizado un par de ejemplos con un nivel del complejidad más elevado, en lo que a la parte gráfica de Processing se refiere, para dar una pequeña idea al usuario de lo que se puede llegar hacer con este programa. De aquí en adelante debe dejar volar su imaginación y añadir lo que quiera en el código del programa, unas tírulos, más botones, …

Sin más y como siempre aquí os dejo el link de descargar para que podáis obtener los archivos adjuntos al video tutorial y, cómo no, el video!

Espero que os haya gustado. Nos vemos en el próximo video, espero vuestro comentarios, aportaciones, críticas, …

Enjoy!

Manual de ayuda Processing


Muy buenas a todos de nuevo!

A falta de dos días, aproximadamente, para que subamos el 2º capítulo de la serie “Processing tutorials”, hemos decidido subir este “Manual de ayuda de Processing” realizado por “Juan María Sarrió García”.

En este documento podréis aprender, prácticamente, la totalidad de las funciones a realizar con la IDE de Porcessing. Descargarlo y leerlo ya que considero que es un manual muy completo que os va ayudar muchísimo y sirve de herramienta para poder entender mejor los videotutoriales.

Sin más, aquí os dejo el link y me voy acabar de subir el video….

 

Enjoy!

 

ProcessingTutorials Cap 1. Introducción Processing/Arduino


Muy buenas a todos de nuevo, tras llegar una semana tarde a la entrega del video tutorial hoy traemos una sorpresa! desde taller arduino, hemos creído oportuno realizar este serie de tutoriales que os presentamos hoy “Processing Tutorials”.

Presentamos este primer capítulo de esta mini serie de videotutoriales en los que queremos introducir a todo el mundo en la IDE de Processing. Processing es un programa basado en la programación JAVA, por lo que recomiendo a todo el mundo antes de usarlo mirase un poco como funciona la programación orientada a objetos, el cual nos va a servir para crear interfaces gráficas para trabajar con Arduino, PICguino, MAPLE, o cualquier otra plataforma gráfica, de hecho lo podemos usar sin la necesidad de usar hardware.

Processing nos aporta un gran número de ventajas, a pesar de tener una interface de usuario tan simple como la de Arduino, de hecho la IDE Arduino está inspirada en IDE Processing, es un programa muy potente que nos permite, tal y como podréis ver el tercer ejemplo de este primer tutorial, nos permitirá realizar ejecutables de los programas que realicemos con él.

Sin más aquí os dejo con el video. Como siempre, aquí os dejo el link para que descarguéis los documentos adjuntos usados en el videotutorial!

Enjoy

pinguino pic y processing el comienzo


Estoy empezando a aprender a utilizar processing, para poder realizar aplicaciones para el Pinguino PIC, así que en esta entrada explicaré una aplicación que he modificado y he ido comentando para poder entenderla mucho mejor para los que como yo estan empezando en esto de unir Pinguino PIC con Processing.

Empiezo contando un poco lo que es processing:

Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Fue iniciado por Ben Fry y Casey Reas a partir de reflexiones en el Aesthetics and Computation Group del MIT Media Lab diriguido por John Maeda.

Processing es desarrollado por artistas y diseñadores como una herramienta alternativa al software propietario. Puede ser utilizado tanto para aplicaciones locales así como aplicaciones para la web (Applets).

Se distribuye bajo la licencia GNU GPL. Además al estar basado en Java, puede heredar todas sus funcionalidades, convirtiéndose en una herramienta poderosa a la hora de encarar proyectos complejos.

Aquí podeis ver que el IDE de Processing es similar al de Arduino y al de Pinguino PIC:

La programación es bastante sencilla en un principio y bastante fácil de entender, de momento lo que he mirado ha sido así, según vaya aprendiendo más iré contando mis experiencias. Ahora os muestro un ejemplo para comunicar el Pinguino PIC mediante USB y una aplicación en Processing (es una modificación de una aplicación realizada por http://pinguino.walii.es).

Este es la aplicación gráfica realizada en Processing:

Gracias a esta aplicación podemos controlar tanto las entradas digitales y analógicas como las salidas digitales mediante el USB del Pinguino PIC, en una descripción breve lo que se puede hacer es lo siguiente:

  • Activar o desactivar las salidas digitales (‘1’o ‘0’) mediante los cuadrados rojos pulsando con el ratón sobre ellos.
  • Activar o desactivar las salidas digitales (‘1’o ‘0’) mediante las teclas correspondientes del teclado del ordenador ‘0’ a ‘9’.
  • Visualización de los cambios de las entradas digitales (’10’, ’11’ y ’12’) , activadas mediante pulsadores en la protoboard.
  • Visualización de las entradas analógicas, en mi caso 2 de ellas modificables mediante potenciometro y la otra mediante una ldr.

Os dejo el video de funcionamiento:

Aquí os dejo los archivos de la aplicación y del programa para el Pinguino PIC:

http://www.mediafire.com/?dvtujt6i4gsr66e

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal