Arduino Lilypad interactivo pasión detección bufanda (6 / 7 paso)

Paso 6: Sketch de Arduino

He añadido ovejas originales de Ethan Dicks escultura boceto para este paso. Voy a añadir un archivo de croquis actualizados en una fecha posterior, cuando yo he terminado el diseño. Esto al menos que empieces con dos pañuelos de trabajo.

/ * ++ Ovejas, utilizan una combinación de RGB y LED IR y un fotosensor para imitar multitud reactiva comportamiento (emergente), este código va con el taller de la fábrica de fusibles "Hacer un inesperado comportamiento escultura con el Arduino" http://thefusefactory.org/2009/09/03/make-an-emergent-behavior-sculpture-with-the-arduino/ ya, o "ovejas", están un conjunto artístico de un kit Lilypad Pro (Lilypad base conectada a una unidad de alimentación de 5V Lilipad) tri-color LED montados sobre el MCU 328V en la placa Lilypad. Un grande Lilypad Protoboard se encuentra entre la fuente de alimentación y el Lilypad sí mismo para poder mantener resistencias y los componentes de IR. La ilusión de un quadraped se completa con 1W y 2W LEDs soldadas a la PSU "cuerpo" y doblaron como las piernas. El código depende de una variable persistente llamada "mood" - cuando es cero o cercano a cero, la oveja es "feliz". Por debajo de cero y las ovejas es "solitarias"; por encima de cero y el se siente oveja llena o agitado. Soledad está representada por el azul, la felicidad por verde y agitación por el rojo. Medio de expresar el "mood" (utilizando el PWM para RGB LED de la cortina), la parte principal del código comprueba pulsos IR de otras ovejas y puede emitir sus propios pulsos "llamar" a otras ovejas. Mediante la deformación variables internas, las ovejas pueden ser más o menos sensibles a las llamadas de otras ovejas. El comportamiento emergente se sale cuando varias ovejas se ensamblan y se coloca sobre una mesa, llamando a cada uno al otro. La ráfaga de pulsos IR puede inducir a la oveja para ser feliz o tal vez agitado. Pocos pulsos y las ovejas exhibe soledad. Sheep.PDE - convertir un Arduino en una escultura de comportamiento emergente Copyright (C) 2009, Ethan Dicks este programa es software libre: usted puede redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License publicada por la Free Software Foundation, ya sea versión 3 de la licencia o (a su opción) cualquier versión posterior. Este programa se distribuye con la esperanza de que será útil, pero sin ninguna garantía; ni siquiera la garantía implícita de comerciabilidad o idoneidad para un propósito PARTICULAR. Consulte la GNU General Public License para más detalles. Usted debe han recibido una copia de la GNU General Public License con este programa. Si no, ver., * / / * ++ initialization Variable - antes del comienzo del código, poner todos los parámetros de usuario-ajustable en la parte superior para que sean fáciles de ajustar. --* / / / Definiciones de los valores de "humor" #define MOODMAX 80 #define MOODMIN (-1 * MOODMAX) #define solitario (MOODMIN) #define feliz (0) #define lleno (MOODMAX) #define MSTEPS 5 #define BLEAT_VOLUME 1 / / Global definiciones de asignaciones de pin (para simplificar las llamadas de función individual) int statusPin = 13; LED de estado de a bordo está conectado al pin digital 13int redPin = 11; Pétalo de R el módulo del RGB LED conectado al pin digital 11int greenPin = 9; Pétalo de G en el módulo del RGB LED conectado al pin digital 9int bluePin = 10; Pétalo de B en el módulo del RGB LED conectado al pin digital 10int sensorPin = 5; Fototransistor IR conectado al pin digital 5int Irpín = 6; IR LED conectado al pin digital 6 / / empezar esperando a ser Estado de ánimo feliz int = feliz; Seguimiento del sentido del ojo pinint entrada = 0; Y recuerda cómo "loud" Estamos "balido" (parpadeando los LED IR) int Balan = BLEAT_VOLUME; / * ++ setup() - el entorno de Arduino llama el código setup() una vez solamente, justo después de que la Junta se restablece. Poner código en esta función para inicializar I/O pins y tal - cosas que sólo necesitan hacerlo una vez durante una carrera. --* / voidsetup() {/ / para la depuración Serial.begin(9600); Serial.println ("ovejas v0.02"); En su mayoría, nuestros pins de I/O son salidas a LEDs pinMode (statusPin, salida); establece la statusPin a ser una salida pinMode (redPin, salida); establece la redPin ser una salida pinMode (greenPin, salida); establece la greenPin a ser una salida pinMode (bluePin, salida); establece la bluePin ser una salida pinMode (Irpín, salida); establece la Irpín ser una salida / una excepción es el IR phototransistor pinMode (sensorPin, entrada); establece la sensorPin a ser una entrada Serial.print ("ajuste IR ' balar' a"); Serial.println(bleat); analogWrite (Irpín, balonmano); } / * ++ loop() - el entorno de Arduino llame el código en este lazo para siempre. Poner cosas interesantes aquí que están destinadas a ejecutar indefinidamente después de setup() es llamada una vez. La única manera de salir de este bucle es restablecer la Junta. --* / voidloop() / / ejecutar una y otra vez {/ / Set nuestro LED RGB para reflejar el "estado de ánimo", que esperemos que va a cambiar de vez en vez de set_mood(mood); / / desacelerar lo rápido reaccionamos ante otras delay(100) 'oveja'; / retardo de.1 segundo / sensorPin tiene una resistencia de pullup de 10 K, así que * no * luz informa a 1. Necesitamos / / invertir el sentido lógico del pin si queremos pensar lógicamente de la luz / / 1-es-en/0-es-de ojo = 1 - digitalRead(sensorPin); valor ojo 1 si "vemos" cualquier IR luz / / Informe nuestro estado presente cada vez que a través del lazo Serial.print ("estado de ánimo es"); Serial.Print(MOOD); Serial.Print("
. Sensor es "); Serial.println(Eye); Si vemos pulsos de otra 'oveja', incrementar el estado de ánimo, pero no pasado MOODMAX si (ojo) {/ / puesto que los seres humanos no pueden "ver" la luz infrarroja, usar el LED como un indicador visible digitalWrite (statusPin, HIGH); / / eco detección entrada IR del estado LED mood += MSTEPS * 2; Si (humor > MOODMAX) {humor = MOODMAX;}} / / si no vemos ningún pulsos IR, disminuir el estado de ánimo, pero más abajo no MOODMIN {/ / ya que los seres humanos no pueden "ver" la luz infrarroja , usar el LED como un indicador visible digitalWrite (statusPin, bajo); Eco de la detección de entrada de IR en el estado de ánimo de LED = 1; Si (estado de ánimo < MOODMIN) {humor = MOODMIN;}} } / * ++ set_mood - convertir "ganas" de un esquema de color estado de ánimo varía de un número negativo a ese mismo valor como un número positivo (hasta -80 / + 80 y -100 / + 100 resultados razonables). Proporcionalmente, el continuo del estado de ánimo a los mapas de color similar a la siguiente: humor -100 + 100 0 -> Lonely feliz -> CrowdedR 0 0 0 30 100 G 0 30 100 0B 70 100 70 0 0 0--* / void set_mood (int mood) {/ / comenzar con cada color siendo off - ajustar hacia arriba basado en enrojecimiento de "mood" unsignedchar = 0; unsignedchar verdor = 0; unsignedchar azul = 0; #ifdef DEBUG Serial.print ("estado de ánimo es"); Serial.println(MOOD); #endif / azul es todo sobre el estado de ánimo siendo menos feliz entonces si (humor < feliz) {azul = abs(mood); verde = MOODMAX + estado de ánimo;} / enrojecimiento es todo acerca de ser Estado de ánimo más que feliz elseif (humor > HAPPY) {enrojecimiento = humor; verde = MOODMAX - humor;} / verdor es sobre humor siendo alrededor feliz otra {verdor = MOODMAX;} / / Set el LED para reflejar el color de nuestra estado de ánimo actual (enrojecimiento, verde, azul); } / * ++ conjunto de colores (r, g, b) - el tri-color LED en el color pedido valor usos analogWrite (pin, valor) para establecer valor PWM para cada color individual del LED el LED Tri-color es un dispositivo de ánodo común, para hacer luz, tierra el pin deseado. Para invertir la forma de onda PWM, disminuimos la intensidad deseada de 255, para que, por ejemplo, si queremos rojo, lógicamente, pasan alrededor de un valor de cero, sino que establecer el valor PWM a 255 para que el pin es conducido alto 100% del tiempo. Para obtener rojo para el máximo brillo, pasar alrededor de un valor lógico de 255, pero establezca el valor PWM en 0, tirando eso Perno baja 100% del tiempo--* / void color (unsignedchar roja, unsignedchar verde unsignedchar azul) / / el color función generatriz {#ifdef DEBUG Serial.print("color("); Serial.Print(red,HEX); Serial.Print(Blue,HEX); Serial.Print(Green,HEX); Serial.println(")"); #endif / / invertir el sentido del valor del PWM al llamar analogWrite() para cada color analogWrite (redPin, 255-rojo); analogWrite (bluePin, azul 255); analogWrite (greenPin, 255-verde); }

Artículos Relacionados

Arduino LilyPad pato dinastía Hoodie con luces LED y sonidas

Arduino LilyPad pato dinastía Hoodie con luces LED y sonidas

hice un pato dinastía temática sudadera con capucha con un LilyPad Arduino que tiene 3 interruptores de sensor de cremallera para activar 3 diferentes acciones y programas en la parte posterior de la capucha. La cremallera es la clave para activar es
Arduino Lilypad deslizador automático masajeador

Arduino Lilypad deslizador automático masajeador

Hice un pequeño masajeador de pies deslizador automático con Lilypad Arduino y algunos de los consejos de Vibe Lilypad el masajeador real. El sensor que usa es un acelerómetro de Lilypad que estoy utilizando solamente como un sensor de inclinación bá
Enderman enojado con Arduino Lilypad

Enderman enojado con Arduino Lilypad

Vamos a crear un enderman amigurumi cuyos ojos flash y sacudidas del cuerpo, como un enderman enojado!Para este proyecto necesitarás:Lilypad Arduino (un Consejo de desarrollo de ProtoSnap de Lilypad fue utilizado aquí)2 tri-LED (uno viene con la Junt
LilyPad Arduino e-Reader caso

LilyPad Arduino e-Reader caso

para una clase de jóvenes y la tecnología, nos asignó la creación de un proyecto de Arduino LilyPad.  Me gustó la idea de conectar el proyecto LilyPad alfabetización, por lo que decidí hacer un caso de Kindle que reproducir música [tema de Hedwig de
LilyPad Arduino Totoro peluche con paraguas

LilyPad Arduino Totoro peluche con paraguas

materiales:Para Totoro:Fieltro: 1 negro, 3 gris, 1 blanco, 1 beigeAgujaHilo de rosca negroRelleno de Poly-filCartulinaTijerasPernos deLápiz o tizaPeluche Totoro DIY Tutorial aquíPatrón de Totoro aquíPara el paraguas:3 o 4 diferentes tipos de telaFiel
LED de Firefly programado Arduino bolso fieltro hecho a mano

LED de Firefly programado Arduino bolso fieltro hecho a mano

Este fue mi primer proyecto que requieren codificación. Mi idea era crear una bolsa de fieltro que tenía algunos LED que se descolora y se descoloran hacia fuera al azar, como luciérnagas. Tuvo que ser bastante y no demasiado geek, por lo que trabaja
Introducción a Arduino

Introducción a Arduino

An Arduino es una placa de desarrollo de microcontrolador open source. En inglés, puede utilizar la Arduino para leer sensores y controlar cosas como motores y luces. Esto le permite cargar programas en esta tarjeta que puede entonces interactuar con
Cómo hacer un mando a distancia controlado por una mano robótica con Arduino

Cómo hacer un mando a distancia controlado por una mano robótica con Arduino

Este es mi proyecto escolar para 5 º año de secundaria (yo soy italiana, tenemos 5 años de secundaria).Consiste en una mano artificial controlada por un guante con sensores de flexión. La mano artificial reproduce los movimientos de la mano con el gu
Libretita: una bajo costo, modular, compatible con Arduino plataforma educativa

Libretita: una bajo costo, modular, compatible con Arduino plataforma educativa

Para mis clases de soft-circuito, hemos estado utilizando un circuito de Attiny85 preprogramado (), o el más caro de compatible con Arduino Lilypad USB. Quería algo entre esos dos extremos que serían:Fácil de construir por los principiantesDe bajo co
Resumen el Arduino sketch carga proceso y ISP

Resumen el Arduino sketch carga proceso y ISP

Usted puede cargar software a un Arduino usando dos métodos. Usted puede escuchar sobre los dos métodos comúnmente llamado programación ISP y FTDI o subir serial. Te recomiendo conocer y ser cómodo con el uso de ambos métodos. Cuando yo fui Introducc
Reloj binario de 12 horas, horas y minutos, RTC DS1307, i2C, Arduino Nano

Reloj binario de 12 horas, horas y minutos, RTC DS1307, i2C, Arduino Nano

Por un tiempo ahora tengo ganas de hacer un reloj binario, pero después mirando a su alrededor, decidí que quería algo un poco diferente. Así que decidí solo muestra las horas y minutos y solo muestra un reloj de 12 horas, esto significa que sólo tie
Interfaz de Arduino sewable

Interfaz de Arduino sewable

cómo crear una interfaz sewable para la placa Arduino USB. Probablemente no es la mejor solución, especialmente en comparación con el Arduino LilyPad. Pero es una opción para proyectos de electrónica textil hilo conductor y quisiera coser directament
Medida Arduino Micro Quadcopter concepto

Medida Arduino Micro Quadcopter concepto

editar el 14 de abril: chicos lo siento por la última entrada. vida ha sido muy agitada últimamente para mí ya que tuvimos que reemplazar una tubería de aguas residuales en nuestra casa se encuentra en la losa de hormigón. Pero hemos hecho algunos pr
El RRRRRRRRRRBBA, un Arduino $3

El RRRRRRRRRRBBA, un Arduino $3

Hey, todos amamos el Arduino, y para mis proyectos hacer totalmente seguro de que utilicé la plataforma Arduino, para que todos en la comunidad del artista y hacker podrían trampolín de él para sus propios proyectos, y de modo que pueda trampolín de