Beschimpfungsdrucker nachbauen?

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Fritzler »

berlinerbaer hat geschrieben: So 24. Mai 2020, 19:42 Diese STM32 blue pill boards sind auch ganz lustig
Waren!
Die günstige Quelle der STM32F103 ist wohl ausgetrocknet und jetzt werden immer mehr bis fast nurnoch Fakes oder Nachbauten verlötet.
Nur sind die Nachbauten nicht immer zu 100% STM32F103 kompatibel.
CH-Bastler
Beiträge: 275
Registriert: Sa 20. Jun 2015, 22:02

Re: Beschimpfungsdrucker nachbauen?

Beitrag von CH-Bastler »

Falls der Drucker wirklich echtes RS232 ist, brauchst du wirklich einen Levelshifter wie die gezeigte Platine oder ein MAX232 IC. Die Signale von RS3232 sind +- 12V und TTL serial wie bei Arduino nur 0V und 5V.
Benutzeravatar
Chefbastler
Beiträge: 2665
Registriert: Mo 12. Aug 2013, 20:21
Wohnort: Südbayern

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Chefbastler »

Fritzler hat geschrieben: So 24. Mai 2020, 20:07
berlinerbaer hat geschrieben: So 24. Mai 2020, 19:42 Diese STM32 blue pill boards sind auch ganz lustig
Waren!
Die günstige Quelle der STM32F103 ist wohl ausgetrocknet und jetzt werden immer mehr bis fast nurnoch Fakes oder Nachbauten verlötet.
Nur sind die Nachbauten nicht immer zu 100% STM32F103 kompatibel.
https://www.richis-lab.de/STM32.htm
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Fritzler »

Chefbastler hat geschrieben: So 24. Mai 2020, 20:14 https://www.richis-lab.de/STM32.htm
Genau DER!
Der hat dann von Leuten ausm Trollforum die ganzen Nachbauten bekommen und mal aufgemacht.
Name vergessen
Beiträge: 3261
Registriert: Mo 12. Aug 2013, 19:47

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Name vergessen »

CH-Bastler hat geschrieben: So 24. Mai 2020, 20:12 Falls der Drucker wirklich echtes RS232 ist, brauchst du wirklich einen Levelshifter wie die gezeigte Platine oder ein MAX232 IC. Die Signale von RS3232 sind +- 12V und TTL serial wie bei Arduino nur 0V und 5V.
Das braucht man aber nicht zu vermuten oder, schlimmer noch, irgendwelchen windigen Verkäuferangaben zu vertrauen, sowas kann man mal eben nachmessen! :) RS232 ist auch einigermaßen kurzschlußfest, TTL eher nicht so, also nicht abrutschen! ;)

Wenn der Drucker nur TTL-RS232 spricht, und Du mit der Wandlerplatine "auf Nummer sicher" da rangehst, frittierst Du damit den Drucker, was ja auch schade wäre...
Benutzeravatar
Sven
Beiträge: 4421
Registriert: Fr 28. Jun 2013, 12:52
Wohnort: Sechsundzwanzigdreisechzehn

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Sven »

Ihr macht euch schon wieder Gedanken, wo man sich keine machen muss. ;)
Das isn ganz normaler Drucker, der normalerweise an den seriellen Port eines Rechners angeschlossen wird. Der hat einen neunpoligen D-SUB Anschluss, wenn der das serielle Interface hat.
Ich hab schon öfter mit Kassendrucker zu tun gehabt. Das ist alles idiotensichere Technik.
In den Spezifikationen des Herstellers ist die Schnittstelle mit RS232-C angegeben. Also stinknormaler serieller Port.

We gesagt, anstatt einen Wandler wie den MAX232 zu verbauen könnte man auch mal in den Drucker reinlinsen ob da nicht schon ein solcher Chip verbaut ist.
Den umgeht man dann halt und knotet sich an den Ausgangs des Wandlers an die TX und RX Leitungen. Da muss man dann wirklich vorher messen, mit welchen Pegeln der Drucker intern arbeitet um nichts zu grillen.
Anse
Beiträge: 2278
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl (Baden)

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Anse »

@Sven, danke für die Korrektur bzgl. dem Arduino Bootloader.
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Hallo zusammen,

ich wollte euch ein kleines Update geben, was ich und meine (noch alle 3) Arduinos so treiben.

Gestern Abend habe ich noch voller Hoffnung im örtlichen Supermarkt eine Rolle Thermopapier besorgt,
bzw. netterweise geschenkt bekommen :-).

Leider ist das Hermes Tracking nicht verfügbar und ich hoffte einfach das der Drucker noch geliefert wird,
dass ganze ist nicht passiert.

So habe ich heute mal angefangen mit dem Arduino rumzuspielen, sagen wir mal so das blinken habe ich geblickt.

Soweit so gut, der Nano ist etwas "klein" und so ist es gar nicht so einfach mit dem Steckbrett was zu reißen,
aber Kabel konnte ich auftreiben, ich denke ihr kennt das.

Mal schauen, wann der Drucker eintrifft und ob ich irgendwann ein bedrucktes Blatt Papier rausbekomme :-).


Habt ihr noch Tipps in welche Richtung ich mich jetzt schon mal (zumindest versuchen) aufschlauen kann,
was ich für mein Vorhaben mehr oder weniger sicher benötige?

Grüßle Pascal

€dit:
Ich bin gerade am überlegen ob ich mir noch ein Starterset bzw. das Zubehör kaufen soll, ich denke so findet man anhand von Praxis Beispielen
am schnellsten in die für mich abstrakte Programmierwelt?
Könnt ihr da was empfehlen?
Benutzeravatar
Zummmsel
Beiträge: 650
Registriert: Di 26. Mai 2020, 00:23
Wohnort: Südliches Tor zur Fränkischen
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Zummmsel »

Ich kann eine Schmuddelwortliste beisteuern mit 6728 Einträgen :mrgreen:
Dateianhänge
Schmuddel.txt
(95.7 KiB) 111-mal heruntergeladen
xanakind
Beiträge: 12538
Registriert: So 11. Aug 2013, 21:55

Re: Beschimpfungsdrucker nachbauen?

Beitrag von xanakind »

