Drucker Steuerung: Unterschied zwischen den Versionen

Aus C3MAWiki
(Bildgröße reduziert)
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Im wesentlichen handelt es sich hierbei um einen ESP8266-12 an dem mithilfe einer Matrixverkablung mehrere Taster befestigt sind.
{{aktives Projekt|Kontakt=EmpirePhoenix|öffentlich=ja}}
 
Im wesentlichen handelt es sich hierbei um einen ESP8266-12 an dem mithilfe einer Matrixverkablung mehrere Taster befestigt sind.<br>
Die platte verfügt über 5 WS2866 um den aktuellen Status auszugeben.
Die platte verfügt über 5 WS2866 um den aktuellen Status auszugeben.


Zeile 7: Zeile 9:
Möglich zustände sind:
Möglich zustände sind:


Startup:
Startup:<br>
1XGrün blinkend: Versuch WLAN Verbindung aufzubauen
1XGrün blinkend: Versuch WLAN Verbindung aufzubauen <br>
1XBlau leuchtend, und 1XGrün blinkend: Versuch Verbindung zur REST Schnittstelle des Druckers aufzunehmen
1XBlau leuchtend, und 1XGrün blinkend: Versuch Verbindung zur REST Schnittstelle des Druckers aufzunehmen<br>


Dananch:
Dananch:<br>
4XRot Hell Leuchtend: REST request wird derzeit ausgeführt. (Dieser Zustand sollte periodisch mindestens alle 3 Sekunden auftreten)
4XRot Hell Leuchtend: REST request wird derzeit ausgeführt. (Dieser Zustand sollte periodisch mindestens alle 3 Sekunden auftreten)<br>


2X grün-rot & 2X grün bis rot -> die Unteren beiden LED's geben die echte Temperatur an grün ist hierbei kalt, rot schmerzhaft (220°C), die anderen beiden die Zieltemperatur
2X grün-rot & 2X grün bis rot -> die Unteren beiden LED's geben die echte Temperatur an grün ist hierbei kalt, rot schmerzhaft (220°C), die anderen beiden die Zieltemperatur<br>
Die letzte LED ist hierbei entweder aus oder:
Die letzte LED ist hierbei entweder aus oder:<br>
Die oberste LED blinkt Blau:  Drucker ist beim abarbeiten von einem Print befehl
Die oberste LED blinkt Blau:  Drucker ist beim abarbeiten von einem Print befehl<br>




Der Drehschalter ist derzeit ohne Funktion und vorgesehen für evtl. zusätzliche Drucker zum umschalten.
Der Drehschalter ist derzeit ohne Funktion und vorgesehen für evtl. zusätzliche Drucker zum umschalten.<br>




Zeile 27: Zeile 29:
Basis funktionsweise:
Basis funktionsweise:


Per polling (um prellen zu verhindern) wird die Matrix abgefragt, dann wird je nach Button eine LuaTabelle zusammengebaut die Json ähnlich aufgebaut ist.
Per polling (um prellen zu verhindern) wird die Matrix abgefragt, dann wird je nach Button eine LuaTabelle zusammengebaut die Json ähnlich aufgebaut ist.<br>
Diese wird mithilfe von cjson in json encodiert, und mithilfe von http.post an den Drucker geschickt.  
Diese wird mithilfe von cjson in json encodiert, und mithilfe von http.post an den Drucker geschickt. <br>
Währenddessen ist ein globaler lock auf dem hauptloop des ESP, da mehrere concurrente requests nicht unterstützt werden. Es kann zusätzlich ein delay angegeben werden, um befehle in sync mit der hardware zu bekommen.  
Währenddessen ist ein globaler lock auf dem hauptloop des ESP, da mehrere concurrente requests nicht unterstützt werden. Es kann zusätzlich ein delay angegeben werden, um befehle in sync mit der hardware zu bekommen. <br>
Dies hat den Zweck dass ein Dauerdrücken nicht dutzende Befehle in die queue schreiben soll, sondern ungefähr beim loslassen des Schalters auch der Drucker aufhören soll Befehle auszuführen.
Dies hat den Zweck dass ein Dauerdrücken nicht dutzende Befehle in die queue schreiben soll, sondern ungefähr beim loslassen des Schalters auch der Drucker aufhören soll Befehle auszuführen.<br>
Alle 2 Sekunden wird per Rest der aktuelle Druckerstatus ausgelesen, um festzustellen ob diese noch aktiv ist, und um das Display aktualisieren zu können.
Alle 2 Sekunden wird per Rest der aktuelle Druckerstatus ausgelesen, um festzustellen ob diese noch aktiv ist, und um das Display aktualisieren zu können.<br>


HardwareSpecials:
HardwareSpecials:<br>
PullDown widerstände werden von der Software emuliert, indem kurz vor abfragen der Matrix all pins einmal als Output auf low gezogen werden.
PullDown widerstände werden von der Software emuliert, indem kurz vor abfragen der Matrix all pins einmal als Output auf low gezogen werden.<br>
Da ein GPIO zuwenig vorhanden ist, sind die LED's am GPIO2 angelegt, an dem sich auch ein PIN der Matrix befindet. Dieses wird umgesetzt indem die Firmware den Pin ca 20mal die Sekunde umkonfiguriert. Es kann vorkommen dass beim drücken eines zugehören Buttons kurze Gliches in der Anzeige auftregen. Dies ist unproblematisch.
Da ein GPIO zuwenig vorhanden ist, sind die LED's am GPIO2 angelegt, an dem sich auch ein PIN der Matrix befindet. Dieses wird umgesetzt indem die Firmware den Pin ca 20mal die Sekunde umkonfiguriert. <br>Es kann vorkommen dass beim drücken eines zugehören Buttons kurze Gliches in der Anzeige auftregen. Dies ist unproblematisch.

Aktuelle Version vom 11. Juli 2016, 13:08 Uhr

Dies ist ein Projekt, an dem momentan aktiv gearbeitet wird. Wenn du Fragen hast oder mitarbeiten möchtest, wende dich an EmpirePhoenix.


Im wesentlichen handelt es sich hierbei um einen ESP8266-12 an dem mithilfe einer Matrixverkablung mehrere Taster befestigt sind.
Die platte verfügt über 5 WS2866 um den aktuellen Status auszugeben.


]

Möglich zustände sind:

Startup:
1XGrün blinkend: Versuch WLAN Verbindung aufzubauen
1XBlau leuchtend, und 1XGrün blinkend: Versuch Verbindung zur REST Schnittstelle des Druckers aufzunehmen

Dananch:
4XRot Hell Leuchtend: REST request wird derzeit ausgeführt. (Dieser Zustand sollte periodisch mindestens alle 3 Sekunden auftreten)

2X grün-rot & 2X grün bis rot -> die Unteren beiden LED's geben die echte Temperatur an grün ist hierbei kalt, rot schmerzhaft (220°C), die anderen beiden die Zieltemperatur
Die letzte LED ist hierbei entweder aus oder:
Die oberste LED blinkt Blau: Drucker ist beim abarbeiten von einem Print befehl


Der Drehschalter ist derzeit ohne Funktion und vorgesehen für evtl. zusätzliche Drucker zum umschalten.


Source: https://github.com/C3MA/octonet

Basis funktionsweise:

Per polling (um prellen zu verhindern) wird die Matrix abgefragt, dann wird je nach Button eine LuaTabelle zusammengebaut die Json ähnlich aufgebaut ist.
Diese wird mithilfe von cjson in json encodiert, und mithilfe von http.post an den Drucker geschickt.
Währenddessen ist ein globaler lock auf dem hauptloop des ESP, da mehrere concurrente requests nicht unterstützt werden. Es kann zusätzlich ein delay angegeben werden, um befehle in sync mit der hardware zu bekommen.
Dies hat den Zweck dass ein Dauerdrücken nicht dutzende Befehle in die queue schreiben soll, sondern ungefähr beim loslassen des Schalters auch der Drucker aufhören soll Befehle auszuführen.
Alle 2 Sekunden wird per Rest der aktuelle Druckerstatus ausgelesen, um festzustellen ob diese noch aktiv ist, und um das Display aktualisieren zu können.

HardwareSpecials:
PullDown widerstände werden von der Software emuliert, indem kurz vor abfragen der Matrix all pins einmal als Output auf low gezogen werden.
Da ein GPIO zuwenig vorhanden ist, sind die LED's am GPIO2 angelegt, an dem sich auch ein PIN der Matrix befindet. Dieses wird umgesetzt indem die Firmware den Pin ca 20mal die Sekunde umkonfiguriert.
Es kann vorkommen dass beim drücken eines zugehören Buttons kurze Gliches in der Anzeige auftregen. Dies ist unproblematisch.