Electrónica de papel: Hacer interactivo, Arte Musical con la tinta conductora (2 / 5 paso)

Paso 2: Crear la electrónica

El hardware y el código de Arduino para este proyecto se han desarrollado desde el maravilloso tutorial de Sensor de proximidad de conductores desnudos:

http://www.bareconductive.com/Capacitance-sensor

El hardware necesario para este proyecto consiste en:
1 x Arduino
resistencias de 4 x 1 mega Ohm
2 x LED (no necesario)
1 x jack de 4 vías macho
1 x conector jack hembra de 4 vías
1 altavoz de x
Una selección de cables de puente

Este es un circuito relativamente fácil crear. A tenemos que conectar una 1 mega ohm resistencia entre 4 pares de salidas de Arduino; estos pares son 2 y 4, 5 y 6, 8 y 9, 10 y 11. Ahora tomamos un cable de pines 4,6,9 y 11, estos son nuestros aportes de sensor. Pin 4 finalmente a nuestra área pintada de detección a distancia, y los pines 6, 9 y 11 se destinarán a los botones pintados. En esta etapa nos vamos a conectar estos cables de 4 sensor al conector jack hembra de 4 vías.

La salida de Audio vendrá del pin 7. Esto significa que necesitamos conectar un altavoz o auriculares entre el pin 7 y tierra en el Arduino.

Decidí que sería bueno tener algunos LED en el dispositivo para que pueda ver lo que estaba sucediendo. Alambré hasta una potencia de LED entre 3,3 v y tierra en el Arduino y un indicador frecuencia entre pin 13 y la tierra en el Arduino.

El Arduino es alimentado con el zócalo en la placa de Vin. Decidí conectar en un interruptor de palanca aquí para que sea agradable y fácil de encender y apagar.

Eso fue fácil, ¿no? Ahora para el código de...

Conectar tu Arduino al ordenador y descargar el siguiente código. Este código requiere la biblioteca CapSense, así que si no la tienes, dirígete a la página de Arduino y descargar allí.

Por el bien de la prueba y calibrarlo vale solo cocodrilo sujetando los cables del cuatro sensor a sus cuatro áreas conductoras de pintado/impreso.

Esto es donde todo es un poco impredecible... Como todo el mundo va a ser la pintura o diferentes tamaños de puntos de contacto de Conductor desnudo con distintos grosores de tinta de impresión, es necesario un punto de calibración. Esperemos sea solo el sensor de la distancia que habrá calibrado. Eso debería ser bastante fácil de hacer por jugar el valor total2 en el código (se deben ver los valores desde el sensor en el monitor serial). Si eso no funciona para usted puede que necesite probar otros valores de resistencia. Me temo que este paso es un poco ensayo y error.

Código de Arduino:

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include < CapSense.h >

CapSense cs_2_4 = CapSense(2,4);         es de 1 megaohmio resistencia entre pines 4 & 2, pin 2 pin del sensor de distancia, añadir pintura desnudos
CapSense cs_5_6 = CapSense(5,6);         resistencia de 1 megohm entre 6 y 5, pin 5 es el pin del sensor, añadir pintura desnudos
CapSense cs_8_9 = CapSense(8,9);         1 megaohmio resistencia entre los pines 9 y 8, pin 8 es pin sensor, añadir pintura desnudos
CapSense cs_10_11 = CapSense(10,11);     1 megaohmio resistencia entre pines 11 y 10, pin 10 es pin sensor, añadir pintura desnudos
const int ledPin = 12;
const int ledPin2 = 13;

duración del int;

void setup()
{
cs_2_4.set_CS_AutocaL_Millis(0xFFFFFFFF);     Apague la autocalibrate en el canal 1 - apenas como un ejemplo
cs_5_6.set_CS_AutocaL_Millis(0xFFFFFFFF);
cs_8_9.set_CS_AutocaL_Millis(0xFFFFFFFF);
cs_10_11.set_CS_AutocaL_Millis(0xFFFFFFFF);
Serial.Begin(9600);
pinMode (13, salida);
pinMode (12, salida);
}

void loop()

{

tiempo Inicio = millis();
largo total1 = cs_2_4.capSense(30);
largo total2 = total1 - 100;  calibración de pad...

totalA de largo = cs_5_6.capSense(30);
totalB largo = cs_8_9.capSense(30);
totalC largo = cs_10_11.capSense(30);

Serial.println(total2);

{
Si (total2 < 150) {//Start generando diferentes tonos para diferentes distancias. Esto será necesario calibrar modificando el valor del total2
noTone(7);
}
Si (total2 > 150 y total2 < 200) {}
encender LED
digitalWrite (ledPin2, HIGH);
Tone(7,131,5000);
Delay(Duration);
noTone(7);
digitalWrite (ledPin2, LOW);
Delay(Duration);
}

Si {} (total2 > 250 y total2 < 300)
encender LED
digitalWrite (ledPin2, HIGH);
Tone(7,147,5000);
Delay(Duration);
noTone(7);
digitalWrite (ledPin2, LOW);
Delay(Duration);
}
Si {} (total2 > 350 y total2 < 400)
encender LED
digitalWrite (ledPin2, HIGH);
Tone(7,165,5000);
Delay(Duration);
noTone(7);
digitalWrite (ledPin2, LOW);
Delay(Duration);
}
Si {} (total2 > 400 y total2 < 450)
encender LED
digitalWrite (ledPin2, HIGH);
Tone(7,175,5000);
Delay(Duration);
noTone(7);
digitalWrite (ledPin2, LOW);
Delay(Duration);
}
Si {} (total2 > 450 y total2 < 500)
encender LED
digitalWrite (ledPin2, HIGH);
Tone(7,196,5000);
Delay(Duration);
noTone(7);
digitalWrite (ledPin2, LOW);
Delay(Duration);
}
Si {} (total2 > 500 y total2 < 550)
encender LED
digitalWrite (ledPin2, HIGH);
Tone(7,220,5000);
Delay(Duration);
noTone(7);
Delay(Duration);
}
Si {} (total2 > 550 y total2 < 600)
encender LED
digitalWrite (ledPin2, HIGH);
Tone(7,247,5000);
Delay(Duration);
noTone(7);
digitalWrite (ledPin2, LOW);
Delay(Duration);
}
Si {} (total2 > 600)
encender LED
digitalWrite (ledPin2, HIGH);
Tone(7,262,5000);
Delay(Duration);
noTone(7);
digitalWrite (ledPin2, LOW);
Delay(Duration);

}

}

Si (totalA > 800) {//if entrada uno es cambio presionado duración entre tonos
encender LED
digitalWrite (ledPin2, HIGH);
duración = 500;
Serial.println ("retraso 500");
}
Si (totalB > 800) {//if entrada dos cambio presionado duración entre tonos
encender LED
digitalWrite (ledPin2, HIGH);
duración = 100;
Serial.println ("retraso 100");

}
Si (totalC > 800) {//if entrada tres cambio presionado duración entre tonos
encender LED
digitalWrite (ledPin2, HIGH);
Duración = 25;
Serial.println ("retardo de 25");

}

Else {}
Apagar el LED
digitalWrite (ledPin2, LOW);
}

retardo arbitrario limitar datos al puerto serie
}