Paketsendungen dauern aktuell wegen dem Corona länger.
Egal ob DHL, Herpes, DPD.... Die Jungs haben momentan alle sehr viel zu tun.
irgendwas ausgedrucktes wirst du sicherlich aus dem Drucker bekommen.
Er soll ja aber das drucken, was du möchtest--> Beschimpfungen :D
Zum Rumspielen mit dem Arduino:
Erstmal mit den einfachen Dingen anfangen.
Blink LED
Potis auslesen und damit eine LED Dimmen
Timerfunktionen testen (Taste drücken und LED leuchtet 10 Sekunden nach)
Ich habe z.B. aus Spaß mal einen Start-Sound programmiert.
Schaltet man das Gerät ein, wird als erstes ein einfacher kurzer Start-Ton abgespielt.
Danach läuft ganz normal das Programm.
Prinzipiell kannst du ja aber dein Projekt schonmal programmieren und im Serial Monitor testen.
Knopf Drücken und es muss im Serial Monitor die Beschimpfung erscheinen.
Das kann man ja alles schonmal "offline" und ohne Drucker testen.
Zuletzt geändert von xanakind am So 31. Mai 2020, 19:03, insgesamt 1-mal geändert.
xanakind
Beiträge: 12538
Registriert: So 11. Aug 2013, 21:55

Re: Beschimpfungsdrucker nachbauen?

Beitrag von xanakind »

Zummmsel hat geschrieben: So 31. Mai 2020, 18:15 Ich kann eine Schmuddelwortliste beisteuern mit 6728 Einträgen :mrgreen:
Sehr gut, gleich mal gesichert.
Danke! :)
Das ist wunderbar mit den Zugzielanzeigen kompatibel:
beschimpfungen.jpg
Ich glaube, ich werde mal den Kot der Anzeige erweitern..... :lol:
MSG
Beiträge: 2182
Registriert: Fr 9. Nov 2018, 23:24
Wohnort: Nähe Dieburg

Re: Beschimpfungsdrucker nachbauen?

Beitrag von MSG »

@xanakind So was hätte ich gerne mal für die Heckscheibe am Auto 😂 😂 😂 😂
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Fritzler »

Sowas brauch man inner Frontscheibe für die Kloppis die einen mit Vollgas überholen wenn man grade ausrollt, weil die Ampel in Sichtweite grade rot wurde. :mrgreen:
Benutzeravatar
Harley
Beiträge: 1160
Registriert: So 11. Aug 2013, 21:16
Wohnort: Regensburg

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Harley »

Die Beschimpfungen soll ja auch online sein.
Wo findet man die? :?:
Benutzeravatar
Harley
Beiträge: 1160
Registriert: So 11. Aug 2013, 21:16
Wohnort: Regensburg

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Harley »

@hansele: besorg Dir die CT Make Arduino Spezial (2/2017) .
Da wird alles erklärt ...
Benutzeravatar
Sven
Beiträge: 4421
Registriert: Fr 28. Jun 2013, 12:52
Wohnort: Sechsundzwanzigdreisechzehn

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Sven »

Hansele hat geschrieben: So 31. Mai 2020, 18:07 Ich bin gerade am überlegen ob ich mir noch ein Starterset bzw. das Zubehör kaufen soll, ich denke so findet man anhand von Praxis Beispielen
am schnellsten in die für mich abstrakte Programmierwelt?
Könnt ihr da was empfehlen?
Diese Arduino Zubehör Starterkits sind zwar ganz nett aber es ist viel Beifang drin, den ich zumindest nicht brauche. Zudem sind die einzelnen Module oft sehr schlecht dokumentiert. Manches davon tut ohne erläuternde Worte gar nichts sinnvolles. Wir hatten das mal in der Firma für Praktikanten und Azubis zum Rumspielen. Da blieb am Ende dann einiges über.
Wenn man selber schon einiges an Elektronikkram im Bestand hat braucht man manches davon auch gar nicht.
Wenn du mehr oder weniger konkrete Ideen hast, was du mit Mikrocontrollern noch so unternehmen willst, dann lohnt es sich eher, gezielt etwas zu kaufen.
Was man immer in ausreichender Menge da haben sollte sind Textdisplays mit HD44780 kompatibler Ansteuerung, Drehencoder mit Taster, Relais + Transistoren zur Ansteuerung und ein paar LEDs. Den Rest dann nach Bedarf,
Temperatursensoren, Luftdrucksensoren, Gyrometer, Gassensoren, RFID Leser oder wonach einem sonst der Sinn steht.
Da hat jeder sicherlich seinen ganz speziellen Bedarf.
Generell mag ich diese fertigen Modulen mit Controller Zubehör sehr gerne. Das ist wunderbar, um mal eben einen Prototypen zusammenzufiedeln. Wenn es dann ans Stromsparen wegen Batteriebetrieb geht oder alles auf eine Platine soll ist das halt wieder ne andere Geschichte.

Was ich empfehlen kann ist eine ausreichende Menge günstiger, brauchbarer 5V Netzteile.

Hast du Themenbereiche, in die du gerne mal einen Controller werfen möchtest?
xanakind
Beiträge: 12538
Registriert: So 11. Aug 2013, 21:55

Re: Beschimpfungsdrucker nachbauen?

Beitrag von xanakind »

MSG hat geschrieben: So 31. Mai 2020, 18:54 @xanakind So was hätte ich gerne mal für die Heckscheibe am Auto 😂 😂 😂 😂
Etwa so?:
https://www.youtube.com/watch?v=0C4pnx8 ... e=youtu.be
:lol:
Ich glaube, ich werde mir da mal eine Funk Fernbedienung für verschiedene Situationen antüddeln.
Taste1: Arschloch hinter mit hat im Autokino das Tagfahrlicht an
Taste2: Heiz-BMW fährt auf 2cm auf
Taste3:Für die Arbeit, Kollegen werden beschimpft
Taste4: Positiver Modus, hier kommt nur Lob, gute Worte oder was zum belustigen
:lol:
Benutzeravatar
Zummmsel
Beiträge: 650
Registriert: Di 26. Mai 2020, 00:23
Wohnort: Südliches Tor zur Fränkischen
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Zummmsel »

Taste 1 und 2 ist bei mir mit 2 rückwärtsgerichteten Arbeitsscheinwerfern (STVZO §52) a 150W belegt .... :mrgreen:
Matt
Beiträge: 6084
Registriert: So 24. Aug 2014, 21:22

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Matt »

xanakind hat geschrieben: So 31. Mai 2020, 18:29
Zummmsel hat geschrieben: So 31. Mai 2020, 18:15 Ich kann eine Schmuddelwortliste beisteuern mit 6728 Einträgen :mrgreen:
Sehr gut, gleich mal gesichert.
Danke! :)
Das ist wunderbar mit den Zugzielanzeigen kompatibel:
beschimpfungen.jpg
Ich glaube, ich werde mal den Kot der Anzeige erweitern..... :lol:
Da macht also meine IBIS-Wandler grosse Sinn: Einfach RS232 Telegram mit 9600 baud schicken, dann schon fangt Display an zu beleidigen :lol:

Irgendwo hier gibt Quellcode und kurze Beschreibung über IBIS Wandler....müsste ich mal suchen.

Nissan von mir hat noch Serie-Auspuff, aber wenn ich auf Ofenrohr umbauen, Fehlzündung reinprogrammieren, zur verschrecken von Moruk-BMW und Drängel-Audi.
Ich will aber keine laute Auto :roll:
MSG
Beiträge: 2182
Registriert: Fr 9. Nov 2018, 23:24
Wohnort: Nähe Dieburg

Re: Beschimpfungsdrucker nachbauen?

Beitrag von MSG »

xanakind hat geschrieben: So 31. Mai 2020, 20:38 Etwa so?
Genau! 😂
- Das Gas ist rechts
- Mittelspurschleiche
- Echt neblig heute
....
;-)
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Harley hat geschrieben: So 31. Mai 2020, 19:40 @hansele: besorg Dir die CT Make Arduino Spezial (2/2017) .
Da wird alles erklärt ...
Danke werde ich mir besorgen, bekommt man ja für ein paar Euro als PDF.


@Sven:
Danke für den Hinweis mit dem Beifang, habe nun mal einen RFID Leser und ein Display bei Amazon geordert.

Meine Ideen mit dem Arduino kreisen im Moment alle um den Drucker, so könnte ich das Ding auch nutzen
um Bons bei Vereinfesten zu drucken, ansonsten vielleicht später mal Projekte für den Nachwuchs.
Da gibts ja tolle Sachen in Richtung Toniebox und natürlich eine Zinkenvorrichtigung die ist aber für mich.

Das steht aber alles in ferner Zukunft, erstmal ein bisschen reinkommen.

@Xana:
Läuft das Display bzw. die Anzeige auch über einen Arduiono?
Falls ja würdest du mal den Quellcode posten?

Grüßle Pascal
xanakind
Beiträge: 12538
Registriert: So 11. Aug 2013, 21:55

Re: Beschimpfungsdrucker nachbauen?

Beitrag von xanakind »

Kann ich gerne machen.
Das ist aber noch lieblos hingeschmiert.
Prinzipiell funktioniert das aber schon soweit, ist ja kein Hexenwerk.

Code: Alles auswählen

const int Zwei = 2;
const int Drei = 3; 
const int Vier = 4;
const int Fuenf = 5;
const int Sechs = 6;
const int Sieben = 7;
const int Acht = 8; 
const int Neun = 9;
const int Zehn = 10;
const int Elf = 11;
const int Zwoelf = 12; 

void setup() {

  pinMode(Zwei, INPUT);
  pinMode(Drei, INPUT);
  pinMode(Vier, INPUT);
  pinMode(Fuenf, INPUT);
  pinMode(Sechs, INPUT);
  pinMode(Sieben, INPUT);
  pinMode(Acht, INPUT);
  pinMode(Neun, INPUT);
  pinMode(Zehn, INPUT);
  pinMode(Elf, INPUT);
  pinMode(Zwoelf, INPUT);
  Serial.begin(9600);
}
void loop() {
{
    // Test, Noch leer
}

if (digitalRead(Zwei))
{
Serial.print("Beschimpfung!");
  Serial.println();     
  }

if (digitalRead(Drei))
{
 Serial.print("Draengler");
  Serial.println();     
 
    }

if (digitalRead(Vier))
{
  Serial.print("Positiver Text");  
  Serial.println();        
  }
 
}
Funktion:Die Ports D2 bis D12 sind alle als Eingänge definiert.
Wird z.B. der Port D2 auf High gezogen, wird der Inhalt über die Serielle Schhnitstelle ausgegeben . In dem Fall also "Beschimpfung!"
Direkt danach wird ein "Enter" gesendet.

Ich muss mal schauen, wir ich am sinnvollsten die Textdatei einbinde......
MSG
Beiträge: 2182
Registriert: Fr 9. Nov 2018, 23:24
Wohnort: Nähe Dieburg

Re: Beschimpfungsdrucker nachbauen?

Beitrag von MSG »

Als ungelernter Hilfsprogrammierer finde ich die Variablenbenamsung grenzwertig.
Ich würde die sinnvoll benennen:

Code: Alles auswählen

const int knopf_1 = 4;
const int knopf_2 = 2;
...

Code: Alles auswählen

void loop() {
  // Test, Noch leer
}

if (digitalRead(Zwei)) {
  Serial.print("Beschimpfung!");
  Serial.println();     
}
Wenn mich nicht alles täuscht wird der letzte Code-Block niemals aufgerufen, da er weder in der setup() noch ind er loop() Funktion ist.

Code: Alles auswählen

if (digitalRead(Drei)) {
 Serial.print("Draengler");
 Serial.println();     
}
Wenn diese und die andere Funktionen, die den Knopf-Zustand auslesen, im Loop durchlaufen werden, wird der Code jedesmal ausgeführt wenn der Knopf noch gedrückt ist. Evtl verlangsamt das die Ausführung. Besser wäre das in der Art

Code: Alles auswählen

const int knopf_1 = 2;
const int knopf_2 = 5;
int letzter_knopf = 0;
....
loop(){
  ...
  teste_knopf_2();
}
...
void teste_knopf_2(void){
  if ( digitalRead(knopf_2)  // Knopf 2 gedrückt
       && ( letzter_knopf != knopf_2 ) // und es ist jetzt ein (anderer) knopf gedrückt als im letzten Durchlauf
     ) {   
    letzter_knopf = knopf_2; // merken für den nächste Schleifendurchlauf
    Serial.print("Draengler");
    Serial.println(); 
  }
}

