Paso 2: Programar y configurar el circuito de Arduino
1) tomar el diodo Zener y la resistencia y conectar en el protoboard siguiendo el esquema. Por ahora, sólo utilice cables pelados para representar las manos. Inicialmente se utilizaron 25 potenciómetros de k en lugar de la resistencia de valor único. Esto nos permitió "dial-en" nuestro nivel de señal.
2) el esquema muestra solo 1 par de manos. Para hacer dos, simplemente duplicar el circuito, pero han conectado de R1 y D1 a A1 en el Arduino.
Estos dos pasos siguientes son opcionales, pero ayuda con la depuración. ASÍ QUE MEJOR HACE.
3) Hook-up un LED al pin 13 (no te olvides de observar la polaridad... ánodo a arduino, cátodo a masa)
4) altavoz Hook-up la PC al pin 12 (el otro extremo a tierra)
5) Descargar nuestro código con el archivo de lanzamientos. https://www.Dropbox.com/SH/46k9dfd1oh0s4v1/8ceVhL8zjN
GitHub demasiado (incluye también el código de procesamiento): https://github.com/ijwhyr/ijwhyr
6) Abra el código (hands_sound_integrate2b.ino) en el compilador y compruebe que la línea de "analogReference" coincide con el Arduino. Establece en 1 voltio. Asegúrese de que pitches.h está incluido en la misma carpeta también.
7) ahora abra al monitor de serie en el compilador. Cada vez que toquen los alambres pelados, oirá un pitido y el led debe encenderse para arriba! Si mantiene los cables, también debe obtener las lecturas de cero. Esperemos que cuanto más tienes los cables, cuanto mayor sea el número!
opcional
8) modificar un cuadro de proyecto para el arduino y protoboard. Esto hace que instalación un broche de presión!
pega el código:
/***************************
por Ellen Keith, Yael Braha, Marc Roth, Tosh Chiang y haganse Jasdeep
para SF hasta festival 2012
***********************/
#include "pitches.h"
audio
melodía de int [] = {}
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 la foroutput de gatillo
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); comando varía entre arduinos
analogReference(INTERNAL);
leer la entrada en el pin analógico 0 y 1:
int handShakeRead1 = analogRead(pairOne);
Delay(10); volver a muestrear pin 0!
int handShakeRead1b = analogRead(pairOne);
int handShakeRead2 = analogRead(pairTwo);
Delay(10); volver a muestrear el 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;
}
otra cosa
{
handShakeReadFinal1 = 0;
}
Si (handShakeRead2 > triggerThresh y handShakeRead2b > triggerThresh) {}
handShakeReadFinal2 = handShakeRead2;
}
otra cosa
{
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();
}
}
otra cosa
{
countOut = 0;
stopMusic = true;
digitalWrite (led, baja);
Delay(1000);
}
}
void tune() {}
para (int thisNote = 0; thisNote < 2; thisNote ++) {}
int noteDuration = 1000/noteDurations [thisNote];
tono (aOut, melodía [thisNote], noteDuration);
retardo (noteDuration + 30);
}
stopMusic = false;
}