Timelapses

Descubre como inmortalizar tus obras de arte usando Mainsail

Qué necesitamos?

Obviamente, vamos a necesitar una cámara que conectaremos a nuestro host Klipper. Tienes algunas sugerencias y como configurarlas en la siguiente guía.

Una vez tenemos nuestra cámara conectada y accesible desde nuestro DASHBOARD podremos comenzar con la configuración.

Configurando la extensión moonraker-timelapses

Nos conectaremos usando SSH a nuestro host Klipper, no vamos a explicaros estos pasos en esta guía dado que si habéis llegado a este punto ya lo deberíais tener controlado 👍

  • Lanzaremos los comandos para clonar el repositorio de nuestra extensión moonraker-timelapse

cd ~/
git clone https://github.com/mainsail-crew/moonraker-timelapse.git
bash ~/moonraker-timelapse/install.sh
  • instalaremos el complemento ffmpeg necesario para el correcto funcionamiento de la extensión

sudo apt install ffmpeg
bash ~/moonraker-timelapse/install.sh
  • con todo instalado ahora iremos a nuestra interfaz Mainsail y actualizaremos nuestro moonraker.conf para añadir la nueva extensión a la gestión de actualizaciones de Moonraker:

  • Incluiremos lo siguiente:

moonraker.conf
[update_manager timelapse]
type: git_repo
primary_branch: main
path: ~/moonraker-timelapse
origin: https://github.com/mainsail-crew/moonraker-timelapse.git
  • ahora nos aseguraremos que activamos la extensión añadiendo la siguiente sección:

moonraker.conf
[timelapse]
##   Following basic configuration is default to most images and don't need
##   to be changed in most scenarios. Only uncomment and change it if your
##   Image differ from standart installations. In most common scenarios 
##   a User only need [timelapse] in there configuration.
#output_path: ~/timelapse/
##   Directory where the generated video will be saved
#frame_path: /tmp/timelapse/
##   Directory where the temporary frames are saved
#ffmpeg_binary_path: /usr/bin/ffmpeg
##   Directory where ffmpeg is installed

Dentro de [timelapse] podremos ajustar su configuración básica:

  • output_path, donde se generará el video

  • frame_path, donde se guardarán las capturas

  • ffmpeg_binary_path, donde indicaremos donde tenemos nuestro binario ffmpeg

Esta configuración suele ser suficiente normalmente en todo caso tenemos más ajustes que podemos realizar de forma avanzada, podéis encontrar mas información de estos ajustes aquí:

# moonraker.conf
# [timelapse] section

#enabled: True
#mode: layermacro
#snapshoturl: http://localhost:8080/?action=snapshot
#gcode_verbose: True
#parkhead: False
#parkpos: back_left
#park_custom_pos_x: 0.0
#park_custom_pos_y: 0.0
#park_custom_pos_dz: 0.0
#park_travel_speed: 100
#park_retract_speed: 15
#park_extrude_speed: 15
#park_retract_distance: 1.0
#park_extrude_distance: 1.0
#hyperlapse_cycle: 30
#autorender: True
#constant_rate_factor: 23
#output_framerate: 30
#pixelformat: yuv420p
#time_format_code: %Y%m%d_%H%M
#extraoutputparams: 
#variable_fps: False
#targetlength: 10
#variable_fps_min: 5
#variable_fps_max: 60
#flip_x: False
#flip_y: False
#duplicatelastframe: 0
#previewimage: True
#saveframes: False
# moonraker.conf
# [timelapse] section

#enabled: True
#mode: layermacro
#snapshoturl: http://localhost:8080/?action=snapshot
#gcode_verbose: True
#parkhead: False
#parkpos: back_left
#park_custom_pos_x: 0.0
#park_custom_pos_y: 0.0
#park_custom_pos_dz: 0.0
#park_travel_speed: 100
#park_retract_speed: 15
#park_extrude_speed: 15
#park_retract_distance: 1.0
#park_extrude_distance: 1.0
#hyperlapse_cycle: 30
#autorender: True
#constant_rate_factor: 23
#output_framerate: 30
#pixelformat: yuv420p
#time_format_code: %Y%m%d_%H%M
#extraoutputparams: 
#variable_fps: False
#targetlength: 10
#variable_fps_min: 5
#variable_fps_max: 60
#flip_x: False
#flip_y: False
#duplicatelastframe: 0
#previewimage: True
#saveframes: False
  • por último, y en nuestro printer.cfg, añadiremos un include para el timelapse.cfg

printer.cfg
[include timelapse.cfg]

Configurando nuestro laminador

Dependiendo de nuestro laminador, deberemos ajustar el gcode de cambio de capa:

Printer Settings -> Custom GCODE -> Before Layer Change

Añadiendo la siguiente macro para efectuar el timelapse:

TIMELAPSE_TAKE_FRAME

Ahora cada vez que generemos nuestros gcodes lanzará nuestra macro que nos permitirá realizar timelapses!!

Última actualización