PS: Ich weiß nicht ob das so beabsichtigt ist, aber hier gibts etwas interessanters, wenn man
myhomearchiv synology me hier noch zwei Punkte einfügen und ein / hinten dran
download hier auch noch ein / dran
Arduino_Kochbuch.pdf dies mit den zwei Zeilen davor zusammenbaut
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Heute ist mein Spielzeug gekommen, in der schönsten Gilbfarbe überhaupt:

Bild

Bild

Leider ohne Netzteil und mit 25 Pins am Druckerkabel:
Bild

Platine des Druckers:
Bild

Baustein wo das 25 Polige Kabel dran kommt:
Bild

Bild


Ein Netzteil war nicht dabei, habe aber noch eins gefunden.
Nun muss ich mal schauen wo der Möller + und - haben will.

An die Experten wonach muss ich nun suchen auf den Platinen?

Grüßle Pascal
Benutzeravatar
Harley
Beiträge: 1160
Registriert: So 11. Aug 2013, 21:16
Wohnort: Regensburg

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Harley »

Auf der Platine steht "parallel interface" drauf.
Da is nix mit serieller Schnittstelle, der will Parallelinterface sehen.
Geht aber genauso. Brauchst halt 10 Ports.
Benutzeravatar
Finger
Administrator
Beiträge: 7392
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Finger »

Hier gibts schonmal ein Handbuch: https://download.epson-biz.com/modules/ ... t=3&pid=22
oder hier: https://www.bartec.de/de/downloads/mess ... Manual.pdf

Zumindest für die Dipschalter. Das netzteil nennt sich EPSON PS-170

Hier drin ist das Pinning der Schnittstelle beschrieben: https://files.support.epson.com/pdf/pos ... g_revb.pdf

Fuck, das ist tatsächlich die Parallelversion. Ist halt etwas mehr Aufwand, geht aber auch. Zum Netzteil hab ich noch nichts gefunden.....
Benutzeravatar
Harley
Beiträge: 1160
Registriert: So 11. Aug 2013, 21:16
Wohnort: Regensburg

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Harley »

Wo kann man denn die Beschimpfungsdatei downloaden?
Benutzeravatar
Zummmsel
Beiträge: 650
Registriert: Di 26. Mai 2020, 00:23
Wohnort: Südliches Tor zur Fränkischen
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Zummmsel »

Schau mal weiter oben, als TXT-Anhang an meinem Beitrag
Benutzeravatar
Finger
Administrator
Beiträge: 7392
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Finger »

Benutzeravatar
Harley
Beiträge: 1160
Registriert: So 11. Aug 2013, 21:16
Wohnort: Regensburg

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Harley »

Genau. Das sind die Richtigen! Danke! :mrgreen:
xanakind
Beiträge: 12538
Registriert: So 11. Aug 2013, 21:55

Re: Beschimpfungsdrucker nachbauen?

Beitrag von xanakind »

Die Pinbelegung des Netzteilsteckern sollte sich relativ einfach ausmessen lassen.
Zuerst GND ausmessen, die anderen beiden sollten dann VCC sein.
Vorher aber mal die Leiterbahnen verfolgen ob das Sinn macht.
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Das Pinout habe ich gefunden, über dem etwas dünneren Pin ist GND und daneben +.

Wenn man von hinten auf die Buchse schaut ist links GND und rechts +.

Der Drucker lässt sich anschalten und auch das Papier wird gefördert,
eine Testseite kann der Möller offenbar nicht.
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Hier sieht es schonmal gut aus:
https://www.youtube.com/watch?v=yNPC8QJPuZ4

Die Musik ist fürchterlich, aber das sieht für mein Vorhaben ganz richtig aus,
die Platine von dem Kerl ist auch 25 Polig aber der Selbsttest sagt Serial.

Das ganze sieht man bei Minute 4:34 Minuten.

Mein Selbsttest (Feed-Taste gedrückt halten und einschalten) ist wie vermutet:
Bild

Mal sehen, wenn sich meine Belagerung auf den WAF auswirkt:
Bild


Hier hat jemand einen Drucker (kein Thermodrucker, sondern einen normalen) rangetüdelt:
https://forum.arduino.cc/index.php?topic=74776.0

Könnte es damit funktionieren?
Was meinen die Experten dazu?

Gruß Pascal
Name vergessen
Beiträge: 3261
Registriert: Mo 12. Aug 2013, 19:47

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Name vergessen »

Was steht denn an der "Telefonbuchse" neben dem Centronicsport dran? Im Handbuch liest es sich so, als gäbe es beide Anschlüsse, nur Ethernet wäre optional, und eine Beschreibung der Buchsen ist nicht im Handbuch?
Seriell gab es auch mit 25 poligem Dsub, aber ist schon ewig her...
Benutzeravatar
MichelH
Beiträge: 1732
Registriert: Mi 6. Nov 2013, 19:49
Wohnort: Nord-West

Re: Beschimpfungsdrucker nachbauen?

Beitrag von MichelH »

Die kleine Buchse ist zum Anschluss einer Geldschublade. Die wird dann dadurch entriegelt
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Da steht DK, laut Anleitung ist das der Drawer-Kickout,
ich könnte somit nach der Beleidigung noch eine Kasse öffnen oder eine Arschtrittmaschine starten.

€dit für mich:

https://github.com/SilverGreen93/USB-Centronics
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Heute wollte ich mal das hier testen:

https://forum.arduino.cc/index.php?topic=74776.0

Hier sah es noch knapp aber möglich aus:
Bild

Da ich die Leitungen von der Platine zu kurz gemacht habe,
war das eine ganz schöne Friemlei:
Bild

Leider sind die Drähtchen wieder aus dem Board gerutscht,
somit habe ich das für heute abgebrochen und versuche es morgen nochmals in Ruhe mit längeren Drähten...
Name vergessen
Beiträge: 3261
Registriert: Mo 12. Aug 2013, 19:47

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Name vergessen »

