MI SCARA PLOTTER

Este proyecto que ya tengo en funcionamiento, esta basado en una modificación del proyecto original que puedes encontrar en «https://howtomechatronics.com/projects/scara-robot-how-to-build-your-own-arduino-based-robot/. que lo convierte en un «drawbot» mas de los muchos que circulan en la red.

Para todos aquellos que esten interesados en el proyecto original aqui les ofrezco el desarrollo de como lo converti en un plotter utilizando la placa Ramps 1.4 y Marlin version 2.1.2.

La base y el brazo se mantienen como el original. El eje Z pasa a ser fijo con un leve ajuste manual de altura sobre cuatro barras de 200 mm enderezado por la parte de atras sobre la base giratoria para compensar la caida de L1 que tantos problemas de estabilidad conlleva dado su dimension y peso.

L2 se sustituye por un portador de lapiz o boligrafo controlado por un servo sobredimensionado que le va a dar estabilidad al conjunto, es el sistema «Pen Lifter» que diseñé lo mas simple posible.

Con el uso de solo dos motores y un servo con los drivers TMC2225, el consumo se mantiene por debajo de los 150 mA, con lo que se puede usar cualquier conversor USB que encontramos en Amazon de 5 a 12V, lo que nos permitira usar cualquier puerto de nuestro computador que vienen preparados para cargas maximas de 500 mA.

De nuevo agradecer el trabajo de Dejan en HowtoMecatronics, sin el cual esto no hubiera salido a la luz. Expondré todas las partes a imprimir que incluyo y un enlace para su descarga, y será necesario visitar la pagina original del proyecto original para seguir las instrucciones para la construcción de la base y el brazo L1.

DETALLES DEL MONTAJE

Detalle del brazo L1

DESCARGAS

PROYECTO ORIGINAL-https://howtomechatronics.com/projects/scara-robot-how-to-build-your-own-arduino-based-robot/

Marlin 2.1.2 con los archivos config.ini usados

https://drive.google.com/file/d/1DNzyjSgBmwPDCKJS2JVjcZvcprLnLeSX/view?usp=sharing

Descarga archivos .STL

https://drive.google.com/file/d/1-vUxMp3PAesUjnDInTWI-4tzUwk6JjJ_/view?usp=sharing

Extension de Inkscape para usar el «Pen Lifter»: 4xiDraw tool

https://drive.google.com/file/d/13BRxS-gTb1aWAIhWQNEEoPGuVhOKPW4J/view?usp=sharing

Version Inkscape compatible con 4xiDraw tool.

https://drive.google.com/file/d/1jSEitQ6LX_bJxOKwAnGXuUMk4VdpeuvT/view?usp=sharing

Programa para el paso de imagenadibujo svg: Processing&Drawbot Image to Gcode V2

Base de entendimiento:

Para el montaje de esta adaptación de proyecto original primero tendremos que imprimir la base y el brazo L1 (Arm 1) con las ruedas dentadas segun instrucciones de la pagina original de Dejan (HowToMechatronic) tensando adecuadamente las correas.

La adaptacion a Plotter comienza con la fijación del eje Z con cuatro barras de acero de 10 mm de diametro y 200 mm de longitud , dejando para el final el brazo L2 con el sistema «pen lifter».

Para el ajuste fino de elevacion, usaremos un tornillo T8 y su tuerca de 180 mm. Podremos añadirles dos muelles de amortiguación y remataremos la parte superior con dos «bridges» a modo de tapon terminal.

Los muelles que utilice son los que traen los tornillos antiretroceso T8.

Pen_Lifter

Aquí expongo lo necesario para montar el sistema «penlifter», aprovechando unas varillas de acero inoxidable con sus topes de las que se utilizan como empuje en aviones RC, las cuales he cortado para ajustarlas al cuadro del brazo L2, los muelles son de 10 mm interior aprox.

Como se ve, he utilizado un servo digital que excede por mucho el trabajo de levantar el «holder». Asi pues se podría utilizar otro del mismo tamaño y mas liviano.

