Sie sind auf Seite 1von 23

Plotter con Arduino e impresoras

recicladas
Hola a tod@s, este post tiene como objetivo
contarles acerca de el proyecto que
desarrolle para la materia Sistemas
embebidos.
Lo que hice fue un plotter utilizando 2
impresoras rotas y un arduino. Utilice
lenguaje C y C++ para el firmware que corre
sobre arduino (lo se, muchos dirn que use
libreras de arduino en vez programar los
registros a mano, bueno, eso ya lo tuve que
hacer y no era el objetivo de este proyecto).
Y Java para el lado Host, encargado de enviar
las coordenadas al Arduino.

Comenc el proyecto desarmando una HP multifuncion, con la cual pensaba


utilizar como eje X el scanner y como eje Y el carro de impresin. Pero como l
impresora contaba con motores DC (los cuales necesitan de un encoder para
controlar la posicion) tuve que salir a conseguir otra, y bueno, me regalaron
una rota en una casa de computacin... una empson c45. Esta epson tenia 2
motores paso a paso.

Asi que, ahora cambie un poco los planes. Agarre como eje X la base de la epson
con el sistema de impresion, y saque el motor paso a paso encargado de
alimentar de papel la misma y lo adecue al eje de impresion de la impresora HP
(sacandole el DC que traa).

Obvio que mientras armaba la estructura iba probando el manejo de los motores,
estos motores no poseen datasheets ni info alguna, ya que son fabricados
exclusivamente para estas impresoras. Por lo que tuve que realizar todo a
prueba y error. Utilice 2 integrados de puente-h (L293D) como drivers de
potencia para los motores ( arduino provee maximo 30mA y yo necesitaba al
rededor de 400mA).

Ese mismo circuito para ambos motores, con la nica diferencia es que
utilizaban diferentes pines del Arduino.
Entrando en el desarrollo del firmware ahora, procedo a comentarles breve ment
el algoritmo principal. Hay que recordar que los motores paso a paso por cada
seal mueven un paso (ver mas http://es.wikipedia.org/wiki/Motor_paso_a_paso )
yo lo que hice ademas, fue modificar la librera Stepper.h que provee arduino
para incluir la funcionabiliadad de mover Half step ( asi achicaba el tamao e
milmetros de cada step y lograba mayor precisin).

Por ah es medio difcil explicar el algoritmo por ac, pero bsicamente lo que
hace es intercalando un step en cada direccin para llegar al punto. El
problema radica cuando no hay que dar la misma cantidad de steps en X que en Y
o viceversa. Esto se lo soluciona con un Slope, que controla cuando el motor
que debe realizar menos pasos le toca hacer un paso (no voy a entrar en
detalles, miren algoritmo o pregunten me si quieren saber mas).
Luego para la comunicacin entre el Arduino y la PC utilizo el puerto Serial.
La librera Serial de arduino y la librera RXTXcomm de java. Podra
comentarles como es el protocolo, pero los que no entienden nada no entendern

nada y los allegados al tema pueden mirar el cdigo

Luego de todo esto el Arduino es capas de interpretar coordenadas en milimetros

y traducirlas a pasos para los motores. Y, ademas, puede recibir las mismas por
comunicacion Serial. Ahora toca hacer una buena app en la PC que le envie las
Coordenadas.

La misma esta desarrollada en java, utilizando las librerias RXTXcomm


(comunicacion seral), batik ( SVG handler), forms ( para interfaz grafica). La
aplicacion Host puede levantar un archivo .SVG (creado en inkscape, por
ejemplo) y cargar las coordenadas para enviarlas al aruino, o puede cargar las
coordenadas manualmente. Hay que aclarar que el parser SVG -> coordenadas no lo
implemente yo.

Bueno, ya les comente a grandes rasgos todo, ahora paso a mostrarles imgenes

de dibujos y videos
PUBLICIDAD

inRead
inRead invented by Teads
inRead

link:

https://www.youtube.com/watch?v=h3npSM-KHdw&feature=youtu.be

Certificada... ( me dio paja cambiar el papel y dibujar la T! con el plotter


ajaj ).

No hice mas largo el post, porque no quiero aburrir con los detalles, pero

aquellos interesados en el tema no duden en escribir


haya gustado, abrazo.

. Espero les

Codigos Fuente:
https://www.mediafire. com/?oezbhmhoid3yow9

Das könnte Ihnen auch gefallen