Den Drucker einfach auf die andere Seite zu legen oder die Steckplatine auf irgendwas draufzustellen wäre nicht gegangen? ;)
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Ja war gestern alles zu einfach :-).

Man will noch kurz was machen, hat aber eigentlich gar keine Zeit dafür,
dann reicht die Zeit dennoch und man verbockts halt doch wieder.

Daher lieber einen Schritt zurück und nochmals vorne mit passender Zeit-/Materialplanung ;-).

Der Kübel druckt:
Bild

Code: Alles auswählen

const int startup_charsPerLine = 80;
const int startup_num_lines = 2;
byte startup_message[startup_num_lines][startup_charsPerLine] = {
  "This is the startup message. It prints whenever",
  "the Arduino is reset.",
};

const int charsPerLine = 80;   // this is the max # of chars per line
const int num_lines = 10;
byte message[num_lines][charsPerLine] = {
  "    ",   // blank line
  "This is the normal message. It prints whenever",
  "you connect pin 14 (analog 0) to GND.",
  "  ",  // blank line
  "------------------------------------------------------------------------------",   // a spiffy line
  "1) More message content",
  "  ",
  "II) you can have up to about 80 chars per line ",
  "  ",
  "------------------------------------------------------------------------------",
};

// parallel port pin# = arduino pin#
const int nStrobe = 2;
const int data_0 = 3;
const int data_1 = 4;
const int data_2 = 5;
const int data_3 = 6;
const int data_4 = 7;
const int data_5 = 8;
const int data_6 = 9;
const int data_7 = 10;
const int nAck = 11;
const int busy = 12;

const int strobeWait = 2;   // microseconds to strobe for


void setup() {
  Serial.begin(9600);

  pinMode(nStrobe, OUTPUT);      // is active LOW
  digitalWrite(nStrobe, HIGH);   // set HIGH
  pinMode(data_0, OUTPUT);
  pinMode(data_1, OUTPUT);
  pinMode(data_2, OUTPUT);
  pinMode(data_3, OUTPUT);
  pinMode(data_4, OUTPUT);
  pinMode(data_5, OUTPUT);
  pinMode(data_6, OUTPUT);
  pinMode(data_7, OUTPUT);

  pinMode(nAck, INPUT);     // is active LOW
  pinMode(busy, INPUT); 

  pinMode(13, OUTPUT);
  pinMode(14, INPUT);   // analog pin 0 on duemilanove and uno
  digitalWrite(14, HIGH); // enable pull-up
 
  delay(1000);
 
  resetPrinter();
 
  printStartupMessage();
 
  resetPrinter();
 
  Serial.println("Delay for 5 sec");
  delay(5000);
 
  Serial.println("Startup complete");
}

void loop() {
while(digitalRead(14) == HIGH) {
   // wait
}

  resetPrinter();

  printMessage();

  resetPrinter();
}

void printByte(byte inByte) {
  while(digitalRead(busy) == HIGH) {
    // wait for busy to go low
  }

  int b0 = bitRead(inByte, 0);
  int b1 = bitRead(inByte, 1);
  int b2 = bitRead(inByte, 2);
  int b3 = bitRead(inByte, 3);
  int b4 = bitRead(inByte, 4);
  int b5 = bitRead(inByte, 5);
  int b6 = bitRead(inByte, 6);
  int b7 = bitRead(inByte, 7);

  digitalWrite(data_0, b0);        // set data bit pins
  digitalWrite(data_1, b1);
  digitalWrite(data_2, b2);
  digitalWrite(data_3, b3);
  digitalWrite(data_4, b4);
  digitalWrite(data_5, b5);
  digitalWrite(data_6, b6);
  digitalWrite(data_7, b7);

  digitalWrite(nStrobe, LOW);       // strobe nStrobe to input data bits
  delayMicroseconds(strobeWait);
  digitalWrite(nStrobe, HIGH);

  while(digitalRead(busy) == HIGH) {
    // wait for busy line to go low
  }
}

void resetPrinter() {
  Serial.println("Reseting printer...");
  printByte(27); // reset printer
  printByte('E');
  Serial.println("Printer Reset");
}

void printMessage() {
  digitalWrite(13, HIGH);
  for(int line = 0; line < num_lines; line++) { 
    for(int cursorPosition = 0; cursorPosition < charsPerLine; cursorPosition++) {
      byte character = message[line][cursorPosition];
      printByte(character);
      delay(1);
    }
    printByte(10); // new line
    printByte(13); // carriage return
  }
  digitalWrite(13,LOW);
}

void printStartupMessage() {
  Serial.println("Print start-up mssage");
  digitalWrite(13, HIGH);
  for(int line = 0; line < startup_num_lines; line++) { 
    for(int cursorPosition = 0; cursorPosition < startup_charsPerLine; cursorPosition++) {
      byte character = startup_message[line][cursorPosition];
      printByte(character);
      //      delay(1);
    }
    printByte(10); // new line
    printByte(13); // carriage return
    Serial.print("Line ");
    Serial.print(line);
    Serial.println(" printed.");
  }
  Serial.println("Startup message printed");
  digitalWrite(13,LOW);
}





Jetzt kann ich weiter forschen um diese Punkte zu klären:
- Drucker das Papier abschneiden beibringen
- Drucker einen zufälligen Text ausgeben lassen, anhand einer TXT Datei oder so?

Mal schauen wie es weiter geht, der wichtigste Schritt ist jedenfalls gemacht :-).

Grüßle Pascal


€dit:
Das hier habe ich zum Thema Cut in der Anleitung gefunden, wie bekomme ich das in meinen Code?
Und wohin damit?
Bild
andreas6
Beiträge: 4149
Registriert: So 11. Aug 2013, 15:09

Re: Beschimpfungsdrucker nachbauen?

Beitrag von andreas6 »

Das Schneiden sollte nach dem Ausdruck erfolgen. Es wird entweder direkt nach dem Ausdruck geschnitten (m=1 oder 49), oder mit wählbarem Abstand (m=66, n=Abstand). Die Anleitung ist insofern Murks, als dass das Format von m und n nicht benannt ist, Du musst es probieren. Da es für alle Zahlenformate gleich dargestellt ist, wird es definitiv falsch sein und nur für ein Format passen. Eine typisch miserable Anleitung, von denen ich schon zu viele lesen durfte. Viel Erfolg...

MfG. Andreas
thinkpad
Beiträge: 846
Registriert: Fr 6. Feb 2015, 16:53
Wohnort: Rhein Neckar

Re: Beschimpfungsdrucker nachbauen?

Beitrag von thinkpad »

ich hab noch einen Epson 88 in Seriell.
der soll auch mal Beschimpfungen drucken, oder Witze.

Epson Bon Drucker brauchen einen Steuerbefehl damit das Messer abschneidet.
Ist bei Epson POS dokumentiert.
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Ja da findet sich doch ruckzuck was "passendes":
https://reference.epson-biz.com/modules ... tent_id=72


Hier ist der Cut-Befehl zu finden:

https://reference.epson-biz.com/modules ... tent_id=87

Aber wie ich das in meinen Code bekomme ist mir noch total schleierhaft.

Auch scheint der Sketch den ich verwende extrem Speicherhungrig zu sein,
denn viel Text kann ich da nicht reinpacken.


Wenn du mit dem Cut Befehl weiter kommst, wäre es super,
wenn du es hier posten würdest.

Grüßle Pascal
andreas6
Beiträge: 4149
Registriert: So 11. Aug 2013, 15:09

Re: Beschimpfungsdrucker nachbauen?

Beitrag von andreas6 »

Die Anleitung auf der Webseite legt nahe, dass es sich bei m und n um Dezimalwerte handelt. Probiere erst man den einfachen Schnitt aus. Das sind simple Textzeichen, die zum Drucker geschickt werden. Mit PrintByte() kannst Du die Zeichen übertragen, in Deinem Code findest Du schon Beispiele dazu.

MfG. Andreas
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

const int startup_charsPerLine = 80; definiert die Anzahl Zeichen je Zeile auf 80
const int startup_num_lines = 2; Anzahl der Zeilen der Startnachricht
byte startup_message[startup_num_lines][startup_charsPerLine] = { "startup_message = Name der Variable für den Druck // {=Beginn der Nachricht?
"This is the startup message. It prints whenever", Zeile 1 Startnachricht
"the Arduino is reset.", Zeile 2 Startnachricht
}; } Ende der Nachricht?

const int charsPerLine = 80; // this is the max # of chars per line maximal 80 Zeichen je Zeile wie oben
const int num_lines = 10; Anzahl Zeilen für Pin A0 auf GND Druckausgabe
byte message[num_lines][charsPerLine] = { "message" ist der Name der Variable die später für den Druck aufgerufen wird?
" ", // blank line
"This is the normal message. It prints whenever",
"you connect pin 14 (analog 0) to GND.",
" ", // blank line
"------------------------------------------------------------------------------", // a spiffy line
"1) More message content",
" ",
"II) you can have up to about 80 chars per line ",
" ",
"------------------------------------------------------------------------------",
};

// parallel port pin# = arduino pin#
const int nStrobe = 2;
const int data_0 = 3;
const int data_1 = 4;
const int data_2 = 5;
const int data_3 = 6;
const int data_4 = 7;
const int data_5 = 8;
const int data_6 = 9;
const int data_7 = 10;
const int nAck = 11;
const int busy = 12;

const int strobeWait = 2; // microseconds to strobe for


void setup() {
Serial.begin(9600);

pinMode(nStrobe, OUTPUT); // is active LOW
digitalWrite(nStrobe, HIGH); // set HIGH
pinMode(data_0, OUTPUT);
pinMode(data_1, OUTPUT);
pinMode(data_2, OUTPUT);
pinMode(data_3, OUTPUT);
pinMode(data_4, OUTPUT);
pinMode(data_5, OUTPUT);
pinMode(data_6, OUTPUT);
pinMode(data_7, OUTPUT);

pinMode(nAck, INPUT); // is active LOW
pinMode(busy, INPUT);

pinMode(13, OUTPUT);
pinMode(14, INPUT); // analog pin 0 on duemilanove and uno
digitalWrite(14, HIGH); // enable pull-up

delay(1000);

resetPrinter();

printStartupMessage(); Aufruf Druckbefehl für Startdruck

resetPrinter();

Serial.println("Delay for 5 sec"); Ausgabe Serielle Schnittstelle Log?
delay(5000); Wartezeit 5 Sekunden, bis der nächste Resetbefehl kommen darf?

Serial.println("Startup complete"); Ausgabe Serielle Schnittstelle Log?
}

void loop() {
while(digitalRead(14) == HIGH) {
// wait
}

resetPrinter();

printMessage();

resetPrinter();
}

void printByte(byte inByte) {
while(digitalRead(busy) == HIGH) {
// wait for busy to go low
}

int b0 = bitRead(inByte, 0);
int b1 = bitRead(inByte, 1);
int b2 = bitRead(inByte, 2);
int b3 = bitRead(inByte, 3);
int b4 = bitRead(inByte, 4);
int b5 = bitRead(inByte, 5);
int b6 = bitRead(inByte, 6);
int b7 = bitRead(inByte, 7);

digitalWrite(data_0, b0); // set data bit pins
digitalWrite(data_1, b1);
digitalWrite(data_2, b2);
digitalWrite(data_3, b3);
digitalWrite(data_4, b4);
digitalWrite(data_5, b5);
digitalWrite(data_6, b6);
digitalWrite(data_7, b7);

digitalWrite(nStrobe, LOW); // strobe nStrobe to input data bits
delayMicroseconds(strobeWait);
digitalWrite(nStrobe, HIGH);

while(digitalRead(busy) == HIGH) {
// wait for busy line to go low
}
}

void resetPrinter() {
Serial.println("Reseting printer..."); Ausgabe Serielle Schnittstelle Log?
printByte(27); // reset printer 27= setzt den Drucker tatsächlich zurück?
printByte('E'); ?
Serial.println("Printer Reset"); Ausgabe Serielle Schnittstelle Log?
}

void printMessage() {
digitalWrite(13, HIGH);
for(int line = 0; line < num_lines; line++) { legt die Zeile 1 als Zeile 0 fest und gibt die Addition der nächsten Zeilen vor?
for(int cursorPosition = 0; cursorPosition < charsPerLine; cursorPosition++) {
byte character = message[line][cursorPosition]; Variable "message" wird aufgerufen
printByte(character);
delay(1);
}
printByte(10); // new line ?
printByte(13); // carriage return ?
}
digitalWrite(13,LOW);
}

void printStartupMessage() {
Serial.println("Print start-up mssage"); Ausgabe der Seriellen Schnittstelle, als Log?
digitalWrite(13, HIGH);
for(int line = 0; line < startup_num_lines; line++) {
for(int cursorPosition = 0; cursorPosition < startup_charsPerLine; cursorPosition++) { was bedeutet das cursorPosition?
byte character = startup_message[line][cursorPosition]; Variable "startup_message" wird aufgerufen
printByte(character);
// delay(1);
}
printByte(10); // new line
printByte(13); // carriage return
Serial.print("Line "); Ausgabe Serielle Schnittstelle Log, Line ist der Text der ausgegeben wird
Serial.print(line); Ausgabe Serielle Schnittstelle Log, "line" die Zahl der Zeile?
Serial.println(" printed."); Ausgabe Serielle Schnittstelle Log?
}
Serial.println("Startup message printed"); Ausgabe Serielle Schnittstelle Log?
digitalWrite(13,LOW);
}





------------------------------------------------------------------------------------
Ich habe mal versucht den Code/Sketch zu kommentieren, mit dem was ich zum Teil meine wofür das gut sein soll.



@andreas6:
Ich bin dafür glaub echt zu doof, bzw. einfach noch zu weit weg von dem ganzen Thema,
ich habe das vorhin einfach mal versucht. Das einzige was ich hinbekommen habe war,
dass vor meinem Text eine Zahl/Buchstabe vorne angestellt wurde.

Kannst du mir sagen wo ich das einfügen müsste und wie es genau aussehen müsste?




Jetzt geht´s erstmal mit dem Sohnemann spazieren, so kann man nicht arbeiten mit einem schreiendem Baby :-)

Gruß Pascal
Anse
Beiträge: 2278
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl (Baden)

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Anse »

Setzt den Code bitte in die Code Tags

Code: Alles auswählen

Beispiel
andreas6
Beiträge: 4149
Registriert: So 11. Aug 2013, 15:09

Re: Beschimpfungsdrucker nachbauen?

Beitrag von andreas6 »

Davon abgesehen, ist das ein Beispielprogramm. Es soll zeigen, was dort möglich ist und wie man es macht. So etwas passt man behutsam an und vermerkt sich auch die Änderungen, erzeugt sozusagen neue Versionen und testet die aus. Eigene Kommentare sind ganz wichtig, damit man Jahre später auch noch was damit anfangen kann. Wesentlich leichter fällt der Umgang damit, wenn man einen Editor für Programmierer benutzt, der auch mit Einrückungen und Schlüsselworten umgehen kann. Ich nutze gewöhnlich Programmers Notepad und selten mal Notepad++ (das kann auch hex). Das Verstehen des Programms wird Dir keiner abnehmen können, da musst Du selber durch. Dann werden Dir auch Änderungen leichter fallen.

MfG. Andreas
berlinerbaer
Beiträge: 1062
Registriert: Di 22. Aug 2017, 05:19
Wohnort: Berlin

Re: Beschimpfungsdrucker nachbauen?

Beitrag von berlinerbaer »

Hansele hat geschrieben: Di 2. Jun 2020, 18:36 Heute ist mein Spielzeug gekommen, in der schönsten Gilbfarbe überhaupt:
Bild
Wenn Dich der Gilb stört, such mal nach retrobrite, da gibts jede Menge dazu im Netz.

TL;DR: H2O2 + UV
Ich muss mal schauen, wir ich am sinnvollsten die Textdatei einbinde......
Kein Problem, dafür gibt es wahlweise EEPROMs oder SD-Karten-Module:

256kB:
https://www.aliexpress.com/item/32837253262.html
Datasheet: http://ww1.microchip.com/downloads/en/d ... oc0670.pdf

SD:
https://www.aliexpress.com/item/2046499166.html
Benutzeravatar
Hansele
Beiträge: 3726
Registriert: So 11. Aug 2013, 15:15
Wohnort: Bw
Kontaktdaten:

Re: Beschimpfungsdrucker nachbauen?

Beitrag von Hansele »

Hallo zusammen,

SD-Karte wäre glaub das richtige, dann kann ich einfach die Funktion austauschen,
mal Beschimpfungen, mal Komplimente, mal Trinksprüche, etc. :-)

Aber dafür es ist noch zu früh.


Gestern Abend habe ich noch mit dem printByte Befehlen gespielt,
der Drucker hat doch tatsächlich geschnitten.
Der Text wird noch abgeschnitten (erster Buchstabe und das Ende) und seltsam formatiert,
aber er druckt und schneidet, dass freut mich schonmal :-).

Bild

Code gesamt:

Code: Alles auswählen

const int charsPerLine = 80;   // this is the max # of chars per line
const int num_lines = 1;
byte message[num_lines][charsPerLine] = {

// "    ",   // blank line
" Als Kind hat dir doch Deine Mutter ein Kotelett umgehängt, damit wenigstens der Hund mit dir spielt!",
// "    ",   // blank line
//"------------------------------------------------------------------------------",   // a spiffy line
};



// parallel port pin# = arduino pin#
const int nStrobe = 2;
const int data_0 = 3;
const int data_1 = 4;
const int data_2 = 5;
const int data_3 = 6;
const int data_4 = 7;
const int data_5 = 8;
const int data_6 = 9;
const int data_7 = 10;
const int nAck = 11;
const int busy = 12;

const int strobeWait = 2;   // microseconds to strobe for


void setup() {
  Serial.begin(9600);

  pinMode(nStrobe, OUTPUT);      // is active LOW
  digitalWrite(nStrobe, HIGH);   // set HIGH
  pinMode(data_0, OUTPUT);
  pinMode(data_1, OUTPUT);
  pinMode(data_2, OUTPUT);
  pinMode(data_3, OUTPUT);
  pinMode(data_4, OUTPUT);
  pinMode(data_5, OUTPUT);
  pinMode(data_6, OUTPUT);
  pinMode(data_7, OUTPUT);

  pinMode(nAck, INPUT);     // is active LOW
  pinMode(busy, INPUT); 

  pinMode(13, OUTPUT);
  pinMode(14, INPUT);   // analog pin 0 on duemilanove and uno
  digitalWrite(14, HIGH); // enable pull-up
 
  delay(1000);
 
  resetPrinter(); 
  Serial.println("Delay for 5 sec");
  delay(5000);
  Serial.println("Startup complete");
}

