Paso 4: El lenguaje del partido: codificación
¡ Wow! La estructura de los pantalones de trapecio es completa! Esto es impresionante! Está casi listo para iluminar!
Mercancías:
1. equipo
2. USB mini
3. todo lo que ha montado a este punto :)
Notas importantes sobre Gemma:
Usé de Arduino (http://www.arduino.cc/) como plataforma de programación para mis yemas.
Hay muchas advertencias sobre el uso de los condensadores y las resistencias al usar tantos neopixels. Yo no hice esto. Si se cambia la cantidad de neopixels o utilizando más grande cuidado con las baterías.
Gemma no puede manejar la velocidad en que los nuevos ordenadores USB 3 exportación información. Si tienes un USB 2 que está en buena forma. De lo contrario, compra un convertidor.
Tutoriales para Gemma: https://learn.adafruit.com/introducing-gemma/introduction
Tutoriales para Neopixels: https://learn.adafruit.com/adafruit-neopixel-uberguide/overview , https://learn.adafruit.com/adafruit-neopixel-uberguide/best-practices
Prueba de Gemma y Neopixels:
a. Conecte su Gemma al ordenador mediante el cable mini USB. Para cargar el código debe presionar el botón negro pequeño en la parte superior de la Gemma. Cuando comienza a parpadear, comience a subir.
No subirá ningún código si usted no empuja el botón ***
b. prueba la Gemma por la carga del prueba de 'Blink' código de a continuación. La pequeña luz roja en el Gemma deberá parpadear. Si tienes problemas y visita el enlace tutorial de Gemma arriba.
CÓDIGO:
/*
Abrir y cerrar
Se enciende un LED encendido durante un segundo, luego durante un segundo, repetidamente.
Este ejemplo de código es de dominio público.
Subir a tu Gemma o baratija:
1) Seleccione la junta adecuada de las herramientas -> menú de tablero
2) USBtinyISP selecto de las herramientas -> Programador
3) enchufe el Gemma/Abalorio, asegúrese de que ver el LED verde encendido
4) para windows, instale a los controladores USBtiny
5) Presione el botón en el Gemma/Abalorio - verificar que ves
el pulso de LED rojo. Esto significa que está preparado para recibir datos
6) haga clic en el botón de subir arriba en 10 segundos
*/
led int = 1; parpadear pin 'digital' 1 - AKA el LED rojo de
la rutina de instalación se ejecuta una vez al presionar reset:
void setup() {}
Inicializa el pin digital como salida.
pinMode (led, salida);
}
una y otra vez funciona para siempre la rutina bucle:
void loop() {}
digitalWrite (led, alto);
Delay(1000);
digitalWrite (led, baja);
Delay(1000);
}
c. prueba de la neopixels por subir el código de 'Neopixels Strand Test' a continuación. Si tienes algún problema visite el enlace de tutorial de Neopixels arriba.
CÓDIGO:
#include
#define pasador
Parámetro 1 = número de píxeles en tira
Parámetro 2 = número de pin del Arduino (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 (60, PIN, NEO_GRB + NEO_KHZ800);
IMPORTANTE: Para reducir el riesgo de burnout NeoPixel, añadir el condensador de 1000 uF a través de
conductores de alimentación de pixel, añadir resistencia de 300-500 Ohm en la entrada de datos de pixel primera
y minimizar la distancia entre Arduino y primer. Evite la conexión de
en un circuito vivo... Si es necesario, conecte tierra primero.
void setup() {}
Strip.Begin();
Strip.Show(); Inicializar todos los píxeles en 'off'
}
void loop() {}
Algunos procedimientos de ejemplo que muestra cómo mostrar a los píxeles:
colorWipe (de la tira. Color(255, 0, 0), 50); Rojo
colorWipe (de la tira. Color(0, 255, 0), 50); Verde
colorWipe (de la tira. Color(0, 0, 255), 50); Azul
Enviar una persecución de pixel de teatro...
theaterChase (de la tira. Color(127, 127, 127), 50); Blanco
theaterChase (de la tira. Color(127, 0, 0), 50); Rojo
theaterChase (de la tira. Color (0, 0, 127), 50); Azul
Rainbow(20);
rainbowCycle(20);
theaterChaseRainbow(50);
}
Rellenar los puntos uno tras otro con un color
{} void colorWipe (uint32_t c, uint8_t espera)
para (uint16_t i = 0; i strip.setPixelColor (i, c);
Strip.Show();
Delay(Wait);
}
}
{} void arco iris (uint8_t esperar)
uint16_t i, j;
para (j = 0; j < 256; j ++) {}
para (i = 0; i strip.setPixelColor (i, Wheel((i+j) y 255));
}
Strip.Show();
Delay(Wait);
}
}
Ligeramente diferente, esto hace que el arco iris, igualmente distribuido a lo largo de
void rainbowCycle (uint8_t espera) {}
uint16_t i, j;
para (j = 0; j < 256 * 5; j ++) {/ / 5 ciclos de todos los colores en la rueda
para (i = 0; i < strip.numPixels(); i ++) {}
strip.setPixelColor (i, rueda (((i * 256/strip.numPixels()) + j) y 255));
}
Strip.Show();
Delay(Wait);
}
}
Luces de arrastre tipo teatro.
{} void theaterChase (uint32_t c, uint8_t espera)
para (int j = 0; j < 10; j ++) {//do 10 ciclos de persecución
para (int q = 0 q < 3; q ++) {}
para (int i = 0; i < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, c); Encienda cada píxel tercera
}
Strip.Show();
Delay(Wait);
para (int i = 0; i < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, 0); Apagar cada píxel tercera
}
}
}
}
Luces rastreros estilo teatro con efecto arco iris
void theaterChaseRainbow (uint8_t espera) {}
para (int j = 0; j < 256; j ++) {/ / ciclo todos los 256 colores de la rueda
para (int q = 0 q < 3; q ++) {}
para (int i = 0; i < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, rueda ((i + j) % 255)); Encienda cada píxel tercera
}
Strip.Show();
Delay(Wait);
para (int i = 0; i < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, 0); Apagar cada píxel tercera
}
}
}
}
Un valor de 0 a 255, para obtener un valor de color de entrada.
Los colores son una transición r - g - b - a r.
uint32_t rueda (bytes WheelPos) {}
if(WheelPos < 85) {}
volver la tira. Color (WheelPos * 3, 255 - WheelPos * 3, 0);
} else if(WheelPos < 170) {}
WheelPos-= 85;
volver la tira. Color (255 - WheelPos * 3, 0, WheelPos * 3);
} else {}
WheelPos-= 170;
volver la tira. Color (0, WheelPos * 3, 255 - WheelPos * 3);
}
}
d. finalmente, subir los 'pantalones de Debbie' código a continuación:
#include
const int PIN = 1;
const int ACCEL = 1;
const int NUMBER_O_PIXELS = 13;
const int min_accel = 350;
const int max_accel = 650;
int accelRead = 0;
Parámetro 1 = número de píxeles en tira
Parámetro 2 = número de pin del Arduino (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 (NUMBER_O_PIXELS, PIN, NEO_GRB + NEO_KHZ800);
IMPORTANTE: Para reducir el riesgo de burnout NeoPixel, añadir el condensador de 1000 uF a través de
conductores de alimentación de pixel, añadir resistencia de 300-500 Ohm en la entrada de datos de pixel primera
y minimizar la distancia entre Arduino y primer. Evite la conexión de
en un circuito vivo... Si es necesario, conecte tierra primero.
void setup() {}
pinMode (PIN, salida);
pinMode (ACCEL, entrada);
Strip.Begin();
Strip.Show(); Inicializar todos los píxeles en 'off'
}
void loop() {}
Algunos procedimientos de ejemplo que muestra cómo mostrar a los píxeles:
accelRead = analogRead(ACCEL);
accelRead = mapa (accelRead, min_accel, max_accel, 0, 255);
accelRead = restringir (accelRead, 0, 255);
setStripColor (accelRead, (255-accelRead), 0);
Delay(5);
}
{} void setStripColor (int rojo, int verde, int azul)
para (int i = 0; i strip.setPixelColor (i, rojo, verde, azul);
}
Strip.Show();
}
e. puede cambiar el código fuente a tu gusto :)