Hi,
ich habe eine Platine mit zwei Motortreiberstufen (L297, L298) aufgebaut
und möchte nun über den PC via RS232 HPGL Dateien an die Schaltung
senden und diese soll dann die zwei Motoren für x und y Richtung
bewegen.
Ich wollte auf PC Seite einen Druckertreiber von der Firma Roland
verwenden. Die Daten habe ich mir mal per Datei Plot und per
SerialWatcher angesehen und er setzt die Daten in gutes HPGL um.
Nun auch auf uC Seite habe ich bereits entwas programmiert. Nun würde
ich gerne wissen, ob jemand eine hpgl implementierung kennt, oder ein
Projekt, dass sich damit beschäftigt hat. Am besten wäre wenn jemand ein
Projekt mit Schrittmotoransteuerung anhand von PC gesendeten HPGL Daten
kennt.
Ich danke euch vielmals im Voraus.
Matthias
Hallo,
an einer HPGL-Implemnentierung für Mikrocontroller wäre ich auch noch
interesiert, das würde zwar nicht den Bau aber zumindest die
Softwareseite meiner Fräse erheblich vereinfachen, da es unter Windoof
anscheinend nicht all zu viele freie Programme zur Ansteuerung einer
solchen gibt und ich mich mit Linux überhaupt nicht auskenne.
Florian
Soweit ich mich recht erinnere ist HPGFL eine Zeichnungs Sprache, heisst
Stift 1,,N, resp Farbe 1..N, und dann gibt es Commands wie StiftRunter
fahrezu(), StiftRauf, aber Aperturen gibt es keine, heisst der Stift hat
keine Breite. Ah, ja, Kreise gibt es noch und Boegen, Text, Buchstaben,
TextZahlen. Und das war's dann etwa.
Nicht ganz richtig : Google nach "HPGL Command set"
http://www.isoplotec.co.jp/HPGL/eHPGL.htmhttp://www.piclist.com/techref/language/hpgl.htm
wenn man das Ganze will, ist nicht wirklich schwierig, passt aber nicht
mehr in einen AVR. Ein Subset sollte eine kleine Uebung sein.
HPGL ist ziemlich simpel, einen entsprechenden Interpreter kann man zur
Not selber schreiben. Die einzelnen Befehle bestehen immer aus einem
Kommando und keinem oder ein oder zwei Parameter (meist Koordinaten).
Z.B.
PD pen down
PU pen up
PA xxx,yyy position absolute xxx,yyy
PR xxx,yyy position relative
usw.
Frank
Hallo, ich habe einen kleinen Interpreter für
HPGL - Ecellon - Ecellon2
für den PC, und dem Conrad Motortreiber.
Sehr kompakter code.
Der Motortreiber vom C hat leider den Nachteil, daß er im Prinzip
ULN2003 verwendet, mit Addressdekodierung und ev. latches.
Das heisst, ein Motor kann nur zur gleichen Zeit angesteuert werden.
Wenn man den bresenham algorithmus dazumacht, kann man das ganze
auch in eine mcu reinnehmen.
PS. der Code ist nicht der Orginalcode, sondern ein bisschen
modifiziert.
@Matthias,
Grundsätzlich ist das natürlich denkbar.
Falls Du aber eine Fräse bauen willst (geht aus Deiner Frage nicht so
genau hervor) musst Du Dich noch etwas mehr mit der Gesamtproblematik
befassen, ich persönlich habe sowas vor einiger Zeit gemacht.
Es entsteht nämlich durchaus eine gewisse Rechnerei, die Du auch in
einem AVR unterbringen müsstest. HPGL ist simpel, kann aber nur 2D. Um
den HPGL-Linienzügen dann noch Tiefenangaben (zum fräsen/bohren)
zuzuordnen, musst Du wenigstens noch einen Editor zwischen
Zeichenprogramm und Fräse schalten. Ich habe mir das seinerzeit komplett
selbst als Windows-App. geschrieben, die dann auch noch solche Dinge wie
Zustellung und Radiuskorrektur machen kann. Denn nicht vergessen:
Beim Fräsen kannst Du nicht immer jede Linie in einem Zug erledigen,
sondern je nach Material musst Du vielleicht 5 mal die Linie abfahren
und immer ein Stück tiefer gehen. Zudem muss der Radius des Fräsers bei
der Linienkontur berücksichtigt werden. Es ensteht also NACH dem
HPGL-Erstellen noch eine ganze Menge an Overheaddaten, die irgendwo
erfasst/verwaltet werden müssen.
HPGP Werte sind in Plottereinheiten angegeben, das sind fast immer
1016 Schritte je Zoll.
Das klingt erstmal krank, hat aber einen Grund, denn das sind genau
40 Schritte je Millimeter. (1016/25.4) Genauer geht HPGL also erstmal
nicht.
Nun musst Du die Anzahl der Schritte der Steppermotoren und dann noch
die Steigungen der Spindeln einfliessen lassen.
Und zum Schluss benötigst Du eine sog. Bahnsteuerung, d.h. Du kannst
nach Bresenham die Steigungspunkte einer Linie berechnen, die Motoren
sollen aber ZUGLEICH und nicht nacheinander gesteuert werden. Nur so
entsteht eine saubere Linie und keine Treppe.
Jochen Müller
Hallo,
diesem problem habe ich mich angenommen und sowas realisiert. es ist
noch nicht ganz fertig, kann aber unter http://www.woodym.de begutachtet
werden. Zum Einen ist hier eine Mechanik beschrieben die auch bezahlbar
ist, zum Anderen eine Software mit der die Korrekturen für HPGL für eine
Fräsmaschine gemacht werden. Die Windows-Software kann jedoch keine
Radius-Korrektur und keine Zustellung berücksichtigt. Die Zustellung
kann man über die Angabe der Plotterstifte realsieren. Zwischen der
Windows-software die nur zur Aufbereitung der Daten verwendet wird und
der Motorsteuerung gibt es noch eine kleine Steuerung die die ganze
Mechanik ansteuert (mit AVR und Farb-LCD). Kommen die Daten bereits
richtig aus dem CAD-Programm können die Daten direkt über RS232 an die
Steuerung gesendet werden. Leider komme ich bei der Steurung nicht so
zügig voran wie ich es erhoffe. Die Problematik ist dabei kein
Timing-Problem oder Steuerungs-Problem. Viel mehr die Menüführung und
Einstellung (Frästiefen pro Stift, Fräsgeschwindigkeit pro Stift usw.).
Hier habe ich einfach noch keine Ideen gehabt.
Übrigens ist die Steuerung und die Software bereits für 4 Achsen
vorgesehen. Es kann auch alternativ eine ganz simple Abart von HPGL
verwendet werden (PA x,y,z,a,v;) die auch 2,5D ermöglicht. Die Steuerung
hat einen RS232->Buffer und einen Fräs-Buffer damit die Übertragung
gleichzeitig zum Fräsen möglich ist. Auf meiner Wunschliste ist nach dem
fertigstellen der Menüstruktur eigentlich nur noch eine Beschleunigungs
und Bremsrampe (die ist aber bereits in der Software berücksichtigt).
Aufgrund der Geschwindigkeit die die Fräsmaschine ohne Brems- und
Bescchleunigungsrampe hat (ca. 100 mm/sekunde) habe ich das nach hinten
gestellt.