Fresado CNC con software de código abierto

Siempre estoy buscando nuevos proyectos para crear con mi impresora 3D. Cuando hace poco vi un nuevo diseño de una fresadora de código numérico por ordenador (CNC) que utiliza principalmente piezas impresas en 3D, me intrigó. Cuando vi que la máquina funciona con software de código abierto y el controlador es un Arduino que ejecuta software de código abierto, supe que tenía que hacer una.

Las fresadoras CNC son herramientas de corte de precisión que se utilizan para crear troqueles, grabados y modelos. A diferencia de otras herramientas de fresado, las máquinas CNC pueden moverse en tres ejes: el eje Z se mueve verticalmente, el eje X se mueve horizontalmente y el eje Y se mueve hacia adelante y hacia atrás.

Haz tu CNC

Aunque muchos de los componentes de esta máquina CNC están impresos en 3D, hay que pedir varias piezas para que funcione. Su creador, Nikodem Bartnik, tiene una lista de piezas en la página Thingiverse del proyecto junto con enlaces para descargar los archivos STL de las piezas impresas en 3D.

Encargué las piezas necesarias y comencé la espera. Se enviaron desde el extranjero, por lo que algunas de ellas tardaron un mes en llegar. Mientras tanto, imprimí en 3D las demás piezas.

La máquina CNC está construida sobre un controlador Arduino que ejecuta el software de control de movimiento GRBL de código abierto. El controlador GRBL recibe el código G del CNC (una lista de instrucciones basada en texto para la fresadora CNC) y lo traduce en movimiento accionando los motores paso a paso. La máquina tiene un motor paso a paso para el eje Z (arriba y abajo), un motor paso a paso para el eje X (izquierda y derecha), y dos motores paso a paso para el eje Y (adelante y atrás). El sitio web de GRBL tiene documentación para cargar GRBL en la placa Arduino.

No voy a entrar en detalles sobre el montaje del hardware del CNC, ya que Nikodem tiene una serie de vídeos que lo explican en detalle. En su lugar, me centraré en el software de código abierto que se puede utilizar para crear diseños y ejecutar la máquina CNC. Junto con Fedora como mi sistema operativo base, las otras piezas de software de código abierto que utilicé son GRBL, Inkscape, jscut, y CNCjs.

Para este tutorial, voy a explicar cómo crear una versión de madera fresada por CNC del logo Linux Tux de Larry Ewing.

Haz tus archivos

El primer paso para hacer un Tux de madera es descargar una versión en blanco y negro del logotipo en formato PNG desde Wikimedia Commons.

cnc_bw-tux.png

Logotipo de Tux de Wikimedia Commons

El punto de partida del proyecto, una imagen PNG de Tux de Wikimedia Commons, realizada por gg3po, con licencia GPL v2.

Para que el logo de Tux pueda funcionar en la máquina CNC, convierte el archivo PNG de Tux en un archivo SVG con Inkscape arrastrando y soltando el archivo PNG en la ventana de Inkscape. A continuación, utilice la opción Trace Bitmap de Inkscape para convertir la imagen en rutas SVG. Esto crea copias duplicadas de la imagen -una es un trazado, la otra es un mapa de bits- borre la copia del mapa de bits. Utilice la opción Break Apart y elimine la propiedad Fill para el contorno de Tux y la boca de Tux; tendrá una imagen SVG que parece la inversa de la imagen original.

cnc_inverse-svg.png

Archivo de Tux inverso creado en Inkscape

Tux inverso creado en Inkscape. Las secciones negras serán fresadas por la máquina CNC.

Luego, convierta el archivo SVG en código G CNC, que es una lista de instrucciones que le dicen a la máquina CNC cómo crear el diseño deseado. He utilizado el software de código abierto jscut, que es un programa de fabricación asistida por ordenador (CAM) basado en la web. Puede descargar el software y ejecutarlo en su máquina local o utilizar la versión basada en la web en jscut.org, que es lo que hice.

