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.