Aquí va un resumen de diseño cada vez más amplia de mi último proyecto. A continuación, un vídeo que he subido mostrando algunas funciones:
La progresión de la idea original fue algo como lo siguiente:
- Tira de LED direccionable (s siempre queremos más cosas brillantes!) para conseguir efectos visuales fresco que podrían ser programados (de alguna manera)
- controlado por un iPhone (o teléfono Android) usando la funcionalidad de hardware disponible varios presente en smartphones más modernos (acelerómetro, pantalla táctil, wifi y bluetooth capacidad, capaz de ejecutar aplicaciones más complejas y más ahora)
- no es necesario un real ordenador de sobremesa o portátil para ejecutar. Había visto a amigos usar el lenguaje con distintos repositorios GitHub para integrar Wiimote de entrada o datos de acelerómetro del iPad para varios proyectos diferentes de programación Python. También es necesario porque se utilizará para la instalación de arte y no quiero que necesita una computadora se perderan con la estructura del arte.
- Sabía que el Raspberry Pi es un microordenador barato viable (un paso por encima de microcontroladores en funcionalidad y velocidad) que podría ejecutar un determinado programa hasta el día que murió, sobre todo con los lenguajes Python y C. No tiene alguna experiencia de Python y encontró más de lo que necesitaba para configurarlo en Python así que decidí ir a esa ruta. El equipo real de Pi es el tamaño de tarjeta de crédito y el espesor de un cuarto. No necesidades disipador y es barato (debajo de $40, pero termina siendo alrededor de $70 con algunos accesorios necesarios y de lujo)
Encontré mucha ayuda a través de las guías de aprendizaje de Adafruit y muchas ideas de configuración fueron injertados de su equipo de impresionante, pero un montón de adiciones de diseño fueron agregados en mi setup así. Por ejemplo:
- Tengo mina de configuración para ejecutar a través de un programa de Python (vs. necesidad de un ordenador conectado a la red)
- He añadido teléfono inalámbrico mando a distancia de los LEDs a través de PyOSC (permite que el programa de Python y el teléfono con la aplicación de TouchOSC para comunicarse)
- Tengo la configuración de programa de Python a ejecutar en el arranque para que al sacar al medio de la nada, todo lo que tengo que hacer es conectarlo y el programa de efectos de LED se inicio (y también no necesita la aplicación de teléfono abierto para hacerlo)
- Monitor ni mouse no necesarios una vez que configuración SSH
- Integración de PyOSC con PyOPC y agregando en algunas bibliotecas útiles para incluir esa ayuda con algunas ocurrencias comunes con programación de LED
- Alguna explicación extra sobre algunos de los ajustes de programación que es necesario para tener en cuenta para el mundo real a la interacción digital (corrección de gamma y tramado como ejemplos)
Adafruit (Foro, componente minorista y conocimiento eje http://www.adafruit.com/ ) vende las tiras de WS2811/WS2812 (les llaman "Neopixels"), y tienen un montón de grandes recursos para los proyectos más impresionantes. Su foro comunidad y guías de moderador/administrador/proyecto chamanes son sorprendentes.
Las tiras de LED normalmente necesitan un controlador Arduino para ejecutar, pero Micah Scott de Scanlime diseñado un /driver de controlador especial que ayuda a ocultar esa necesidad. El controlador para las tiras de LED integra la capacidad de utilizar Control de píxel abierto con tramado y capacidades de corrección de gamma.
Aquí está el artículo de Scanlime sobre la Fadecandy:
http://scanlime.org/2013/11/fadecandy-Easier-tasti...
El tramado es un efecto relevante a la percepción de la frecuencia. Puede ser aplicada a la música así como a las imágenes. Dithering actúa como una difusión entre dos zonas de poca profundidad de color. La falta de profundidad de color conduce a artefactos en captura digital de un medio, y oscilante ayuda a suavizar las transiciones. Con LEDs esto conduce intensidad modulada para dar más profundidad de color y será a menudo resultado en una especie de centelleo (que creo que se ve muy bien, como abrir y cerrar startlight).
La corrección de gamma ayuda a volver a la curva de cada intensidad de LED azul verde rojo de la escala. Nuestros ojos no perciben la intensidad de la luz en forma lineal por lo que la corrección de gamma ayuda a hacer un fundido lineal en rojo de 0 a 255 parecen más lineal a nuestros ojos. Si un regulador de luz se estableció en escala lineal, la primera mitad parece encender extremadamente rápido, pero el semestre pasado no parecería mucho más relativa. Luego la corrección gamma aplica a la inversa de la curva natural de nuestro ojo para asegurarse de que los LEDs funcionan de forma visualmente correcta.
Control de píxel abierto (OPC) permite de manera sencilla a la red y agilizar la comunicación con las matrices de píxeles RGB. PyOPC lleva el paso más allá y permite el lenguaje de programación Python para arreglar un servidor de cliente OPC entre las hebras del pixel y el Fadecandy/controlador que puede recibir y utilizar mensajes OPC.
TouchOSC es la última pieza del rompecabezas y es lo que permite algunas funciones únicas y personalizables impresionante. Supe de TouchOSC de uso de DJ. En ese escenario yo uso la funcionalidad MIDI de TouchOSC, pero sabía que también era capaz de enviar mensajes de Control de sonido abierto simultáneamente. Hice algunas investigaciones y encontró que era de hecho capaces de interfaz con el lenguaje a través de PyOSC de programación Python.
Las mejores partes de TouchOSC app:
- Aplicación fácil de usar Editor de TouchOSC permite diseño de regulador rápido intuitivo
- Simple función sync a teléfono comúnmente conexión conexión WIFI permite la fácil manera de actualizar los diseños que hagas en el Editor (he usado una conexión ad-hoc para sincronizar cuando un router no estaba presente)
- aprovecha la funcionalidad de hardware preexistente de teléfono (acelerómetro y pantallas táctil capaz de múltiples canales de entrada)
- interfaz limpia fácil de usar aplicación / diseño