Neopixel
Como personalizar y aprovechar el uso de Neopixel en Klipper
Última actualización
Como personalizar y aprovechar el uso de Neopixel en Klipper
Última actualización
Para poder configurar nuestros Neopixel en Klipper es tan sencillo como añadir la configuración necesaria para nuestra electrónica/mcu en la sección neopixel de nuestro printer.cfg o include cfg que consideremos oportuno.
IMPORTANTE!!!
Normalmente es aconsejable usar una resistencia 300-500ohms entre el pin de SGN de nuestro controlador de neopixel y el pin de datos de nuestra tira neopixel
Hay que tener en cuenta que las conexiones de alimentación y datos han de seguir la dirección de la tira led tal como podéis ver en la siguiente foto
Es aconsejable alimentar externamente desde una fuente la tira led, asegurandote que el pin -/GND este compartido entre la tira led y la MCU que los controle
También es importante usar una fuente de alimentación que aguante correctamente el consumo de nuestra tira led, a modo de ejemplo para calcular lo que necesitamos en W/A podéis usar la siguiente calculadora para tener una estimación
El método más sencillo, si queremos gestionar unos pocos leds es usar un pin PWM de nuestra electrónica:
En nuestra configuración:
usamos el pin para indicar cual es el pin de señal usado para controlar nuestra tira de leds inteligente
en chain_count definiremos el número de leds que queremos usar, es importante recordar que el número que soporte la electrónica vendrá definido por la capacidad del DCDC 5V que lleve y el consumo por led de nuestra tira. Normalmente, solo aguantan unos 20 leds como máximo, si superamos o llegamos a límites de lo soportado lo ideal es alimentar los leds con un DCDC externo
en initial_XXXX indicaremos el color que queremos que tengan inicialmente donde XXX es el color (RED GREEN BLUE) y el número la intensidad de 0 a 1
Podemos gestionar nuestros leds desde el interfaz de Mainsail o Fluidd, si nuestra tira led está gestionada por Moonraker de forma nativa (WLED o Klipper Virtual Leds no lo serian). En el caso de Mainsail veremos los controles dentro de Dashboard -> Miscellaneous:
Podemos utilizar nuestros neopixel para algo más que iluminar nuestra máquina, pudiendo emitir eventos o información interesante.
Para ello vamos a usar una extensión de terceros para Klipper que permite de una forma sencilla aplicar diferentes efectos a nuestros leds podéis encontrar diferentes módulos similares, en nuestro caso usamos este por lo versátil y potente... en el caso de usar WLED como tenéis en el punto anterior no sería necesario.
Podemos instalar de una forma sencilla la extensión desde el terminal SSH lanzando estos comandos:
También es interesante añadir lo siguiente a nuestro moonraker.conf para poder enterarnos de actualizaciones de esta extensión:
Disponemos de diferentes efectos que podemos aplicar.
En el propio repositorio contamos con una aplicación (Windows y Mac) con la que podemos simular estos efectos.
Podéis descargarla desde la sección Assets de las Releases del repositorio:
Podemos controlar los efectos usando la nueva macro que nos brinda LED EFFECTS usando SET_LED_EFFECT EFFECT=xxxxx donde xxxx es el nombre del efecto que definamos y que a continuación os proponemos algunos.
Podemos activar un ejemplo usando SET_LED_EFFECT EFFECT=panel_idle y pararlo con SET_LED_EFFECT EFFECT=panel_idle STOP=1 aunque podemos usar STOP_LED_EFFECTS para parar todos los efectos que tengamos funcionando.
También es posible usar el parámetro FADETIME con el que podemos deshabilitar durante x segundos un efecto SET_LED_EFFECT EFFECT=panel_idle FADETIME=1.0 en este ejemplo lanzamos el effecto panel_idle haciendo el efecto fade durante 1 segundo.
Lo ideal es lanzar estos efectos por ejemplo en determinadas fases de nuestras macros de inicio o fin de impresion o cualquier otra que creamos oportunas.
Algunos efectos como veremos más adelante se pueden asignar directamente al inicio de la máquina o asociarlos con un estado/valor de un componente/pin de nuestro sistema
Por otro lado al momento de crear nuestros efectos tendremos diferentes parámetros interesantes:
en el apartado leds indicaremos neopixel:xxxxxx donde xxxxxx es el nombre o ID del neopixel que definimos en nuetro printer.cfg (o un include si lo pusimos) También podemos asignar varios leds neopixel o incluso secciones de los mismos:
autostart: true permite que el efecto se inicie al iniciar la máquina
fame_rate: indica el numero de refrescos del led por segundo
heater: en determinados efectos podemos asociarlo con el estado/valor de un heater también podemos asociarlo con un ventilador de temperatura en ese caso lo incluiremos dentro de "" (heater: "temperature_fan myfan")
analog_pin: si queremos que dependa del estado/valor de un pin analógico
stepper: igual que los anteriores pero de un stepper
Os aconsejamos visitar la página del creador para mas información detallada:
https://github.com/julianschill/klipper-led_effect/blob/master/docs/LED_Effect.md
En especial os aconsejamos leer detenidamente la sección que hace referencia a como definir las capas de efectos.
Básicamente hace que nuestros leds bajen/suban el brillo continuamente
En caso que nuestro sistema tenga un error critico los leds mostraran un color rojo con efecto fade
Podremos mostrar el progreso de la impresión, en este caso pasa de un azul claro a oscuro
Aunque inicialmente esta enfocado al uso del neopixel en un cabezal Voron Stealthburner podemos adaptarlo a nuestras necesidades.
El script de post-procesado es el siguiente:
Copiaremos el script stealthburner_colors.py (o el nombre que le queramos dar) a nuestro ordenador, es importante que el directorio no tenga ningún espacio
Nos aseguraremos de tener instalado Python (si usas Windows puedes instalarlo desde su Store de forma sencilla)
Añadiremos el script de post-procesado en nuestra configuración del laminador:
Ahora ya podremos laminar como hacemos normalmente y si todo funciona correctamente veremos que se nos abre una ventana de terminal ejecutando el script
Copiaremos el script stealthburner_colors.py en el directorio scripts:
Para Windows, %APPDATA%\cura\<CURA VERSION>\scripts
Para Linux, ~/.local/share/cura/<CURA VERSION>/scripts
Para MacOS, ~/Library/Application Support/Cura/<CURA VERSION>/scripts
Añadiremos el script de post-procesado en Cura
Menú de extensiones -> Post procesado -> Modificar GCode
Añadiremos Stealthburner Colors
Ahora ya podremos laminar como hacemos normalmente y si todo funciona correctamente veremos que se nos abre una ventana de terminal ejecutando el script
Podemos abrir el gcode generado con un editor de texto y buscaremos referencias SET_LED LED=stealthburner... que deberían de coincidir con el cambio del tipo de trazada.
usar otro neopixel para las notificaciones, en este caso deberemos de asegurarnos que en LED= usemos el nombre del neopixel que nos interese
cambiar el color de un trazado en concreto... en ;TYPE: encontramos el tipo de trazada y en RED=1 GREEN=0.6 BLUE=0 podemos ajustar el color que más nos guste, aunque lo ideal es dejarlo como está, ya que coincide con el preview
ajustar los leds que queremos usar para estas notificaciones, en este caso podemos jugar con el valor de INDEX= para decirle que led o leds queremos usar para estas notificaciones