bltouch module
Modul zum Steuern und Auslesen des Nivellierungssensors.
Das Modul bltouch.py verwendet die pigpio Bibliothek zur Generierung eines PWM Signals, über welches sich die Sonde des Nivellierungssensors BLTouch steuern lässt. Außerdem wird die Bibliothek RPi.GPIO verwendet, mit welcher sich Pin-Interrupts erzeugen lassen.
- class bltouch.Touchsensor(grundeinstellungen)[Quellcode]
Bases:
object
- __init__(grundeinstellungen)[Quellcode]
Wird aufgerufen wenn ein Touchsensor-Objekt erzeugt wird.
Grundeinstellungen wie Pin-Konfiguration, Timingeinstellungen oder PWM-Parameter werden ausgelesen und in lokale Variabeln gespeichert.
- Parameter
grundeinstellungen (dict) – Aus dem Config-File eingelesene Grundeinstellungen des Roboters.
- interrupt_routine(dummyvariable)[Quellcode]
Die ISR (Interrupt Service Routine) wird aufgerufen sobald ein Interrupt am GPIO0 auftritt.
Bemerkung
Ein Interrupt wird bei steigender Flanke (RISING) getriggert. Die Dummyvariable darf nicht gelöscht werden, sonst funktionieren die Interrupts nicht!
- Parameter
dummyvariable – Kein Verwendung, dient nur als Dummy
- profil_aufzeichnen(grbl, samples, radius, fortschritt_signal)[Quellcode]
Zeichnet ein Profil durch Abtastung von mindestens 3 Punkten der Optikoberfläche auf.
- Parameter
grbl (object) – Objekt zur Kommunikation mit dem CNC-Controller.
samples (int) – Anzahl der abzutastenden Punkte.
radius (float) – Radius der Linse in mm (nicht der Oberflächenradius!).
fortschritt_signal (signal) – Signal vom Typ (float). Dient zur Aktualisierung des Ladebalkens.
- Rückgabe
Gibt eine Liste mit Koordinatenpaaren [X:Z] (str) zurück.
- Rückgabetyp
list
- selbst_test()[Quellcode]
Führt einen Selbsttest des Sensors durch.
Bemerkung
Pulsweite für den Selbsttest lässt sich in den Grundeinstellungen unter
bl_selbsttest
ändern.
- sonde_heben()[Quellcode]
Fährt die Sonde des Nivellierungssensors ein.
Bemerkung
Pulsweite für die obere Position, lässt sich in den Grundeinstellungen unter
bl_obere_position
ändern.- Parameter
pulsweite (int) – Pulsweite des PWM-Signales in \({\mu s}\)
- sonde_senken()[Quellcode]
Fährt die Sonde des Nivellierungssensors aus.
Bemerkung
Pulsweite für die untere Position, lässt sich in den Grundeinstellungen unter
bl_untere_position
ändern.- Parameter
pulsweite (int) – Pulsweite des PWM-Signales in \({\mu s}\)
- sonde_stellen(pulsweite)[Quellcode]
Erzeugt das PWM Signal am Pin GPIO24 des Raspberry PI.
Bemerkung
GPIO-Pin ist in den Grundeinstellungen unter
gpio_bltouch_pwm
zu finden.- Parameter
pulsweite (int) – Pulsweite des PWM-Signales in \({\mu s}\)
- touchsensor_initialisieren()[Quellcode]
Initialsiert den Nivellierungssensor indem ein Selbsttest durchgeführt wird.
Die Mehtode initialisert außerdem die Interrupt-Funktion am Pin GPIO0.
Bemerkung
Beim Selbsttest wird die Sonde des Sensors 10x gehoben und wieder gesenkt.
- Rückgabe
Gibt eine Liste mit Koordinatenpaaren [X:Z] (str) zurück.
- Rückgabetyp
list
- z_einzel_abtastung(grbl)[Quellcode]
Taset die Oberfläche einer Optik einmalig ab.
Diese Methode wird aufgerufen, wenn der Z-Offset (Abstand zwischen Optik und Nivellierungssensor) erfasst werden soll.
Bemerkung
Mittels Abtastung des Z-Offset, lässt sich der Reinigungsablauf beschleunigen, da das CNC-Positionierungssystem den Kopf im Eilgang absenkt und sich erst kurz vor Berührung an die Oberfläche herantastet.
- Parameter
grbl (object) – Objekt zur Kommunikation mit dem CNC-Controller.