spustlik / plotr

DYI plotter, HPGL, arduino
34 stars 7 forks source link

textfile #1

Closed willpeixoto closed 9 years ago

willpeixoto commented 10 years ago

Hello Sputlik My name is Willian and i want to understand better your aplication.. and I want to start with some question.. how can i transform a hpgl to txt file ?

spustlik commented 10 years ago

Hi, HPGL is in fact text file with special instructions separted by semicolons. Instructions comes from abbreviations of english words, so PU means pen up, PD pen down, and so on. plotr project implements only several instructions. For more information see http://en.wikipedia.org/wiki/HPGL, or continue to ask.

htarahs commented 9 years ago

hello sir we have one xy plotter with two stepper motors and we are using the hpgl code which was available in this site.We are using L298N driver to run the motors but it is no working please suggest me which driver we should use

spustlik commented 9 years ago

Hello,

sorry but I am not expert in hardware, but in software.

Maybe this schema of old-fashioned motor driver for my plotter will help

http://www.atari8.cz/calp/data/man_minig/index.php?c=21

My software is sending order of binary numbers to output pins of arduino, as described here:

http://www.atari8.cz/calp/data/man_minig/index.php?c=13

in manual, they say, that "electronic is decoding this ordered numbers to sequence of pulses to step-motors inputs (converted by transistors to 24V).

But there are many manuals on internet how to use step motor with arduino, and it is very simple to modify my code to use completely different hardware and to change how step-mottors are driven.

htarahs commented 9 years ago

sir we have two stepper motors and one solenoid switch for pen up and pen down operation. can you please send keyboard controlled arduino code for controlling motors and pen.It means it should draw circle, triangle etc..

htarahs commented 9 years ago

hello sir i have downloaded the plotter code here and the part of the code i am not getting that is

void sendXY(int px, int py) { px = -px; py = -py; //DDRD = pins 0-7 (D0-D7) //76543210 //xxx124xx Y //124xxxxx X int state = DDRD & B00000011; //int bx = px & B111; int bx = ((px & B001)<<2) | (px&B010) | ((px&B100)>>2); //int by = py & B111; int by = ((py & B001)<<2) | (py&B010) | ((py&B100)>>2); DDRD = state | (bx<<5) | (by<<2); //Serial.println(DDRD, BIN); delay(3); } could you explain please

spustlik commented 9 years ago

well, these are two core functions together with MOVETO. MOVETO is interpolating pen position in line-drawing fashion and sending current position to sendXY, where x or y position is changing with step 1 (accumulating error and doing some geometrics magic). sendXY instructing plotter to increment x and y counter and sending 3-bit numbers binary encoded into one byte sent in one instruction (DDRD=xxxx)