Abra el archivo SVG en jscut.org utilizando el menú desplegable Open SVG. A continuación, haga clic en una o más partes de la imagen SVG, y luego haga clic en Crear operación. Elija el tipo de operación (grabado, exterior, bolsillo, etc.) y la profundidad del corte, y haga clic en Generar. Los diferentes tipos de operaciones definen dónde se realiza el corte; puede ver los efectos de las diferentes operaciones yendo a la pestaña Simular GCODE, que muestra una vista previa de cómo será el corte. Para Tux, he creado varias operaciones para varias partes del diseño.

cnc-jscut.png

Generando el código G del CNC de Tux con jscut

Generando el código G del CNC de Tux con jscut.

Configura las propiedades de tu broca de corte en la sección Tool (Herramienta); esto incluye especificar el diámetro de la broca y la velocidad a la que debe realizarse el corte. Una limitación de jscut es que no puedes especificar diferentes tamaños de broca para diferentes operaciones. Para crear a Tux, necesité usar dos brocas diferentes: una broca más pequeña para grabar detalles como los ojos, la nariz y la boca, y una broca más grande para cortar el contorno de Tux a lo largo de toda la tabla de madera. Utilicé jscut dos veces para generar dos archivos de código G diferentes: uno para hacer los grabados con la broca más pequeña y otro para cortar el contorno de Tux con la broca más grande.

Después de crear los dos archivos de código G, la siguiente tarea es conseguir el software del controlador CNC. He utilizado el CNCjs de código abierto. CNCjs está basado en la web, es fácil de usar, y soporta la interfaz con los controladores GRBL. Una vez instalado, accede a CNCjs en un navegador web y conéctalo a tu controlador Arduino GRBL.

Haz clic en Cargar G-Code y especifica el archivo que creaste con jscut. En primer lugar, cargué el archivo G-code que hace los grabados en la parte superior de Tux.

Prepárate para cortar

¡Ya estás casi listo para empezar a cortar! Dado que va a cortar todo el camino a través de la madera, es inteligente utilizar un «tablero de residuos» – un tablero que se sienta en la parte superior de esa máquina CNC que no le importa cortar en. Esto se debe a que cuando la máquina corta Tux, va a ir todo el camino a través y en el tablero debajo de ella. El tablero de residuos puede ser reemplazado cuando sea necesario.

cnc-wasteboard.jpg

Tablero de residuos

Tablero de residuos mostrando cortes anteriores.

Asegure el tablero de desecho a su máquina CNC para evitar cualquier movimiento, luego fije la pieza de madera que utilizará para Tux. Hay muchas maneras de fijar la madera-yo uso cinta adhesiva de doble cara para alfombras.

El último paso antes de cortar es alinear la broca en el husillo a la pieza de madera que está cortando. Utilice los botones de ejes del CNCjs para mover físicamente el husillo de manera que las coordenadas X, Y y Z de la broca estén alineadas con la esquina superior izquierda de su madera. El eje Z debería estar justo por encima de la madera; debería poder deslizar un trozo de papel entre la madera y la broca pero sentir que la broca se arrastra sobre el papel mientras se desliza.

Una vez que todo esté alineado, establezca las compensaciones de la posición de trabajo para los ejes X, Y y Z a cero haciendo clic en el botón Set para cada uno.

cnc-set-axes.png

Posición de trabajo de los ejes a cero

Ajuste de la posición de trabajo a cero para los ejes X, Y y Z.

Pulsar el botón Z+ en el CNCjs para elevar un poco la broca y que el husillo no haga una marca en la madera al encenderlo.

Para empezar a cortar, ponte las gafas de seguridad, protección auditiva y una máscara antipolvo. A continuación, encienda el husillo, y haga clic en el botón Play en CNCjs.

Monitoree de cerca la máquina durante el corte y tenga un plan para desconectar rápidamente la energía de la máquina CNC y el husillo si es necesario. Esté preparado con una aspiradora también, porque creará una gran cantidad de serrín.

Después de que el primer archivo de código G complete los grabados en Tux, apague el husillo y pulse el botón X0Y0 en CNCjs para devolver el husillo a la posición de trabajo del eje X e Y de origen. A continuación, cambie a la broca más grande, cargue el archivo de código G que recortará el contorno de Tux y siga el mismo proceso para ejecutarlo.