Paso 2: Inspiración y derivación...
Estaba leyendo arriba en el blog de Adafruit y me encontré con marca de Gewfy de un sable de luz impresa 3D mini . Así que dice a mí mismo, "que no es un sable de luz, mate. Se trata de un sable de luz..." Y tengo un bolso-o-baratijas, 5v y 3v que ya no tengo miedo de usarlas.
Bueno, tiempo para investigar más a fondo y ver qué tenía que ofrecer. Siempre quise hacer un sable de luz y con la tecnología disponible hoy en día, hace más fácil recrear las cosas. Sé lo suficiente acerca de electrónica a ser peligroso, por lo que este proyecto no sería demasiado difícil de abordar. Quería hacer un tamaño completo uno. Además, tiene una impresora 3D.
Ofrece el código para el Attiny85 que él utilizó para construir su varita de Neopixel. Hmmm, creo que debo ser capaces de pase por encima y usarlo en la baratija de Adafruit que tengo. También tengo unas tiras de Neopixel de mi bufanda de Cortana de Halo LED. Tengo algo de experiencia con soldar y trabajar con esas tiras de Neopixel.
Aquellos adentrarse en el mundo Attiny por primera vez tienen frustración que las conexiones están todos etiquetadas diferentemente y cada uno se tratarán diferentemente dependiendo de su contexto de uso. Mirando su código, esto era nuevo, utilizando un interruptor de botón de prensa como una interrupción. Desde programación con interrupciones (comandos para acceder el microcontrolador directamente frente a los comandos en lenguaje de programación o IDE) era más hacker-como, los comandos son aparentemente crípticos. El Attiny85 es un pequeño microcontrolador de 8 pines que muchos utilizan a pesar de sus limitaciones. Lo que tenemos es una baratija con su Arduino tipo medio ambiente construido sobre el estándar Attiny85.
Configurar mi switch para el Abalorio en pin # 3 y algunos filamentos de Neopixel tiras controlan en pin # 0. Había cableado una tira larga de Neopixels. Reconstruye dos 30 condujo piezas segmento encadenando uno al otro. Seguí los cables de corriente en ambos segmentos separados por lo que yo pude inyectar energía a la franja más. Trate de usar una tira de 1 metro completo de 60 Neopixels. Yo había reutilizar mis tiras de la bufanda. Puedes ver la diferencia cuando está en el tubo porque el lío de cables espacios a las tiras de Neopixel. Encendido strandtest boceto de muestra para asegurarse de que todos los LEDs eran buenos.
He copiado en el dibujo de Gewfy para ver si podría conseguir trabajo.
Hay algo de código para utilizar un potenciómetro para controlar el brillo y un interruptor para cambiar los modos de efecto de luz. Quiero mantenerlo simple con solo un interruptor primero. Además, no tengo un potenciómetro de perilla grande repuesto ahí para ser utilizado.
Programado la baratija con el IDE de Arduino. Nada. Hmmm, he leído sobre todos los temas de discusión para el uso de interrupciones en el Attiny85 y baratija. Yo estaba recibiendo desanimado después de leer que algunos dicen que PCINT0 que no es lo mismo que INT0 en pin PB2 o 7 en el pin 0 de la baratija, Attiny85 pero es lo único que funciona. Interruptor en la baratija Pin 3 no seria bueno ya que también se utiliza para USB. Lo mejor que puede hacer, ponlo hacia abajo y vaya a dormir y volver a él por la mañana.
Tan pocos intentos de cambiar la llamada de interrupción, modificar la máscara de interrupción y soldar el interruptor a un pin diferente, sigue sin funcionar. Luego estuve leyendo para arriba con el uso de interruptores con Arduinos. No tengo un resistor con el interruptor desde que supe que podía activar el pullup interna o integrada en el código, disponible en PB3. Tenía el interruptor conectado a 5 voltios de pulso +. Tenía lo que podría haber sido un movimiento de penetración. Yo estaba pasando algunos diagramas de la instalación de cableado de un interruptor. El programa buscaba el interruptor IR alta, pero internamente accionado como ir bajo. ReWire a tierra y las cosas comenzaron a trabajar.
Y una vez que el interruptor fue ciclismo a través de modos, empecé a programar algunas secuencias de luces diferentes.
Pero ahora, estoy tratando de envolver mi cabeza alrededor de cómo debounce el interruptor. He probado algunos fragmentos de muestra pero parece millis() no puede funcionar correctamente en la aplicación de la baratija (adjuntar interrupción y podrían necesitarse delayMicroseconds()) o que pueda tener que tratar con los registros del temporizador a debounce software. Como se ve en el video de demostración, el punto en que se detecta la interrupción no está sincronizado con el acabado de efecto de luz y saltará uno o dos modos para un efecto de luz programado diferente. Debe ser llenado con un color sólido, pulsan eso color sólido, colapsar el color sólido y apagar.
Una vez que tengo que trabajar, tal vez se incorporo uno o más golpear sensores a lo largo del tubo. Entonces desencadenará un destello blanco de luz. Puede filmar un duelo sin necesidad rotoscopia.
Así, mi código es tal mezcolanza de cosas y cambios para la solución de problemas que no sé qué atributo ya. Si alguien tiene preguntas sobre lo que hice en mi código voy a glady preguntas. Alguien debería poner un ible en qué buscar cuando publicar bloques de código.