mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Grafik mit AVR Drucken


Autor: Marc Guthörl (magu)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Baku (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für einen Drucker hast du denn?
Welche Schnittstelle?

Müsste man schon wissen...

Gruss,
Baku

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Marc Guthörl (magu)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Baku (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...)

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab hier noch nen Epson FX-80+ rumstehen...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Marc Guthörl (magu)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ...").

Autor: Baku (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Baku (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marc Guthörl (magu)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hartmut Gröger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Baku (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.