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
Was für einen Drucker hast du denn? Welche Schnittstelle? Müsste man schon wissen... Gruss, Baku
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...)
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 ...
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
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 ...
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...)
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?
@ 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
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 ...").
Ä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.
@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.
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
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
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 :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.