Joystick Bricklet¶
Joystick Bricklet
Ein 2-achsiger Joystick, dessen Position in x- und y-Koordinaten ausgelesen werden kann. Ebenfalls kann man den Joystick drücken. Ob gedrückt wurde oder nicht kann ebenfalls ausgelesen werden.
Initialisierung¶
Code um das Bricklet anzusteuern
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Adressierung
# Diese beiden Zeilen nur 1x pro Programm nutzen:
HOST = "localhost"
PORT = 4223
# UID des Bricklets
joystickBrickletUID = "xxx" # UID aus dem Brick Viewer
# Import der wichtigen Funktionen
from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_joystick_v2 import BrickletJoystickV2
# Verbindung herstellen
ipcon = IPConnection()
joystickBricklet = BrickletJoystickV2(joystickBrickletUID, ipcon)
ipcon.connect(HOST, PORT)
Funktionen im Hauptprogramm¶
Das Bricklet auslesen
x, y = joystickBricklet.get_position()
gibt die x- und y-Koordinaten des Joysticks aus. Die x-Achse ist die vertikale Achse bezüglich der Beschriftung auf dem Bricklet. x=0 und y=0 entspricht der neutralen Position in der Mitte. Die Koordinaten können die Werte -100 bis 100 annehmen.
pressed = joystickBricklet.is_pressed()
gibt den Wert in true
oder false
aus, wenn der Drücker gedrückt ist zum Zeitpunkt der Auslesung.
Callback-Funktionen¶
Das Joystick-Bricklet bietet zwei Callbackfunktionen an. Einmal eine, welche auf das Drücken des Joysticks reagiert und eine welche auf die Position reagiert.
Callback-Funktion registrieren
Callbackfunktionen für das Drücken registrieren:
joystickBricklet.register_callback(joystickBricklet.CALLBACK_PRESSED, joystickCallbackPressed)
joystickCallbackPressed
wird ein Parameter true
oder false
übergeben. joystickCallbackPressed
sollte dann so definiert werden: def joystickCallbackPressed(pressed)
:
Callbackfunktionen für Position registrieren:
joystickBricklet.register_callback(joystickBricklet.CALLBACK_POSITION, joystickCallbackPosition)
joystickCallbackPosition
werden zwei Parameter für die x- und y-Positionen übergeben. joystickCallbackPosition
sollte dann so definiert werden: def joystickCallbackPosition(x,y)
:
Callback-Funktion konfigurieren
Callbackfunktion für das Drücken konfigurieren:
joystickBricklet.set_pressed_callback_configuration(period, value_has_to_change)
Callbackfunktion für Position konfigurieren
joystickBricklet.set_position_callback_configuration(period, value_has_to_change)
Bedeutung der Parameter:
period
: Wert in ms in der die Temperatur überprüft werden soll. Standardwert 0, deaktiviert die Callbackfunktion.value_has_to_change
: True oder False. Falls True, dann wird die Callbackfunktion nur aufgerufen, wenn sie die Temperatur geändert hat. Standardwert False
Ein Beispiel für eine mögliche Konfigurationen:
joystickBricklet.set_pressed_callback_configuration(10, True)
ruft die Callback-Funktion auf, falls der Joystick gedrückt wurde. Dies wird alle 10 ms überprüft.joystickBricklet.set_position_callback_configuration(100, True)
ruft die Callback-Funktion auf, falls der Joystick bewegt wurde. Dies wird alle 100 ms überprüft. Dieser Wert muss man je nach Anwendung überprüfen und anpassen.
Beispiel für joystickCallbackPressed und joystickCallbackPosition
# Die Funktion welche aktiviert wird, wenn der Joystick gedrückt wird
def joystickCallbackPressed(pressed):
print("Pressed: " + str(pressed))
print("")
# Die Funktion welche aktiviert wird, wenn der Joystick bewegt wird
def joystickCallbackPosition(x, y):
print("Position X: " + str(x))
print("Position Y: " + str(y))
print("")