Cómo hacer el arco de Zelda (7 / 8 paso)

Paso 7: Arduino

El código de Arduino de la carga desde el archivo ZIP en la GEMMA. Necesita la biblioteca de Neopixel de Adafruit instalado así que siga las instrucciones en el enlace.

Usted puede abrir el código de Arduino completo desde el archivo ZIP en el IDE de Arduino, por lo que no simplemente pegar el archivo de código entero aquí. En cambio, voy a explicar todo en secciones. Perdona por favor el formato de pegar el código aquí. Prometo que es mucho mejor en el archivo de código real.

#include < Adafruit_NeoPixel.h >

#define LED 1
#define BTN1 0
#define BTN2 2

int lastButton1State = bajo;
int lastButton2State = bajo;

Esta sección incluye la biblioteca de Neopixel que proporciona los métodos de control para las luces. El pin del LED en el Gemma es 1, y los botones están en 0 y 2. Si está utilizando un Arduino diferente o un esquema de cableado, cambiarlas aquí. Por último, guardamos el último estado de cada uno de los botones para que nos no activar continuamente el comportamiento del botón si mantenemos pulsado el botón. Sólo queremos que esto ocurra una vez por clic.

int ledCount = 56;

Parámetro 1 = número de píxeles en tira
Parámetro 2 = número de pin (la mayoría son válidos)

Parámetro 3 = píxeles tipo banderas, sumar como sea necesario:
NEO_KHZ800 800 KHz bitstream (mayoría NeoPixel productos w/WS2812 LED)
NEO_KHZ400 400 KHz (clásico 'v1' (no el v2) FLORA pixeles, conductores WS2811)
NEO_GRB píxeles están cableados para GRB bitstream (más productos de NeoPixel)
NEO_RGB píxeles están cableados para RGB bitstream (v1 FLORA pixeles, no v2)
Tira de Adafruit_NeoPixel = Adafruit_NeoPixel (ledCount, LED, NEO_GRB + NEO_KHZ800);

He utilizado 56 LEDs en mi build, asi puse como variable. Se inicializa el objeto tira 56 LEDs, el pin LED definido y los valores para Gemma y WS2812b tipo LED.

colores de uint32_t [5] = {tira. Color (255, 255, 0) / / amarillo
de la tira. Color (127, 0, 255), / / púrpura
de la tira. Color (0, 255, 0) / / verde
de la tira. Color (255, 0, 0) / / rojo
de la tira. Color (0, 0, 255);} azul

int currentColor = 0;
maxColor de int = 5;
int defaultBrightness = 50;

Decidí usar 5 colores en el ciclo. Amarillo es el color estándar, Zelda lleva morado, y el resto sólo parecía fresco. Los valores currentColor y maxColor nos permiten recorrer los 5 colores. El brillo máximo es 255, así que me puse a 50 a permite mucho espacio para crecer en el modo de fuego.

void setup() {}
inicializar el perno pulsador como entrada:
pinMode (BTN1, INPUT_PULLUP);
pinMode (BTN2, INPUT_PULLUP);

Strip.Begin();
para (int i = 0; i < ledCount; i ++)
{
strip.setPixelColor (i, colors[currentColor]);
}
Haz más brillante
para (int i = 5; i < defaultBrightness; i += 2).
{
strip.setBrightness(i);
Strip.Show();
Delay(50);
}
}

Este es el método llamado cuando el arco se enciende. Inicializa los botones y las luces, establece el color amarillo y poco a poco aumenta el brillo de 0 a 50.

void loop() {}
para (int i = 0; i < 2000; i ++)
{
int button1State = digitalRead(BTN1);

Si (button1State! = lastButton1State)
{
lastButton1State = button1State;

Si (button1State == LOW)
changeColor();
}

int button2State = digitalRead(BTN2);

Si (button2State! = lastButton2State)
{
lastButton2State = button2State;

Si (button2State == LOW)
fireArrow();
}

Delay(5);
}
Pulse();
}

Esto es donde el Arduino se bucle la mayoría del tiempo, a la espera de una pulsación. Quería los botones a ser sensible, así que comprueba para haga clic en botón durante unos 10 segundos (tiempos de 2000 iteraciones un 5ms retardo) antes de que muestra el efecto de pulso ocioso. Si se pulsa un botón, muestra ese efecto antes de regresar a este método y continuar el bucle.

void pulse()
{
Haz ligeramente dimmer
para (int i = defaultBrightness; i > defaultBrightness / 2; i-= 5)
{
strip.setBrightness(i);
Strip.Show();
Delay(50);
}

Haz más brillante
para (int i = defaultBrightness / 2; i < defaultBrightness; i += 5)
{
strip.setBrightness(i);
Strip.Show();
Delay(50);
}
}

Este es el efecto de la inactividad. Queremos que ser rápido para que no pierda un clic de botón. Camina el brillo hacia abajo por 5 cada 50ms hasta que llega a la mitad del brillo de la inactividad, entonces vuelve a la normalidad.

void changeColor()
{
currentColor ++;

Si (currentColor == maxColor)
{
currentColor = 0;
}

int i1 = 2;
int i2 = 27;
int i3 = 28;
int i4 = 55;

Bucle y cambian de color
para (int i = 0; i < 14; i ++)
{
Sets colores
strip.setPixelColor (i1, colors[currentColor]);
strip.setPixelColor (i2, colors[currentColor]);
strip.setPixelColor (i3, colors[currentColor]);
strip.setPixelColor (i4, colors[currentColor]);

Iteradores de actualización
Si (i == 3)
I1 = 1;
else if (i == 4)
I1 = 6;
else if (== 5)
I1 = 0;
else if (i == 6)
I1 = 7;
otra cosa
I1 ++;

I2--;
i3 ++;
I4;

Actualizar y esperar un poco
Strip.Show();
Delay(50);
}
}

Cuando se hace clic en el botón de cambiar de color, los LEDs se cambian al siguiente color en el lazo. Hice las luces desde el centro del arco y cambiar rápidamente el color en un efecto dominó que va hacia el exterior. Esta pieza de código es rara porque las luces están en una larga cadena, pero nosotros los hemos dividido en 4 secciones. La primera sección es atado con alambre diferentemente de las otras secciones de 3, entonces el iterador i1 necesita una manipulación especial para seguir el orden correcto.

void fireArrow()
{
Haz ligeramente dimmer
para (int i = defaultBrightness; i > 20; i-= 5)
{
strip.setBrightness(i);
Strip.Show();
Delay(20);
}

Haz más brillante
para (int i = 20; i < 250; i += 5)
{
strip.setBrightness(i);
Strip.Show();
Delay(30);
}

Alojarte brillante un poco
Delay(800);

Haz dimmer
para (int i = 250; i > defaultBrightness; i-= 10)
{
strip.setBrightness(i);
Strip.Show();
Delay(30);
}
}

Finalmente, el efecto de fuego el arco establece en brillo máximo para apenas tímido de un segundo, entonces se atenúa a ralentí.

Esperemos que todo esto tiene sentido. Si desea modificar los colores o efectos, debe ser bastante fácil de ajustar.

Artículos Relacionados

Hacer un arco desmontaje de esquís! ¿

Hacer un arco desmontaje de esquís! ¿

Alguna vez notaste cómo los héroes de acción fresco todos usan arcos y flechas estos días? Katniss Everdeen, Legolas, Hawkeye, Lara Croft... Ahora usted puede unirse a sus filas con esta guía paso a paso a diseñar y construir tu propio arco de viejos
Hacer un arco recurvo de Ash

Hacer un arco recurvo de Ash

** por favor note que este es un proyecto en curso. Soy publicarla para todos puede ver como desarrolla. No dude en comentar con sugerencias, críticas o consejos que tenga. Me encantaría oír finalizó *En este instructable, mostrará usted cómo hacer c
Cómo hacer un arco y flecha

Cómo hacer un arco y flecha

En este Instructable te mostraré cómo hacer un arco y flecha.Su bastante fácil de hacer, todo lo que necesitas es un palo bueno, recto, flexible, cierta cuerda de guía y una flecha. Se puede ir bastante lejos, salió bien en mi techo cuando yo disparo
Cómo hacer Cupcakes arco iris impresionante

Cómo hacer Cupcakes arco iris impresionante