Para posicionar el servo, cuyo recorrido como sabemos es de 0-180, he dispuesto la palanquita de empuje en 15 grados como reposo subiendo solo 10 grados hasta 25 lo suficiente para levantar el lapiz o boligrafo que se utilice. (M280 P0 S15//M280 P0 S25)

Servo sibredimensionado de 25 Kg,-

CARACTERÍSTICAS DEL FIRMWARE

He usado la placa Ramps 1.4 con Arduino Mega 2560 con el software Marlin 2.1.2 que como sabemos es un software diseñado especificamente para impresores 3d ,pero ya hace tiempo que también se viene usando para controlar robots tipo SCARA. He puesto en los enlaces de descarga esta versión de Marlin ya configurado para este plotter (config.h) . La alimentación de 12 V de esta placa se ha suministrado con un convertidor usb bost de 5V a 9 /12V, gracias el cual el propio computer a traves de alguno de sus puertos usb nos servirá para ello sin miedo a sobrecargarse ya que el consumo no va a superar los 150 mA gracias a los drivers TMC2225 ajustados a los dos «stepper motor» X,Y usados. Lo único que nos puede preocupar son los picos de corriente que puede dar el servo mientras se esta ajustando,por lo que es recomendable que al principio de alimente de una fuente de 5v externa . En reposo solo consumira 50 mA. (tension de referencia de los drivers ajustado entre 0,3V y 0,4V)

End-Stops & Home position

Comprobamos que este montaje no contempla el uso de end-stops X e Y. En mi conocimiento actual no he logrado hacer funcionar el posicionamiento automatico a Home de los ejes X e Y,solo me ha funcionado el eje Z que aqui no se necesita. Cuando lo he activado,el robot ha tenido un funcionamiento errático.Y eso ocurre cuando se activa la función SCARA en el archivo de configuración que veremos mas adelante.

Por este motivo he diseñado una pieza que nos va a ayudar al posicionamiento manual «Home position» a partir de la cual colocaremos el efector para que una vez definidos los «offsets» X,Y las lineas de código de coordenadas Gcode puedan ser interpretadas correctamente por este SCARA.

Configuración Marlin (config.h)

Para enfrentarnos a los conceptos que nos van a permitir entender como va a funcionar el plotter, lo mejor es descuartizar las areas configurables del archivo config.h. Vereis que tambien hay un archivo copia que se llama configWide.h, en este caso es cuando utilizamos el formato A4 en horizontal.

Primero comprobamos la velocidad de puerto serie que vamos a poner para enlace con el arduíno Mega-

Aunque no corresponda la definición del tipo de driver usado, asi funciona bien.

Medida de los brazos L1,L2 y establecimiento de offsets

Debemos ser cuidadosos con la medida de L1 y L2,pues de ello depende la exactitud de las coordenadas. Para calibrarlo edito los valores de gcode con la aplicacion «Repeater» definiendo el recorrido del efector para que forme un rectangulo y comprobando que sea lo mas exacto posible. En mi caso segun el diseño establecido;

L1= 228 mm,, L2=181.5 mm.

El offset X,Y nos expresa la posición de partida del efector con respecto a su origen (0,0) y el origen debe estar referenciado al origen del eje de rotación X (J1= joint1). Como dicho origen esta fuera del area de trabajo definimos un offset X=100 mm y un offset Y=-122.5 mm. (posicion A4 vertical 221mmx297mm) En el archivo configWide.h el offset X=180 ya que la hoja A4 estaría en posicion horizontal y con este valor el recorrido estaría en el márgen 297mm de su medida de lo que seria entonces su eje X.

Todo lo que este a la izquierda y por debajo del 0,0 (J1) se toma positivo, y todo lo que quede a la derecha y hacia arriba negativo. Entonces un offset X=100 mm significa que su origen X estara deplazado 100 mm a la izquierda. Del mismo modo, un offset Y=-122.5 mm significa que su origen Y esta desplazado 122.5 mm hacia arriba, precisamente la suma del radio de la base mas una distancia de seguridad que permita a los brazos L1 y L2 marcar correctamente las coordenadas que se definan.

Con esta longitud de los brazos L1+L2=409.5 mm es el recorrido maximo de los brazos siendo solo efectivo en el eje X ,mientras que en el eje Y seria 409-122.5= 287 mm. Si usamos una hoja A4 en posición vertical no llegariamos a su axima altura de 297 mm por lo que hay que tenerlo en cuenta definiendo un area cuyo eje Y ,por seguridad no superase los 280 mm- Personalmente yo lo limito a 260 mm, pues no es conveniente trabajar con los brazos en su máxima extensión porque se producen movimientos no deseados.

Axis step per unit

Puesto que estamos utilizando drivers TMC2225 y MS1/MS2 estan a nivel alto, cada paso se convertiran en 32 micropasos:

Para el eje X la reducción es de 20,o sea, que 20 revoluciones del motor se convertiran en 1 revolucion de su rueda dentada asi, 200/360X20X32=355.5555

Para el eje Y, la reducción es de 16 ,asi 200/360x16x32=284.4444

el resto de valores no nos incumben.

RECORRIDO DESPUES DE HOMING.

En este caso, no necesitamos hacer Homing porque como dije anteriormente, cuado se activa Scara, producen movimientos no deseados, excepto el eje Z que no se usa..Como valor mínimo usaremos 0 y como valor maximo la medida que definamos de lo que se llama cama que se ha extralimitado para no tener problemas. Realmente el area de trabajo seria 409.5×287.

Manual home position.

Esta configuración es fundamental y nos va a decir donde tenemos que situar el efector de forma manual para que las medidas de las coordenadas sean las correctas.

En la configuración he puesto X un valor de 100 igual que el offset X ya definido,precisamente estaría situado en el centro de la hoja A4 cuando esta en posición vertical.En el caso de que la hoja se pusiera en horizontal, estaria definiendo un offset de 180 = Manual_X:Home position.

En el caso del eje Y su valor es 0

ACTIVACIÓN DE SERVOS

En teoría,se pueden definir hasta 4 servos numerados del 0 al 3, pero con la configuración actual y la dependencia a otros archivos si se pone un numero mayor a 1, no nos dejará compilarlo y dará error. Puesto que en mi caso no necesito mas que un servo para el sistema «pen-lifter», no he investigado mas a fondo el problema.

Conclusión de la configuración:

Aunque hay bastantes más detalles que he pasado por alto, no he querido pormenorizar mas y lo doy por muy básicos si ya hemos intentado montar el robot original que particularmente, a parte del inmejorable diseño sin el cual no podría haber hecho mi remake, tuve problemas con las dimensiones del brazo L1 y el peso que me hacían desbalancear el eje Y, con lo que opte por esta modificación a plotter fiando el eje Z .

HERRAMIENTAS DE SOFTWARE

Una vez configurado el hardware y realizadas pruebas de movimiento que nos permita comprobar la respuesta rotacional correctamente, como todas las instrucciones van a llegar a traves de su puerto serie a la velocidad configurada de 115200 Bd, necesitamos una aplicación que carge el conjunto de Gcode procedente de un archivo .STL o a través de su introducción manual. Una aplicación que cumple estas expectativas ademas de disponer de una configuracion de impresora es «Repetier Host» .Podremos editar los Gcode y tener una representación gráfica de lo que vamos a imprimir a través del Scara Plotter.

Inkscape es una aplicacion de software libre capaz de manejar y editar imágenes de cualquier tipo y covertirlas a formato .SVG, y ademas a traves de extensiones convenientes (4xiDraw Tools) podremos activar la función «pen Lifter» encargada de generar las líneas de Gcode que marcan las coordenadas posicionales ademas de levantar el lápiz cuando se requiera

Con Inkscape podremos generar archivos svg y gcode utilizando la tecnica de relleno Hatch Fill con Fill&Stroke..

Para instalar esta extension descrgaremos el archivo comprimido 4xiDraw y despues de extraídos sus elementos los copiaremos en:

C:\Program Files\Inkscape0925\share\extensions

Importante señalar que la versión de Inkscape compatible con dicha extensión es 09.2.5. Con esta aplicacion podremos importar archivos de imagenes y convertirlas al formato svg, pero sin duda si queremos uno resultado realmente bueno de generación de imágenes vectorizadas tendremos que acudir a «Processing&Drawbot Image to Gcode V2».

En el area de descargas podras bajarte la versión 3.5.4 de Processing y la herramienta DrawBot Image to Gcde V2 mas un enlace directo al archivo «DrawBot Image…»

https://github.com/Scott-Cooper/Drawbot_image_to_gcode_v2

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *