Paso 3: Integrar el Arduino y el procesamiento
Descargue el bosquejo del proceso:
1) cierre el programa compilador de arduino.
2) Descargue el procesamiento de dibujo https://www.dropbox.com/sh/hexeeougg5dulqz/PiA8Mb...
enlace de github: https://www.dropbox.com/sh/hexeeougg5dulqz/PiA8Mb...
Abrir el código en el proceso (UPanimation.pde)..."personalizedFunctions.pde" debe estar en la misma carpeta.
4) asegurar Arduino está conectado vía usb al ordenador
5) asegurar que la línea de proceso con "myPort = serie nueva (este, Serial.list() [0], 9600);" es correcto, Serial.list() [0] es el puerto serie. Para nosotros es generalmente 0, pero a veces era 1. Este es el puerto que habla a su arduino. Obtendrá un error si este no está configurado.
6) ejecute el bosquejo. Esperemos que, cuando toca los cables pelados, verás cambios en la pantalla.
7) Nota la estructura if-then-else del código de procesamiento. Se puede editar para hacer diferentes flores de color RGB o añadir más umbrales para obtener un palmo más grande de colores...
pega el código:
/ *** por Ellen Keith, Yael Braha, Marc Roth, Tosh Chiang y Jasdeep Garcha para SF hasta festival 2012 *** /
#include "pitches.h"
audio int melodía [] = {NOTE_E5, NOTE_B6}; int melody2 [] = {NOTE_F5, NOTE_C6}; int noteDurations [] = {8, 8, 2};
muestreo y io pairOne int = A0; int pairTwo = A1; int led = 13; int aOut = 12;
el resto
int triggerThresh = 50; establece el gatillo foroutput boolean stopMusic = true; countOut int = 0;
void setup() {//configures entradas y salidas
Serial.Begin(9600); pinMode (pairOne, entrada); pinMode (pairTwo, entrada); pinMode (led, salida); en arduino pinMode (aOut, salida); }
void loop() {int handShakeReadFinal1; //for final int handShakeReadFinal2; analogReference(INTERNAL1V1); //command varía entre arduinos / / analogReference(INTERNAL); / / leer la entrada en el pin analógico 0 y 1: int handShakeRead1 = analogRead(pairOne); delay(10); //resample pin 0! int handShakeRead1b = analogRead(pairOne); int handShakeRead2 = analogRead(pairTwo); delay(10); //resample pin 1! int handShakeRead2b = analogRead(pairTwo);
valor de salida sólo si ambas muestras son mayores que el umbral y distinto de cero si (handShakeRead1 > triggerThresh y handShakeRead1b > triggerThresh) {handShakeReadFinal1 = handShakeRead1;} else {handShakeReadFinal1 = 0;}
Si (handShakeRead2 > triggerThresh y handShakeRead2b > triggerThresh) {handShakeReadFinal2 = handShakeRead2;} else {handShakeReadFinal2 = 0;}
imprimir valores para puerto serie Serial.print('A'); Serial.println(handShakeReadFinal1); Serial.Print('B'); Serial.println(handShakeReadFinal2);
Delay(50);
audio
Si (handShakeReadFinal1 > triggerThresh || handShakeReadFinal2 > triggerThresh) {digitalWrite (led, alto); si (stopMusic) {tune();}} else {countOut = 0; stopMusic = true; digitalWrite (led, LOW); / / delay(1000);}}
void tune() {para (int thisNote = 0; thisNote < 2; thisNote ++) {int noteDuration = 1000/noteDurations [thisNote]; tono (aOut, melodía [thisNote], noteDuration); delay (noteDuration + 30);} stopMusic = false;}