este Instructable le mostrará cómo hacer cupcakes de arcoiris impresionante que no solamente se ven bien pero gusto buena también! Tu amigos voluntad único que usted tomó para siempre para hacer estos cupcakes. Sólo usted sabrá que no tuvo todo el dí
Cómo hacer un arco capas de roble (o cómo no hacer un arco de pirámide)

Cómo hacer un arco capas de roble (o cómo no hacer un arco de pirámide)

He estado queriendo hacer mi propio arco para un rato y yo habíamos estado leyendo para arriba en él para un par de semanas cuando decidí darle un ir. Pensé que haría un arco de pirámide basado en herramienta usando Animal instructable, encontró aquí
Cómo hacer un arco de PVC y flecha

Cómo hacer un arco de PVC y flecha

Este es mi tutorial sobre cómo hacer un arco de PVC y la flecha. Esto, como un par de mis otros proyectos fue hecha principalmente por mi aburrimiento. Aburres mucho y por tanto tener unos instructables al azar. Lo siento que yo no he publicado duran
Cómo hacer un arco de clavijas

Cómo hacer un arco de clavijas

este Instructable le mostrará cómo hacer un arco y flechas de tacos.  Para quienes no conocen mucho sobre arcos, cuando haces un arco idealmente desea cortar una longitud de madera, forma y que edad durante un año.  Si haces un arco "verde", pie
Cómo hacer un arco y flecha--10 pasos solo

Cómo hacer un arco y flecha--10 pasos solo

Hacer un arco y la flecha no es difícil, todo lo que necesitas es paciencia y centrándose en el trabajo.Divido el curso en 2 partes, es decir, un arco y con una flecha.Vamos a empezar ahora.Cómo hacer un arco y flechaParte 1. Cómo hacer un arco.Aquí
Cómo hacer un arco de PVC sin herramientas

Cómo hacer un arco de PVC sin herramientas

¿Cómo hacer un arco de PVC sin herramientas? Bien, permítame mostrarle.Paso 1: materialesSe necesita:Tubo de PVC--Algunos paracordVI -AOpcional:-un cepillo de dientes-una mira reflex (ver cómo hacer)Paso 2: Haciendo que el cuerpo del arcoMida el tubo
Cómo hacer un arco de anillo de cinta de conducto

Cómo hacer un arco de anillo de cinta de conducto

Paso 1: Lo que se necesita se necesita conducto de cinta tijeras regla una regla flexible generalmente para coser o una cadena para envolver alrededor de su dedo y luego sólo medirloPaso 2: Mida el dedoPaso 3: Corte y doblez cortar cinta del conducto
Cómo hacer un arco de aro Nerf

Cómo hacer un arco de aro Nerf

bien, esta noche enseñará usted chicos cómo hacer un arco de aro Nerf. Ahora primero hice esto cuando tenía alrededor de 12 años. No es terriblemente difícil de hacer y solo toma algunos elementos para comenzar. Sólo ten cuidado con donde se te dispa
Cómo hacer un arco - arco de PVC - rápido y fácil

Cómo hacer un arco - arco de PVC - rápido y fácil

cómo hacer un arco - arco de PVC - rápido y fácilEn este video muestro los pasos para hacer a ti mismo un arco simple de pvc.Remodelación del pvc para hacer esto, sólo un simple corte y aserrado se necesita o no necesita calor.Este arco es un arma po
Cómo hacer un arco de potencia de goma

Cómo hacer un arco de potencia de goma

Cómo hacer un arco de potencia de goma(Ver Video)Se trata de un gran arco de juguete pequeño que es alimentado con una sola banda de goma. Puede ajustar la potencia del arco simplemente cambiando hacia fuera la goma por una más fuerte.(Tener mucho cu
Cómo hacer un arco que dispara fuera de útiles escolares

Cómo hacer un arco que dispara fuera de útiles escolares

Se trata de cómo hacer un arco que dispara lápices. ADVERTENCIA: nunca apuntar a personas, cosas, animales y no disparar en tu aula a menos que su profesor dice que se puede!!!Paso 1: Las fuentesPara hacer este arco necesitas lo siguiente:1. jumbo cl