CNC Kreuztisch für Ständer-Bohrmaschine

  Home     Übersicht     Mechanik     Steuerung     Bedien-Paneel     User-Interface     Dokumentation     Beispiele  

User-Interface


Die Steuerung ist mittels USB-Kabel mit einem PC verbunden. Darauf läuft ein Python-3 Programm (App auf Neudeutsch), welches Den Zustand anzeigt, Programme verarbeiten kann und Befehle an die Steuerung sendet. Man könnte einen beliebigen Windows oder Linux PC oder Laptop verwenden auf welchem Python-3 und TK-Inter installiert ist. Hier wurde ein Raspberry-Pi-4B mit 7-Inch Touchscreen verwendet, erhältlich als Bausatz (siehe Stückliste).

Das USB-Kabel sollte evtl. mit einem Ferrit-Kern versehen werden. Die verwendete Motorsteuerung für den Antrieb der Bohrmaschine (nicht Teil des Projekts) verursacht Störungen welche den USB-Treiber im Raspberry-Pi-4B zum Absturz bringen. Der Ferrit-Kern verhindert das. Je nach PC und/oder Motorsteuerung (falls überhaupt vorhanden) ist das aber nicht nötig.

Software

Verwendet wird ein Python-3 Script mit TKInter als Benutzerschnittstelle. Python-3 sowie TKInter gibt es für allen gängigen Plattformen. Tutorials dazu gibt es zu Hauf und werden hier nicht explizit erklärt. Um zu sehen ob es funktionieren würde, kann man das Script hier herunterladen und versuchen zu starten.

Alle Python-Scripts befinden sich im Unterverzeichnis py.  Das Haupt-Script cnc.py testet die Bildauflösung und lädt die entsprechende Konfigurationsdatei DP_Breite-x-Höhe.py. Ist die entsprechende Auflösung nicht vorhanden, wird "DP_1280x720_W.py" geladen und anstelle eines Vollbildes ein Fenster mit 1280x720 erzeugt. Ab Zeile 438 des cnc.py Scripts kann man weitere angepasste Auflösungen einfügen.

Das cnc.py Script wird mittels dem cnc.sh bash-Script im übergeordneten Verzeichnis gestartet. cnc.py hat keine Funktion um eine Datei zu öffnen oder bearbeiten. Dazu wird es verlassen und einen entsprechenden Code für das bash-Script zurückgegeben. Damit wird der Editor oder Dateibrowser gestartet. Es unterstützt "kate" und "geany" als Editor, zum öffnen verwendet es "zenity". Verwendet man andere Programme, kann man es einfach anpassen.

Diese Lösung wurde gewählt weil es weniger Fehleranfällig ist. Beispiel: wenn das Python-Script im Vollbildmodus läuft und  man den Editor aufruft, überlagert der Editor das Python-Script. Gerät man nun versehentlich mittels Maus oder Touchscreen auf das im Vollbild laufende und im Hintergrund blockierte Python-Script, geht der Editor in den Hintergrund und man kann beide nicht mehr schließen.

Falls man Windows verwendet, müsste man ein entsprechendes Batch-File (cnc.bat) schreiben oder vielleicht mit "Powershell" selber etwas erstellen.

Bedienung

Man startet das User Interface via Browser oder Kommandozeile. Gestartet wird das cnc.sh (oder cnc.bat) z.B. mit Doppelklick aus dem Dateibrowser. Entsprechend kann man sich auch einen Link auf den Desktop oder im Startmenü anlegen. Danach zeigt sich das Bild wie Oben.

Unten im User Interface sind die Bedientasten. Sie können mit einzelnen Tasten auf der Tastatur bedient werden (z.B. O für Oeffnen), oder auch mit der Maus oder Touch-Screen. Die haben folgende Funktion:

Taste
Funktion
Oeffnen
Öffnet eine CNC Datei. Dazu wird das Script beendet und "open:filename.cnc" zurückgegeben. Das scipt erkennt "open:" und speichert auch den aktuellen "filename.cnc". Es benutzt "zenity" um eine Datei zu öffnen. Wählt man eine Datei, wird das cnc.py Script mit der gewählten Datei erneut gestartet. Wählt man keine Datei, wird das cnc.py mit dem vorherigen "filename.cnc" gestartet, falls vorhanden. Anstelle von "zenity" kann man auch ein anderes Tool verwenden.
Bearbt.
Aktuelle CNC Datei bearbeiten. Dazu wird das Script beendet und "filename.cnc" zurückgegeben. Das cnc.sh oder cnc.bat Script öffnet die "filename.cnc" Datei mit einem Editor. Dazu prüft es ob "kate" oder "geany" installiert ist und verwendet dies. Man kann auf Wunsch einen anderen Editor im Script einbauen oder in Script ersetzen.
Start
Startet das geladene CNC Programm.
Goto
Listet die Labels im CNC Programm. Wählt man eines aus der Liste, springt das CNC Programm an diese Stelle. Handelt es sich um ein Unterprogramm, wird nach dem Return eine Fehlermeldung angezeigt. Das Programm wird aber fortgesetzt und könnte je nach den nachfolgenden Zeilen gewünscht oder problematisch sein. Ist es problematisch, sollte man nach dem Return Kommando ein M einfügen, was das Programm beendet.
Stopp
Bricht das laufende Programm ab.
Pause
Unterbricht das laufende Programm. Danach kann mit der Taste Schritt einzelne Kommandos abgearbeitet werden, oder auch ein Manuelles Kommando eingefügt werden.
Schritt
Startet im Einzelschrittmodus oder setzt ein Programm schrittweise fort.
ManKomd
Manuelles Kommando. Öffnet ein Fenster mit einer Eingabezeile für ein manuelles Kommando welches direkt an die Steuerung gesendet wird.
Beenden
Beendet das cnc.py Script. Es gibt nichts zurück so dass das cnc.sh bzw. cnc.bat ebenfalls endet.


CNC-Programme schreiben

Ausführliche Beispiele gibt es bei den Beispielen.

Simulation

Um mit dem User-Interface zu arbeiten und CNC Programme zu testen, kann man den Simulationsmodus verwenden. Dazu steckt man ein einzelner RP2040-Zero oder Raspberry-Pi Pico mittels USB an den PC und lädt die CNC-Binary_Software. Nach dem Starten von cnc.py zeigt das User-Interface die 3 Achsenwerte 0.000 mm für alle drei Achsen sowie die Software Version oben rechts im Bild. Somit hat es Verbindung mit der CNC-Steuerung. Mit dem manuellen Befehl "V12" (Taste ManKomd) schaltet man der CNC-Steuerung in den Simulationsmodus. Sie verarbeitet danach alle Befehle 1:1 wie auf der Maschine. Bei Z (Bohren) oder T (Werkzeugwechsel) wartet es ca. 2 Sekunden und fährt dann von alleine weiter.


© 2025 by Stefan Ludescher