void loop() {
while(digitalRead(14) == HIGH) {
   // wait
}

  resetPrinter();

  printMessage();  // Druckausgabe aktiv
  delay(1000);
  resetPrinter();
}

void printByte(byte inByte) {
  while(digitalRead(busy) == HIGH) {
    // wait for busy to go low
  }

  int b0 = bitRead(inByte, 0);
  int b1 = bitRead(inByte, 1);
  int b2 = bitRead(inByte, 2);
  int b3 = bitRead(inByte, 3);
  int b4 = bitRead(inByte, 4);
  int b5 = bitRead(inByte, 5);
  int b6 = bitRead(inByte, 6);
  int b7 = bitRead(inByte, 7);

  digitalWrite(data_0, b0);        // set data bit pins
  digitalWrite(data_1, b1);
  digitalWrite(data_2, b2);
  digitalWrite(data_3, b3);
  digitalWrite(data_4, b4);
  digitalWrite(data_5, b5);
  digitalWrite(data_6, b6);
  digitalWrite(data_7, b7);

  digitalWrite(nStrobe, LOW);       // strobe nStrobe to input data bits
  delayMicroseconds(strobeWait);
  digitalWrite(nStrobe, HIGH);

  while(digitalRead(busy) == HIGH) {
    // wait for busy line to go low
  }
}

void resetPrinter() {
  Serial.println("Reseting printer...");
  printByte(27); // reset printer
  Serial.println("Printer Reset");
}

void printMessage() {
  digitalWrite(13, HIGH);
  for(int line = 0; line < num_lines; line++) { 
    for(int cursorPosition = 0; cursorPosition < charsPerLine; cursorPosition++) {
      byte character = message[line][cursorPosition];
      printByte(character);
      delay(1);
    }
    printByte(10); // new line
    printByte(13); // carriage return
    printByte(0x1D); // cut befehl = 29 als Zahl
    printByte('V'); // cut befehl
    printByte(66); // cut befehl

  }
  digitalWrite(13,LOW);
}
Das passiert im Seriellen Monitor:

Code: Alles auswählen

09:37:18.082 -> Reseting printer...
09:37:18.082 -> Printer Reset
09:37:18.082 -> Delay for 5 sec
09:37:23.055 -> Startup complete  
09:37:30.363 -> Reseting printer...  --> A0 auf GND gezogen
09:37:30.363 -> Printer Reset
09:37:31.448 -> Reseting printer...
09:37:31.448 -> Printer Reset

Diese 3 printByte Befehle haben den Drucker zum schneiden gebracht:

Code: Alles auswählen

   
 printByte(0x1D); // cut befehl = 29 als Zahl
    printByte('V'); // cut befehl
    printByte(66); // cut befehl

Leider wird der Text nicht richtig gedruckt:
Bild




Kann mir jemand die genaue Funktion (steht am Anfang des Codes) dieses Schnipsels erklären?
const int, sind nach meinem Verständnis feste Werte, was aber ja in meinem Fall falsch ist, da die Werte nicht feststehen?
Es könnte ja ein kürzerer oder längerer Text kommen?

Code: Alles auswählen

const int charsPerLine = 80;   // this is the max # of chars per line
const int num_lines = 1;
byte message[num_lines][charsPerLine] = {
Hier stehe ich auf auf dem Schlauch:

Code: Alles auswählen

void printMessage() {
  digitalWrite(13, HIGH);
  for(int line = 0; line < num_lines; line++) { 
    for(int cursorPosition = 0; cursorPosition < charsPerLine; cursorPosition++) {
      byte character = message[line][cursorPosition];
      printByte(character);

Gruß Pascal
j.o.e
Beiträge: 541
Registriert: Fr 29. Nov 2019, 01:15

Re: Beschimpfungsdrucker nachbauen?

Beitrag von j.o.e »

printByte sieht nach Paralleldrucker aus, ebenso wie der Centronics-Stecker an deinem Spielzeug - aber das nur am Rande.


Strings in C (C++) sind null-terminiert.

Das Ganze erst mal für eine Message:

Code: Alles auswählen

char * message = "Hello World!";

byte character;
int i = 0;

while ((character = message[i]) != '\0') {
   i++;
   printf("%c", character);
}
Würde ich aber in eine Funktion packen, z.B. printString und den Pointer übergeben ...

Code: Alles auswählen

while ((character = message[i]) != '\0') {
   i++;
   ....
}
lässt sich zusammenfassen zu

Code: Alles auswählen

while ((character = message[i++]) != '\0') {
  ....
}
Edith meinte: Centronics schreibt sich so ...
FYI: https://www.c64-wiki.de/wiki/Centronics-Schnittstelle - mal was aus "der guten alten Zeit".
HANDSHAKE: https://www.cfd.tu-berlin.de/Lehre/EDV1 ... de164.html
Benutzeravatar
MatthiasK
Beiträge: 2952
Registriert: Mo 19. Aug 2013, 22:12

Re: Beschimpfungsdrucker nachbauen?

Beitrag von MatthiasK »

Nachdem ich hier dauernd von so Druckern lesen muss, habe ich mal meinen Thermopapierdrucker rausgekramt, den ich im Winter auf nem Flohmarkt gekauft hatte. Jetzt muss ich auch mal damit was bauen.

Mein Drucker RS232, Ethernet und USB. Auf der Unterseite sind noch ein paar Dip-Schalter hinter einer Abdeckung. Typenbezeichnung - öh ja, die steht hoffentlich unter dem Aufkleber, nicht auf dem fehlenden Gehäuseteil.

Hinten hat der so einen Stecker, wie die Metcal PS-900 für den Lötkolben:
https://res.cloudinary.com/iwh/image/up ... PS-900.jpg
Irgendwas mit 24V/5A habe ich dazu im Kopf. Kennt jemand die Typenbezeichnung und eine Bezugsquelle (außer Lötkolben abschneiden)?
Antworten