Mit dem Joystick kannst du einfach verschiedene Positionen messen. Es gibt dabei 3 verschiedene Werte die Interessant sind mit VRx und VRy kannst messen wo sich der Joystick befindet.

Zum Anschließen, für dieses Projekt brauchst du einen angeschlossenen MCP3008.

Anschlüsse MCP3008/PiAnschlüsse Joystick
GNDGND
3,3VVCC / 5V
VRyCH0
VRxCH1
SWGPIO 16

Python

#!/usr/bin/python
import spidev
import time
import os
import RPi.GPIO as gpio

# SPI Verbindung herstellen
spi = spidev.SpiDev()
spi.open(0,0)

btnSW = 16
gpio.setmode(gpio.BCM)
gpio.setup(btnSW, gpio.IN,pull_up_down=gpio.PUD_UP)

# Liest Daten vom MCP3008
def analogEingang(channel):
  adc = spi.xfer2([1,(8+channel)<<4,0])
  data = ((adc[1]&3) << 8) + adc[2]
  return data

while True:
  print("VRy: "+str(analogEingang(0)))
  print("VRx: "+str(analogEingang(1)))
  print("SW: "+str(gpio.input(btnSW)))
  time.sleep(0.2)

Wenn beide werte ungefähr bei 500 sind befindet sich der Joystick in der Ausgangsposition ganz Oben. Wenn du den Joystick zur Seite Runterdrück wo sich die Kabel befinden (Seite 1) dann sollte der Wert von VRy ungefähr 0 sein. Wenn der Joystick sich auf der Seite 3 befinden liegt der Wert bei ca. 1024. Das Gleiche ist auch mit den Werten bei VRx. Wenn der Joystick auf der Seite von 2 ist liegt der Wert bei Quaise 0 und bei Seite 4 bei ca. 1024. Wenn der Joystick z.B. in die Ecke runter gedrückt wer zwischen Seite und 2 sollte beide Werte ca. 0 liegen. Dadurch lässt sich messen so sich der Joystick befindet. Mit SW lässt sich messen ob der Joystick runtergedrückt wurde. Da es sich dabei um einen Taster handelt können wir den ganz Normal an einem GPIO Pin anschließen.