char getcap(char pin)
{
char i = 0;
DDRB & = ~ pin;          entrada
PORTB | = pin;          pullup en
para (i = 0; i < 16; i ++)
Si ((PINB y pin)) break;
PORTB & = ~ pin;         bajo nivel
DDRB | = pin;           descarga
volver i;
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Artículos Relacionados

Electrónica de papel: Conductoras pinturas, tintas y más

Electrónica de papel: Conductoras pinturas, tintas y más

Este Instructable es todo acerca de la increíble tecnología de electrónica de papel y materiales conductores. En lugar de utilizar alambres difíciles y sus habilidades de soldaduras oxidadas cuidadosamente conectar componentes, ¿por qué no usar pintu
Supervisión uso de electrónica en línea de tus hijos con SmartThings y una frambuesa Pi

Supervisión uso de electrónica en línea de tus hijos con SmartThings y una frambuesa Pi

Esta es una idea que tengo sobre el uso de la Raspberry Pi para actuar como un corrector constante de lo que los dispositivos electrónicos están registrados en la red wifi de casa y luego actualizar el centro de domótica en consecuencia (en este caso
Circuito simple para cada iniciación electrónica: lámpara de la noche #Automatic con LDR

Circuito simple para cada iniciación electrónica: lámpara de la noche #Automatic con LDR

Hola chicos ☺Buscando algunos proyectos DIY de principio en electrónica..! entonces usted ha venido al lugar correctoEn este proyecto estoy compartiendo mi primer proyecto electrónico.Que imparto a cada uno primero en electrónica...Nueva electrónica.
El Dundo electrónica: Cómo hacer un Drumset electrónico hablando de África occidental

El Dundo electrónica: Cómo hacer un Drumset electrónico hablando de África occidental

Bu cha bu, bu, bu, cha. Si no tiene sentido para usted, pueden relajarse los músculos de la cara porque no es algunos extraños cantos vudús. Es simplemente algunos de los sonidos que puede hacer de un conjunto de tambor parlante (Dundo, pronunciado d
La cerradura electrónica de combinación digital SAFE kit con dial de resistor variable

La cerradura electrónica de combinación digital SAFE kit con dial de resistor variable

Hola a todos!Gracias por mirar mi instructable.  Este instructable es un circuito electrónico "seguro" que desarrollé en un kit.  Permite al usuario programar un código de cuatro dígitos usando un selector de resistencia variable externa en ener
Hacer una sudadera de protoboard (instantánea electrónica usable!) ¿

Hacer una sudadera de protoboard (instantánea electrónica usable!) ¿

Son vestibles electrónica el futuro? ¡Eso creo! Aquí es el proyecto de electrónica usable más rápido, más versátil, la sudadera de la protoboard.En su mayoría, wearables involucran hilo conductor para el cableado. Pero ese tipo de cosas atasca mi máq
Tercera mano ++: una mano multi-uso para la electrónica y otros trabajos delicados.

Tercera mano ++: una mano multi-uso para la electrónica y otros trabajos delicados.

En el pasado he utilizado la tercera manos/ayuda manos disponibles en tiendas de electrónica de la cadena y han frustrado con su usabilidad. Nunca pude conseguir los clips exactamente donde yo quería o tomó más tiempo del que realmente debe para obte
Kit portátil electrónica de experimento de laboratorio aprendizaje

Kit portátil electrónica de experimento de laboratorio aprendizaje

este electrónicos autónomos portátiles, pequeños, experimento de laboratorio kit de aprendizaje le permite tomar su plataforma de desarrollo Arduino donde quiera que vayas. Tiene su placa Arduino, protoboard y componentes ordenadamente y con segurida
AllSense: Una multi-herramienta electrónica

AllSense: Una multi-herramienta electrónica

en este instructable voy se que muestra cómo hacer un mini "cubo de información del ambiente" llamado AllSense. Este cubo le da información sobre su entorno. Dicha información incluye: la humedad, la temperatura, la presión de aire y eléctrico y
Electrónica intermediatary. (sin terminar)

Electrónica intermediatary. (sin terminar)

Esta voluntad inescrutable enseñan muchos conceptos nuevos mediante la construcción de un robot, voy a intentar hacerlo como referencia útil como sea posible, así que usted puede volver a esto más adelantePaso 1: antes de la construcciónTABLA DE CONT
Arduino para principiantes y básicos electrónica Kit cartilla

Arduino para principiantes y básicos electrónica Kit cartilla

aprendí que una de mis sobrinas tuvo un interés en la programación.  Ella estaba trabajando con la robótica en el colegio y tiene una pasantía de verano donde tuvieron Arduinos.  Creo que ella fue capaz de pedir prestado un Arduino para experimentar
Electrónica básica

Electrónica básica

Introducción a la electrónica básica es más fácil de lo que imaginas. Este Instructable que desmitificaremos los fundamentos de la electrónica para que cualquier persona con un interés en la construcción de circuitos puede golpear el suelo corriendo.
LEGO caja de electrónica

LEGO caja de electrónica

sabes lo que dicen de los niños y sus juguetes. Mientras que mis juguetes han conseguido un poco más avanzado, yo no puedo sino quieres jugar con mis LEGOs cada ahora y entonces. He querido crear un gabinete de electrónica LEGO para rato y mi último
Un alambre de laberinto con una electrónica giro

Un alambre de laberinto con una electrónica giro

aquí es un SIMPLE y realmente proyecto de diversión electrónica usted puede hacer en casa. No necesitas hacer un tablero de circuito impreso que lo hace todo mucho más fácil!Estoy seguro que has jugado "laberinto de alambre"... (también llamado