!!! Mediawiki has been upgraded !!!
Slack integration has been disabled for now due to an incompatibility.
If you want to testdrive the new skin (Tweeki), make sure your language settings are set to 'en - English' in your preferences!

Harry Plotter

From Brixel - Hackerspace Hasselt
Jump to: navigation, search


Project: Harry Plotter
350x550px
Description: Harry is a HP7475 penplotter
Status: In progress
Participants: Kefcom, Jrial, Woutervddn
Edit tags: Harry Plotter


Language/Taal: English/nederlands

English text

What is it?

The HP7475 is a pen plotter, introduced in 1983 at the price of $1895.
Now, we learn it's workings and try to use it for other cool stuff then just plot out boring old pie charts.

How does it work?

The plotter holds 6 different pens (or better: markers) in a pen-carrousel, when instructed, it turns the carrousel until the selected pen is in reach, then 'grabs' the pen.
For communication it takes HPGL commands directly via a serial interface (usb-serial cable is attached to ours).

Example HPGL code:
IN; SP1; PU400,100; PD800,100; PU;
This will:

  • (IN;) initialize the plotter,
  • (SP1;) select pen 1,
  • (PU400,100) moves the pen to coordinate 400,100 with the (PU) pen up,
  • (PD800,100;) then moves the pen to coordinate 800,100 with the (PD) Pen down.
  • (PU;) Then puts the pen up again.


Interesting links

The complete HPGL reference: http://www.hpmuseum.net/document.php?catfile=213
Original documentation: http://www.hpmuseum.net/document.php?hwfile=768


interfacing the plotter

Current settings are set to serial at a 9600 baud rate, A4 paper size. You can change this using the dip switches at the back. (please don't).
you can open a serial connection, and start feeding commands into it, do note that the internal buffer of the plotter is rather small, so don't feed it too much (1 command per 40ms seems to be working perfect).
If the buffer is full, the plotter will start drawing lines all over the place, basically ruining your image :D.

Wouter has provided a bash script for configuring the serial port, formatting the file, and sending the commands via bash on Linux:
Usage:
./writeToPlotter.sh /dev/ttyUSB0 ~/Desktop/drawing.hpgl
Code:

#!/bin/bash
interface=$1
file=$2
stty 9600 parodd parenb ixon ixoff -F $interface
#One Command Per Line
echo "$(cat $file | sed 's/;/;\n/g')" > $file
cat $file | while read line
do
   echo $line
   echo $line > $interface
   sleep 0.100
done


For windows Kevin has written a program to open and send large hpgl files. Download [Here], or look at the code on github [here]




























Nederlandse Text

Wat is het?

De HP7475 is een pen plotter, uitgebracht in 1983 met een toenmalig prijskaartje van $1895.
We zijn het toestel aan het bestuderen, en zoeken uti of we het wat coolere dingen kunnen laten doen dan saaie grafiekjes printen.

Hoe werkt het?

De plotter heeft 6 verschillende pennen (of beter: stiften) in een pennenhouder (carrousel).
Als de plotter het SP commando binnenkrijgt, draait de carrousel tot de juiste pen binnen het bereik van de houder is, waarna deze de pen grijpt.

Voor de communicatie maakt de plotter gebruik van het HPGL protocol, deze instructies worden gestuurd over een seriële interface (via een USB naar Serieel kabel in ons geval).

Voorbeeld HPGL code:
IN; SP1; PU400,100; PD800,100; PU;
Deze code zal:

  • (IN;) De plotter initialiseren,
  • (SP1;) Pen 1 selecteren,
  • (PU400,100) De pen verplaatsen naar coördinaten 400,100 met de (PU) 'pen up', pen omhoog,
  • (PD800,100;) De pen verplaatsen naar coördinaten 800,100 met de (PD) 'Pen down', pen omlaag.
  • (PU;) 'Pen Up', pen opnieuw omhoog.


Interessante links

The complete HPGL reference: http://www.hpmuseum.net/document.php?catfile=213
Original documentation: http://www.hpmuseum.net/document.php?hwfile=768


De plotter aansturen

De plotter is momenteel ingesteld op een seriële verbinding met een baudrate van 9600, A4 papierformaat. Deze instellingen kunnen gewijzigd worden met de DIP schakelaars aan de achterkant van het toestel (gelieve deze instellingen niet te wijzigen!).
Je kan gewoon via je pc een seriële verbinding maken, en rechtstreeks commando's beginnen invoeren. Let wel op dat de interne buffercapaciteit van de plotter vrij klein is, voer dus niet te veel commando's op korte tijd in (1 commando per 40 milliseconden blijkt een geode tijdspanne).
Als de buffer vol is, zal de plotter lijnen beginnen trekken over de hele pagina, waardoor de tekening om zeep is.

Wouter heeft een bash script geschreven om op een Linux systeem de seriële poort te configureren, het bestand te openen en door te sturen.
Gebruik van het script:
./writeToPlotter.sh /dev/ttyUSB0 ~/Desktop/drawing.hpgl
Code:

#!/bin/bash
interface=$1
file=$2
stty 9600 parodd parenb ixon ixoff -F $interface
#One Command Per Line
echo "$(cat $file | sed 's/;/;\n/g')" > $file
cat $file | while read line
do
   echo $line
   echo $line > $interface
   sleep 0.100
done


Kevin heeft een programma geschreven voor windows besturingssystemen die grote hpgl bestanden naar de plotter stuurt. Download [Hier] of bekijk de code op [Github].