Forum: Mikrocontroller und Digitale Elektronik Grafik mit AVR Drucken


von Marc G. (magu)


Lesenswert?

Hallo!

Ich möchte einen Drucker mit einem AVR ansteuern.
Er soll eine Kombination von Text und Grafik ausdrucken.
Teile der Grafik befinden sich in einem Array, andere Teile, wie ein
Marker müsste ich aus anderen Quellen holen.

Kann mir jemand Informationen grundsätzlicher Art geben, oder
brauchbare Quellen nennen, wie man eine Grafik an den Drucker
übermittelt?

magu

von Baku (Gast)


Lesenswert?

Was für einen Drucker hast du denn?
Welche Schnittstelle?

Müsste man schon wissen...

Gruss,
Baku

von Rahul (Gast)


Lesenswert?

Verabschiede dich auf von USB. Da viel zu kompliziert. (Ausser wenn du
Informatik studiert hast etc...)

Dann gibt es ESC-Sequenzen, um die einzelnen "Nadeln" eines Druckers
anzusprechen.
Epson hat das ESC/P-Protkoll, HP das PCL(?). Dann gibt(gab) es noch
Postscript-kompatible Drucker (NEC).

Ich vermute, dass moderne Drucker sowas noch unterstützen, kann es aber
nicht zweifelsfrei sagen, da inzwischen viel über die Treiber auf der
PC-Seite gemacht wird (nicht sogar alles?).

Du wirst eine gewisse Menge Speicher brauchen, um die Seite schon im
AVR zusammenzubauen. (Postscript hat schon Formen wie Kreise und
Rechtecke im Sprachumfang...)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das hängt vom Drucker ab.

Ganz früher, so etwa in der Steinzeit, verwendete man Nadeldrucker mit
9 Nadeln. Die gehorchten oft einem "ESC/P" genannten Pseudostandard
der Firma Epson. Oder einem anderen, "Proprinter" genannten
Pseudostandard der Firma IBM. Als die Drucker mehr Nadeln bekamen,
wurde "ESC/P" zu "ESC/P2", und ein weiterer Pseudostandard namens
"NEC P6" kam auf.

Dann gab es die ersten Laser- und Tintenstrahldrucker von HP, die mit
einer im Prinzip noch heute aktuellen Druckersteuersprache namens
"PCL" angesprochen wurden. Teurere Laserdrucker gehorch(t)en hingegen
"Postscript" von Adobe.

Mittlerweile ist es so, daß Drucker entweder PCL- oder
Postscriptdrucker sind oder aber, daß ihre Ansteuerung mehr oder
weniger vollkommen undokumentiert ist ...

von Marc G. (magu)


Lesenswert?

Hallo!

@baku

Der Drucker soll  über den LPT angesteuert werden.
Das Problem ist, dass die "Schnittstelle" recht universell sein muss,
da wir in einem Bauprojekt mehrere davon bauen wollen.
(Bei Agilent-Oszis kann man in der Regel HP oder Epson anklicken.)

magu

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Na, dann wirst Du halt den kleinsten gemeinsamen Nenner der
verschiedenen "ESC/P"-Interpretationen und der verschiedenen
PCL-Ausführungen herausfinden müssen ...

kein einfaches Unterfangen, vor allem nicht auf so etwas
speicherschwachem wie einem AVR.

Agilent-Oszilloskope haben geringfügig großzügiger ausgestattete
Rechentechnik eingebaut ...

von Baku (Gast)


Lesenswert?

Oha...
Wie Rufus und Rahul schon sagten: Das ist nicht trivial und hängt sehr
vom Drucker ab, und die einfachen Protokolle werden wahrscheinlich von
modernen Druckern (schon garnicht von billigen Tintenpissern 'nur für
Windows', da macht die meiste Arbeit der PC) auch nicht mehr
unterstützt. Viele können noch einen einfachen ASCII-Mode, aber
spätestens bei Grafik wirds haarig.
Versuch doch mal, die genannten Protokolle im Netz zu finden,
vielleicht hilft das weiter, um dir eine Vorstellung zu machen, was man
da treiben muss.
Meine persönliche Erfahrung damit ist so ca. 100 Jahre alt, als man die
9 Nadeln noch einzeln mit Dampf aufs Papier schlug, das war Epson (gab
kaum andere...)

von Rahul (Gast)


Lesenswert?

ich hab hier noch nen Epson FX-80+ rumstehen...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Steinzeit, ich sag's ja.
Hab' im Büro auch noch Manuals von 'nem Epson FX80 und MX80
'rumliegen. Und natürlich vom -damals- genialen P6. Sammeln Staub. Wie
die zugehörigen im Geräteschrottkeller liegenden Drucker(leichen).

IMHO sinnvoller dürfte die Erzeugung von Graphikdateien in einem
irgendwie standardisierten einfachen Bitmap-Format und deren
Speicherung auf einem Datenträger sein.
Vorzug eines solchen Verfahrens ist, daß die erzeugten Graphiken auch
leicht in Dokumente integriert werden können; die Variante "aus
Endlospapier ausschneiden und mit Klebstoff einfügen" ist zwar der
Prototyp des "Cut&Paste", aber vielleicht doch a weng in die Jahre
gekommen, gell?

von Marc G. (magu)


Lesenswert?

@ Rufus

Die Erzeugung von Graphikdateien wäre natürlich noch eine bessere
Lösung. Leider gibt es da aber auch einige Probleme, (Fat
schreiben...)
Die einfachste Möglichkeit, wäre die Übertragung per RS232 in den PC
und eine Auswertung mittels eines kleinen Programmes.

magu

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Naja, Libraries zum Ansteuern von Speicherkarten (SD/MMC) und auch
Dateisystemtreiber (FAT) für AVR sind hier in der Codesammlung zu
finden; das sollte kein unlösbares Problem sein.

Die Übertragung per RS232 in den PC setzt wiederum Software auf dem PC
oder recht umständliche Bedienung voraus ("Starten Sie Hyperterm,
konfigurieren Sie die Schnittstelle mit folgenden Parametern ...").

von Baku (Gast)


Lesenswert?

Ähh.... JA!
Wenn du sowieso einen PC daneben hast oder die auszugebenden Daten
solange zwischenspeichern kannst, dann wäre das DIE Lösung, es sei denn
dein sportlicher Ehrgeiz lässt das nicht zu.

von Baku (Gast)


Lesenswert?

@Rufus:
Er hat ja immer noch nicht genau gesagt, was er nun eigentlich machen
will...
Wenn der PC sowieso daneben steht und er für das Ausdrucken/Anzeigen
ein eigenen Programm schreiben will/muss, dann wäre der Umweg über eine
Speicherkarte irgendwie... ein Umweg.

von Marc G. (magu)


Lesenswert?

Ich müsste die Daten abspeichern, da kein PC da ist.
Weiterhin ist zu bedenken, dass nicht mehr jeder RS232 am PC / Notebook
hat.

Da mir ein reiner Ausdruck genügen würde, kam mir zuerst die Idee mit
einem Drucker, zumal ich recht schnell in der Lage war Text zu drucken.
Nur die Grafik macht probleme, da kaum Informationen zu finden sind.

Ich werde wohl auf die RS232 Variante zurückgreifen müssen, da die
Realisierung einer "universellen" LPT Schnittstelle recht
problematisch ist.

magu

von Hartmut Gröger (Gast)


Lesenswert?

Hi

Falls du nicht unbedingt A4 Format brauchst besteht noch die
Möglichkeit ein Printermodul zu verwenden. Die Papierbreite ist aber
nur ca. 60mm. Die Ansteuerung mit Atmels ist eigentlich relativ
Problemlos.

MfG HG

von Baku (Gast)


Lesenswert?

Ja, dem Manne könnte besser geholfen werden, wenn er sagte, worum es
denn eigentlich geht...
Kleine Klorollendrucker sind recht einfach anzusteuern, auch mit
Grafik, vor allem braucht man nicht verschiedene Protokolle zu
implementieren, sondern nur das, welches zum Drucker gehört. Das habe
ich schon damals in der Steinzeit mit einem 6809 @1MHz gemacht, als das
RAM noch richtig teuer war :-)

von mthomas (Gast)


Lesenswert?

Viele Laborgeraete mit Druckeranschluss bieten nur PCL und ESC/P als
Einstellmoeglichkeit, selten kann man noch "Escape-Sequenzen"
einstellen. Scheinbar ist dies fuer die Hesteller "universell" genug.
Hier ("Umweltlabor") haengen meist Epson-Nadeldrucker oder
HP-Tintenstrahldrucker an den Geraeten, die erwartungsgemaess gut
funktionieren, da es Geraete von den Machern der
Ansteuersprachendefinition sind. Guenstige Drucker mit "Centronics"-
und/oder RS232-Schnittstelle verschwinden leider immer mehr vom Markt.
Aber ein alter Epson-Nadeldrucker ist fast immer irgendwo aufzutreiben
(neue sind relativ teuer). Einen AVR mit USB-Hostfunktion fuer
USB-Drucker auszustatten, duerfte nur mit Zusatzhardware funktionieren
- zu viel Aufwand.
Sowohl ESC/P als auch PCL bieten einen Zeilenmodus. Mit etwas Rechnerei
laesst sich damit auch bei wenig RAM-Resourcen Grafik zu Papier bringen.
ESC/P-Dokumentation findet man auf den Web-Seiten von Epson und auch
z.B. bei Brother (deren etwas besser ausgestatteten Laserdrucker bieten
auch eine sogenannte ESC/P- bzw. Epson-Emulation). PCL-Dokumentation
findet sich z.B. bei HP aber auch bei vielen anderen
Laserdruckerherstellern.

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.