Paso 2: código
Para ejecutar este ejemplo, usaremos una librería de arduino para su procesamiento. Es una biblioteca muy práctica que facilita mucho la interfaz de arduino y procesamiento.
Puede visitar página web de procesamiento haciendo clic aquí: https://www.processing.org/.
Para descargar la biblioteca y para más información sobre cómo instalar y utilizar, se puede visitar el siguiente enlace: http://playground.arduino.cc/Interfacing/Processing
Así se instala la biblioteca. Ahora tenemos que subir a arduino en el ejemplo de una estándar firmado (firmware); se encuentra en el arduino IDE abrir archivo > ejemplos > una firmado > StandardFirmata. Seleccione el puerto COM, la placa arduino y subir el ejemplo.
Para el código de procesamiento:
Ventana:
Cuando ejecutamos un proyecto de transformación, la ventana abierta tiene una cierta anchura y altura y todas las formas tales como botones, líneas, etc. son tamaño para ajustarse a la ventana de alguna manera estética/funcional. Pero qué pasa si nos quieren o necesitan una ventana; ¿o uno más pequeño? ¿Debemos tenemos que redimensionar todo?
Para mantenerla proporcional, bosquejado sobre papel el aspecto deseado para la ventana. Entonces, pensando siempre en porcentajes, divide la ventana en áreas útiles y las fronteras como se puede ver en la imagen de arriba.
En este caso me ocurrió con estas proporciones:
80% para la anchura de columnas y 20% para las fronteras y espaciado, así b=80%*width/number de columnas, c=20%*width/number de las columnas.
//Automatic window and column re-sizing float b=0.8*w/3; //default is at 0.8; float c=0.2*w/3; float a=c/2; //c=2*a float d=h-3*a-b; float e=w-c;
Columna:
Cada columna fue hecha por varias líneas de colores y como la altura de la columna varía con la altura de la ventana, también lo hace líneas de color. Para hacer frente a esto que utilicé a la bruja de la función de mapa es mapas muy útiles para, así, valores entre un rango dado.
Para ver una columna que aparece lentamente, puede ejecutar el archivo "Una columna" en el proceso.
Comunicarse con arduino:
Lo que sucede en la función principal del código:
void draw()
{
Si (ratonX > un & & mouseX <a + b & & mouseY > un & & mouseY < un + d & & mousePressed)
Si el puntero del ratón dentro de la columna roja y botón izquierdo del ratón pulsado, hacer lo que sigue
{
La posición del puntero en esta columna se determinará el valor rojo entre 0 y 255
RV = mapa (mouseY, un + d, a, 0, 255);
while(Now-Before)
{
Now=Millis();
}
arduino.analogWrite (Rled, (int) Rv); Enviar valor rojo (de 0 a 255) para arduino
}
Hacer una similar si declaración a valores de verde y azul. (se muestra en el código fuente adjuntado)
Color de muestra en el cuadro de vista previa
Fill(RV,GV,BV); Valores enviados a arduino son los mismos que entraron aquí
Rect (a, 2 * a + d, e, b); dibujar fondo caja (escuchar)
antes = ahora; "Reset" retraso
}