Forum: Mikrocontroller und Digitale Elektronik Motoransteuerung HPGL vom PC


von Matthias (Gast)


Lesenswert?

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

von 3355 (Gast)


Lesenswert?

Naja. Die Schritmotoren spannen ein Koordinatensystem auf. Jetzt muss 
man nur noch die relativen Schritte zaehlen.

von Matthias (Gast)


Lesenswert?

Yo is schon klar, aber die Frage war ja ob jemand eine hpgl 
implementierung kennt, oder ein Projekt, dass sich damit beschäftigt 
hat. (Für ATMEL uC)

von Alter Mann (Gast)


Lesenswert?

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

von 3355 (Gast)


Lesenswert?

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.htm
http://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.

von Frank (Gast)


Lesenswert?

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

von chris (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Jochen M. (taschenbuch)


Lesenswert?

@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

von woodym (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.