Grafik mit AVR Drucken

OP #233083
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
Gast #233085
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...)
Persönliche Seite #233086
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 ...
OP #233087
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
Gast #233089
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...)
Persönliche Seite #233091
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?
OP #233092
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
Persönliche Seite #233093
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 ...").
Gast #233094
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.
Gast #233095
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.
OP #233096
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
Gast #233097
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
Gast #233098
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 :-)
Gast #233099
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren