Tabla de contenido:

Lápiz LED RGB para pintar con luz: 17 pasos (con imágenes)
Lápiz LED RGB para pintar con luz: 17 pasos (con imágenes)

Video: Lápiz LED RGB para pintar con luz: 17 pasos (con imágenes)

Video: Lápiz LED RGB para pintar con luz: 17 pasos (con imágenes)
Video: pintando a PITUFINA #shorts 2024, Noviembre
Anonim
Bolígrafo LED RGB para Lightpainting
Bolígrafo LED RGB para Lightpainting
Bolígrafo LED RGB para Lightpainting
Bolígrafo LED RGB para Lightpainting
Bolígrafo LED RGB para Lightpainting
Bolígrafo LED RGB para Lightpainting

Esta es una instrucción de construcción completa para una herramienta de pintura con luz que utiliza un controlador LED RGB. Utilizo mucho este controlador en mis herramientas avanzadas y pensé que un documental de cómo está construido y programado puede ayudar a algunas personas.

Esta herramienta es un bolígrafo de luz RGB modular diseñado para escritura ligera, dibujo ligero e iluminación de graffiti. Es fácil de usar porque solo tiene el bolígrafo en la mano y puede cambiar rápidamente el color.

La herramienta consta de:

  • un caso que está impreso en 3D
  • un Arduino Micro
  • un LED WS2816B
  • dos potenciómetros (10K o 100K)
  • dos interruptores
  • un pulsador
  • y algunos cables.

Un Arduino Micro es perfecto para esto porque es extremadamente pequeño y excelente para controlar los LED RGB. También puede usar microcontroladores aún más pequeños como un LilyPad o incluso un ATtiny85, pero a menudo uso el Micro porque es fácil de usar, ya que viene con un conector USB listo para usar. Tanto el Arduino como el LED funcionan con 5 V, por lo que debe cuidar el soporte de energía adecuado. Esta herramienta está diseñada para usar cuatro baterías AAA recargables porque generalmente tienen 1.2V y 4.8V combinados, lo que es suficiente para alimentar tanto el Arduino como el LED. Tenga cuidado de no utilizar pilas AAA normales, ya que tienen 1,5 V y el voltaje combinado puede ser demasiado para los componentes y dañarlos. Si desea usar baterías normales, use solo tres, el voltaje aún debería ser suficiente. Utilicé otra gran pieza impresa en 3D de otra persona para la carcasa de la batería que se puede encontrar aquí: "Flexión de soportes de batería".

Paso 1: programación

Primero, necesita el IDE de Arduino para programar el microcontrolador, que se puede descargar y usar de forma gratuita. Esto suena bastante complicado a primera vista, pero en realidad es bastante simple. Después de instalar el software, obtendrá una ventana de editor de texto simple que se utiliza para codificar el boceto que se carga en Arduino. Esta herramienta también utiliza la biblioteca FastLED, que es una biblioteca excelente y fácil de usar que permite controlar casi cualquier tipo de LED RGB que pueda comprar. Después de descargar la biblioteca, debe instalar colocando los archivos en la carpeta de la biblioteca creada por el IDE de Arduino. Esto generalmente se puede encontrar en "C: / Usuarios {Nombre de usuario} Documentos / Arduino / bibliotecas" si no lo ha cambiado. Después de colocar la biblioteca en esta carpeta, debe reiniciar el IDE si ya se está ejecutando. Ahora estamos listos para crear el código para el controlador.

Paso 2: el código

Para usar la biblioteca FastLED primero tenemos que incluirla en nuestro código. Esto se hace en la parte superior del código antes que nada con esta línea:

#incluir

A continuación, vamos a definir algunas constantes. Esto se hace porque estos valores no cambiarán mientras el código se está ejecutando y también para mantenerlo más legible. Puede poner estos valores directamente en el código, pero luego, si necesita cambiar algo, tendrá que revisar todo el código y cambiar cada línea en la que se usa el valor. Al usar constantes definidas, solo necesita cambiarlo en un lugar y no es necesario tocar el código principal. Primero definimos los pines que usa este controlador:

#define HUE_PIN A0

#define BRIGHT_PIN A1 #define LED_PIN 3 #define LIGHT_PIN 6 #define COLOR_PIN 7 #define RAINBOW_PIN 8

Los números o nombres son los mismos que están impresos en el Arduino. Los pines analógicos se identifican con una A delante de su número, los pines digitales solo usan el número en el código, pero a veces se imprimen con una D inicial en la placa.

El potenciómetro en el pin A0 se usa para controlar el tono del color, el potenciómetro en el pin A1 se usa para controlar el brillo. El pin D3 se usa como señal al LED para que Arduino pueda enviar datos para controlar el color. El pin D6 se usa para alternar la luz y los pines D7 y D8 se usan para configurar el modo del controlador. He implementado los modos en este controlador, uno simplemente coloca el color definido por el potenciómetro de color en el LED, y el otro se desvanecerá a través de todos los colores. A continuación, también necesitamos algunas definiciones para la biblioteca FastLED:

#define COLOR_ORDER GRB

#define CHIPSET WS2811 #define NUM_LEDS 5

El chipset se usa para decirle a la biblioteca qué tipo de LED estamos usando. FastLED admite casi cualquier LED RGB disponible (como NeoPixel, APA106, WS2816B, etc.). El LED que uso se vende como WS2816B, pero parece ser un poco diferente, por lo que funciona mejor con el chipset WS2811. El orden de los bytes enviados al LED para establecer el color también puede diferir entre los fabricantes, por lo que también tenemos una definición para el orden de los bytes. La definición aquí solo le dice a la biblioteca que envíe el color en el orden verde, rojo, azul. La última definición es para la cantidad de LED que están conectados. Siempre puede usar menos LED de los que define en el código, así que configuré el número en 5 porque con esta herramienta no estaré diseñando bolígrafos con más de 5 LED. Puede establecer el número mucho más alto, pero debido al rendimiento lo mantengo tan pequeño como lo necesito.

Para el código principal también necesitamos algunas variables:

int brillo = 255;

unsigned int pot_Reading1 = 0; unsigned int pot_Reading1 = 0; unsigned long lastTick = 0; unsigned int wheel_Speed = 10;

Estas variables se utilizan para el brillo, las lecturas de los potenciómetros, recordar la última vez que se ejecutó el código y qué tan rápido será el desvanecimiento del color.

A continuación, definimos una matriz para los LED que es una forma fácil de establecer el color. La cantidad definida de LED se utiliza para establecer el tamaño de la matriz aquí:

Leds CRGB [NUM_LEDS];

Después de ocuparnos de las definiciones, ahora podemos escribir la función de configuración. Esto es bastante corto para este programa:

configuración vacía () {

FastLED.addLeds (leds, NUM_LEDS).setCorrection (TípicaLEDStrip); pinMode (LIGHT_PIN, INPUT_PULLUP); pinMode (COLOR_PIN, INPUT_PULLUP); pinMode (RAINBOW_PIN, INPUT_PULLUP); }

La primera línea inicializa la biblioteca FastLED usando las definiciones que establecimos anteriormente. Las últimas tres líneas le dicen al Arduino que estos pines se usan como entrada y que si no están conectados a nada, su voltaje debe establecerse en alto (PULLUP). Esto significa que tenemos que conectar estos pines a GND para activar algo.

Ahora podemos encargarnos del programa principal. Esto se hace en la función de bucle. Primero configuramos algunas variables y leemos los potenciómetros:

bucle vacío () {

estático uint8_t hue = 0; estático uint8_t wheel_Hue = 0; pot_Reading1 = analogRead (HUE_PIN); matiz = mapa (pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = analogRead (BRIGHT_PIN); brillo = mapa (pot_Reading2, 0, 1023, 0, 255);

Las dos primeras líneas establecen variables que luego se utilizan para el color. Los dos bloques siguientes se encargan de leer los valores del potenciómetro. Debido a que obtiene un valor entre 0 y 1023 si lee un pin usando "analogRead" pero el tono y el brillo necesitan un valor entre 0 y 255, usamos la función "map" para traducir la lectura de una región de valor a otra. El primer parámetro de esta función es el valor que desea traducir, los últimos cuatro son el mínimo y el máximo de las regiones que desea utilizar para la traducción.

A continuación vamos a evaluar el pulsador:

if (digitalRead (LIGHT_PIN) == LOW) {

Verificamos la lectura con LOW porque definimos el pin como alto si no se activa. Entonces, si se presiona el botón, el pin se conectará a GND y leerá bajo. Si los pines no están presionados, no hay mucho que hacer.

Primero, ocupémonos de encender el LED en un solo color:

if (digitalRead (COLOR_PIN) == LOW) {

if (tono <2) {FastLED.showColor (CRGB:: Blanco); FastLED.setBrightness (brillo); } else {FastLED.showColor (CHSV (tono, 255, brillo)); FastLED.setBrightness (brillo); } retraso (10);

Necesitamos evaluar el pin de color para saber que queremos usar este modo. Entonces podemos comprobar qué color se necesita. Dado que aquí se usa el modelo de color HSV, solo necesitamos el tono para definir un color. Pero esto también crea el problema de que no tenemos una forma de establecer el color en blanco. Dado que el tono 0 y el tono 255 se traducen en rojo, utilizo un pequeño truco aquí y verifico si la lectura del potenciómetro de tono es menor que 2. Esto significa que el potenciómetro está girado completamente hacia un lado y podemos usar esto para establecer el blanco. Todavía tenemos rojo en el otro lado, así que no perderemos nada aquí.

Entonces, o configuramos el color en blanco y luego el brillo, o bien configuramos el color en función de la lectura del tono y también del brillo.

Luego agregué un pequeño retraso porque es mucho mejor darle al controlador un poco de tiempo de inactividad para ahorrar energía y no se sentirá un retraso de 10 milisegundos.

A continuación, codificamos el desvanecimiento del color:

si no (digitalRead (RAINBOW_PIN) == LOW) {

Wheel_Speed = map (pot_Reading1, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = millis (); } FastLED.showColor (CHSV (wheel_Hue, 255, brillo)); }

Primero se marca el pin para alternar este modo. Como no quería agregar un tercer potenciómetro para controlar la velocidad del desvanecimiento y dado que el potenciómetro de tono no se usa en este modo, podemos usar ese potenciómetro para establecer la velocidad. Usando la función de mapa nuevamente podemos traducir la lectura a un retraso que se traduce en la velocidad del desvanecimiento. Usé un valor entre 2 y 30 para el retraso porque, según las experiencias, esta es una buena velocidad. La función "millis" devolverá los milisegundos desde que se encendió el Arduino, por lo que podemos usar esto para medir el tiempo. El último cambio de tono se almacena en una variable que definimos anteriormente y esta se compara cada vez para ver si tenemos que cambiar el tono nuevamente. La última línea solo establece el color que debe mostrarse a continuación.

Para terminar el código:

} demás {

FastLED.showColor (CRGB:: Negro); }}

Solo tenemos que apagar el LED si no se presiona el botón configurando el color en negro y cerrar los corchetes abiertos.

Como puede ver, este es un código bastante corto y fácil que se puede usar para muchas herramientas que usan LED RGB.

Una vez que tenga el código completo, puede cargarlo en Arduino. Para esto, conecte el Arduino a su PC con un cable USB y seleccione el tipo de Arduino en el IDE.

En estas instrucciones utilizo Arduino Pro Micro. Después de configurar el modelo de Arduino, debe seleccionar el puerto donde el IDE puede encontrarlo. Abra el menú del puerto y debería ver su Arduino conectado.

Ahora lo único que puede hacer es cargar el código en Arduino presionando el segundo botón redondo en la parte superior de la ventana. El IDE creará el código y lo cargará. Después de que esto tenga éxito, puede desconectar el Arduino y continuar ensamblando el controlador.

Paso 3: Montaje de la electrónica para el controlador

Como nos encargamos de codificar el Arduino, ahora podemos ensamblar el hardware del controlador. Empezamos poniendo los componentes dentro de la caja. Los potenciómetros van en los dos orificios redondos de la izquierda, el interruptor de encendido está en la parte inferior, el interruptor de modo está en la parte superior derecha y el Arduino va en el soporte en el medio.

Paso 4:

Imagen
Imagen

Comience soldando un cable rojo desde el interruptor de encendido al pin RAW del Arduino. Este pin es el pin para la fuente de alimentación, ya que está conectado a un regulador de voltaje, por lo que incluso si el voltaje es superior a 5 V, este pin se puede usar para alimentar el Arduino. Luego suelde otro cable rojo al pin VCC ya que necesitamos el voltaje de alto nivel para el potenciómetro. Suelde dos cables blancos a los pines A0 y A1 que se utilizarán para las lecturas del potenciómetro.

Paso 5:

Imagen
Imagen

Ahora coloque un cable largo blanco y uno verde largo a través de la abertura en la parte superior que luego se usarán para conectar el LED. Suelde el verde al pin 3 y el blanco al pin 6 y presiónelos sobre el Arduino. Suelde dos cables negros a los pines GND en el lado izquierdo del Arduino, estos se utilizan para el voltaje de bajo nivel para los potenciómetros. Suelde dos cables azules al pin 7 y al pin 8 que se utilizarán para el interruptor de modo.

Paso 6:

Imagen
Imagen
Imagen
Imagen

El cable rojo que soldamos en el pin VCC ahora debe soldarse a uno de los pines exteriores del primer potenciómetro. Use otro cable rojo para continuar con el segundo potenciómetro. Tenga cuidado de usar el mismo lado en ambos potenciómetros, de modo que al máximo sea el mismo lado en ambos. Suelde los dos cables negros al otro lado de los potenciómetros y los cables blancos de las clavijas A0 y A1 en la clavija central. Los potenciómetros funcionan ajustando el voltaje en el pin del medio a un voltaje entre los voltajes aplicados a los pines externos, por lo que si conectamos voltaje alto y bajo, podemos obtener un voltaje intermedio en el pin del medio. Esto completó el cableado de los potenciómetros y se pueden girar un poco para que los pines estén fuera del camino.

Paso 7:

Imagen
Imagen

Suelde un cable negro a la clavija central del interruptor de modo y coloque un cable negro largo a través de la abertura que conduce a la fuente de alimentación. Coloque otro cable negro largo a través de la abertura superior para usarlo como GND para el LED.

Paso 8:

Imagen
Imagen

El cable negro que viene de la fuente de alimentación está soldado a otro cable negro que está conectado al último pin GND libre del Arduino. Suelde el cable que conduce al LED y el cable negro en el interruptor de modo juntos y finalmente suelde los dos pares de cables negros que ahora tiene juntos. Utilice un tubo retráctil para aislar la soldadura para evitar cortocircuitos dentro del controlador.

Paso 9:

Imagen
Imagen

Como último paso, ahora podemos soldar los dos cables azules al interruptor de modo. Estos interruptores funcionan conectando el pin del medio a uno de los pines externos, dependiendo de qué lado esté el interruptor. Dado que los pines 7 y 8 están configurados para activarse cuando se conectan a GND, podemos usar los pines exteriores del interruptor para los pines y el medio para GND. De esta forma siempre se activa uno de los pines.

Finalmente, coloque un cable rojo a través de la abertura de alimentación y suéldelo en el pin del medio del interruptor de encendido y coloque otro cable rojo largo a través de la abertura del LED y suelde este al mismo pin en el interruptor de encendido al que está conectado el Arduino.

Paso 10:

Imagen
Imagen

Suelde los cables de alimentación al soporte de la batería y atornille el clip que sujeta los cables que conducen al LED. Esto completa el cableado del controlador.

Paso 11: Montaje del Light Pen

Dado que esta herramienta está diseñada para ser modular y utilizar diferentes bolígrafos, necesitamos un conector en los cables para el LED. Usé un conector molex de 4 terminales barato que generalmente se puede encontrar en cables usados para ventiladores en una computadora. Estos cables son baratos y fáciles de conseguir, por lo que son perfectos.

Paso 12:

Imagen
Imagen
Imagen
Imagen

Cuando comencé a cablear el controlador, no verifiqué los colores de los cables en los conectores, por lo que son un poco diferentes, pero fáciles de recordar. Conecté los cables negros, el poder al amarillo, el verde sobre el verde y el blanco sobre el azul, pero puedes usar cualquier combinación que quieras, solo recuérdalo también para los otros bolígrafos. Tenga cuidado de aislar las áreas soldadas con tubo retráctil para evitar cortocircuitos.

Paso 13:

Imagen
Imagen
Imagen
Imagen

Pase un cable largo rojo y uno verde largo a través del bolígrafo y suelde los cables negros a un lado del botón pulsador y el cable blanco al otro lado. Este tipo de pulsadores tienen cuatro pines de los cuales dos están conectados en pares. Puede ver qué pines están conectados mirando en la parte inferior del botón, hay un espacio entre los pares que están conectados. Si presiona el botón, los dos lados se conectan entre sí. A continuación, se pasa el cable blanco y uno negro hasta el final del bolígrafo, comenzando por la abertura del botón. El otro cable negro se tira hacia el frente. Asegúrese de tener suficiente cable en ambos lados para trabajar.

Paso 14:

Imagen
Imagen
Imagen
Imagen

Presiona encajar el botón en la abertura y prepara el resto de los cables. Es mejor soldar los cables al LED de modo que miren hacia el centro del LED porque los cables pasan por el centro del lápiz. Suelde el cable rojo a la almohadilla de soldadura de 5 V, el cable negro a la almohadilla de soldadura GND y el cable verde a la almohadilla de soldadura Din. Si tiene más de un LED, la almohadilla de soldadura Dout del primer LED se conecta al Din del siguiente LED y así sucesivamente.

Paso 15:

Imagen
Imagen
Imagen
Imagen

Ahora presione el botón en la parte frontal del bolígrafo y coloque una gota de pegamento detrás para mantenerlo en su lugar.

Ahora solo tienes que soldar los cables del extremo del bolígrafo al otro lado del conector teniendo en cuenta los colores.

Lo mejor es utilizar una gota de pegamento y un poco de cinta para liberar la tensión de los cables en el extremo del bolígrafo para evitar que se rompan. Esto completa el montaje del bolígrafo de luz.

Paso 16: Ejemplos

Ejemplos de
Ejemplos de
Ejemplos de
Ejemplos de
Ejemplos de
Ejemplos de
Ejemplos de
Ejemplos de

Finalmente, quiero mostrarles algunos ejemplos en los que utilicé esta herramienta. El bolígrafo en ángulo es genial para iluminar las líneas de un graffiti y el bolígrafo recto es genial para dibujar y escribir cosas en el aire (para lo cual tengo poco talento).

Este es el objetivo principal de esta herramienta. Como puede ver, las posibilidades son increíbles si combina exposiciones prolongadas con esta herramienta.

Para comenzar con este tipo de fotografía, intente utilizar la configuración ISO más baja que admita su cámara y una alta apertura. Una buena manera de encontrar la configuración correcta es poner la cámara en modo de apertura y cerrar la apertura hasta que la cámara muestre un tiempo de exposición aproximado al tiempo que necesita para dibujar lo que desea agregar a la imagen. Luego cambie a manual y use ese tiempo de exposición o use el modo de bombilla.

¡Diviértete probándolos! Es una forma de arte asombrosa.

Agregué esta instrucción al desafío de inventores y usos inusuales, así que si te gusta deja un voto;)

Paso 17: los archivos

También agregué modelos para sujetadores de correa que deben pegarse en la parte inferior de la caja del controlador para que pueda sujetarlo al brazo y un clip para el bolígrafo que se puede pegar a la tapa para cuando no necesite el bolígrafo. en tu mano.

También hay tapas difusoras que se pueden usar para suavizar la luz y evitar destellos cuando el lápiz apunta directamente a la cámara.

Recomendado: