240 lines
5.3 KiB
Python
240 lines
5.3 KiB
Python
import board
|
|
import neopixel
|
|
import pygame
|
|
import time
|
|
import os
|
|
import RPi.GPIO as GPIO
|
|
|
|
# Initiera Pygame
|
|
pygame.init()
|
|
|
|
|
|
# https://electropeak.com/learn/tutorial-raspberry-pi-gpio-programming-using-python-full-guide/
|
|
|
|
#initiera LED-strip med 300 led
|
|
num_of_pixels = 300
|
|
pixels = neopixel.NeoPixel(board.D21, num_of_pixels)
|
|
|
|
|
|
#resetta alla IO
|
|
GPIO.setmode(GPIO.BCM)
|
|
GPIO.setup(21, GPIO.OUT)
|
|
GPIO.output(21, 0)
|
|
GPIO.setmode(GPIO.BCM)
|
|
GPIO.setup(40, GPIO.OUT)
|
|
GPIO.output(40, 0)
|
|
|
|
#slå på nr 0,1,299 led
|
|
pixels.fill((0,0,0)) # stäng av alla LED
|
|
pixels.show() # stäng av alla LED
|
|
|
|
|
|
def setpixel(r,g,b,nr):
|
|
pixels[nr] = (r,g,b)
|
|
pixels.show()
|
|
|
|
|
|
def spela_ljud(filnamn):
|
|
pygame.mixer.init()
|
|
pygame.mixer.music.load(filnamn)
|
|
pygame.mixer.music.set_volume(1.0)
|
|
pygame.mixer.music.play()
|
|
|
|
|
|
|
|
|
|
pygame.mixer.init()
|
|
pygame.mixer.music.load("ljud.mp3")
|
|
pygame.mixer.music.set_volume(1.0)
|
|
pygame.mixer.music.play()
|
|
|
|
|
|
# Initiera joystickar
|
|
pygame.joystick.init()
|
|
|
|
# Kontrollera antalet anslutna joystickar
|
|
joystick_count = pygame.joystick.get_count()
|
|
|
|
|
|
if joystick_count < 2:
|
|
print("Mindre än två joystickar anslutna. Kontrollera anslutningarna.")
|
|
pygame.quit()
|
|
exit()
|
|
|
|
# Anslut till de första två joystickarna
|
|
joystickB = pygame.joystick.Joystick(0)
|
|
joystickC = pygame.joystick.Joystick(1)
|
|
joystickA = pygame.joystick.Joystick(2)
|
|
|
|
joystickA.init()
|
|
joystickB.init()
|
|
joystickC.init()
|
|
|
|
|
|
spela_ljud("ljud.mp3")
|
|
|
|
pixels.fill((0,0,0)) # stäng av alla LED
|
|
pixels.show() # stäng av alla LED
|
|
|
|
|
|
#definiera en funktion per knapp
|
|
def JB_knapp_0():
|
|
print ("Joystick B, Knapp 1")
|
|
setpixel(255,255,255,10)
|
|
setpixel(255,255,255,11)
|
|
|
|
def JB_knapp_1():
|
|
print ("Joystick B, Knapp 2")
|
|
setpixel(255,255,255,14)
|
|
setpixel(255,255,255,15)
|
|
|
|
def JB_knapp_2():
|
|
print ("Joystick B, Knapp 3")
|
|
setpixel(255,255,255,18)
|
|
setpixel(255,255,255,19)
|
|
|
|
def JB_knapp_3():
|
|
print ("Joystick B, Knapp 4")
|
|
|
|
def JB_knapp_4():
|
|
print ("Joystick B, Knapp 5")
|
|
|
|
def JB_knapp_5():
|
|
print ("Joystick B, Knapp 6")
|
|
|
|
def JB_knapp_6():
|
|
print ("Joystick B, Knapp 7")
|
|
|
|
def JB_knapp_7():
|
|
print ("Joystick B, Knapp 8")
|
|
pixels.fill((0,0,0)) # stäng av alla LED
|
|
pixels.show() # stäng av alla LED
|
|
|
|
def JB_knapp_8():
|
|
print ("Joystick B, Knapp 9")
|
|
|
|
|
|
def JB_knapp_9():
|
|
print ("Joystick B, Knapp 10")
|
|
|
|
def JB_knapp_10():
|
|
print ("Joystick B, Knapp 11")
|
|
|
|
def JB_knapp_11():
|
|
print ("Joystick B, Knapp 12")
|
|
|
|
|
|
def JA_knapp_0():
|
|
print ("Joystick A, Knapp 1")
|
|
|
|
def JA_knapp_1():
|
|
print ("Joystick A, Knapp 2")
|
|
|
|
def JA_knapp_2():
|
|
print ("Joystick A, Knapp 3")
|
|
|
|
def JA_knapp_3():
|
|
print ("Joystick A, Knapp 4")
|
|
|
|
def JA_knapp_4():
|
|
print ("Joystick A, Knapp 5")
|
|
|
|
def JA_knapp_5():
|
|
print ("Joystick A, Knapp 6")
|
|
|
|
def JA_knapp_6():
|
|
print ("Joystick A, Knapp 7")
|
|
|
|
def JA_knapp_7():
|
|
print ("Joystick A, Knapp 8")
|
|
|
|
def JA_knapp_8():
|
|
print ("Joystick A, Knapp 9")
|
|
|
|
def JA_knapp_9():
|
|
print ("Joystick A, Knapp 10")
|
|
|
|
def JA_knapp_10():
|
|
print ("Joystick A, Knapp 11")
|
|
|
|
def JA_knapp_11():
|
|
print ("Joystick A, Knapp 12")
|
|
|
|
|
|
def JC_knapp_0():
|
|
print ("Joystick C, Knapp 1")
|
|
|
|
def JC_knapp_1():
|
|
print ("Joystick C, Knapp 2")
|
|
|
|
def JC_knapp_2():
|
|
print ("Joystick C, Knapp 3")
|
|
|
|
def JC_knapp_3():
|
|
print ("Joystick C, Knapp 4")
|
|
|
|
def JC_knapp_4():
|
|
print ("Joystick C, Knapp 5")
|
|
|
|
def JC_knapp_5():
|
|
print ("Joystick C, Knapp 6")
|
|
|
|
def JC_knapp_6():
|
|
print ("Joystick C, Knapp 7")
|
|
|
|
def JC_knapp_7():
|
|
print ("Joystick C, Knapp 8")
|
|
|
|
def JC_knapp_8():
|
|
print ("Joystick C, Knapp 9")
|
|
|
|
def JC_knapp_9():
|
|
print ("Joystick C, Knapp 10")
|
|
|
|
def JC_knapp_10():
|
|
print ("Joystick C, Knapp 11")
|
|
|
|
def JC_knapp_11():
|
|
print ("Joystick C, Knapp 12")
|
|
|
|
|
|
|
|
|
|
#knappfunktioner
|
|
|
|
knappfunktioner_JA = [JA_knapp_0,JA_knapp_1,JA_knapp_2,JA_knapp_3,JA_knapp_4,JA_knapp_5,JA_knapp_6,JA_knapp_7,JA_knapp_8,JA_knapp_9,JA_knapp_10,JA_knapp_11]
|
|
knappfunktioner_JB = [JB_knapp_0,JB_knapp_1,JB_knapp_2,JB_knapp_3,JB_knapp_4,JB_knapp_5,JB_knapp_6,JB_knapp_7,JB_knapp_8,JB_knapp_9,JB_knapp_10,JB_knapp_11]
|
|
knappfunktioner_JC = [JC_knapp_0,JC_knapp_1,JC_knapp_2,JC_knapp_3,JC_knapp_4,JC_knapp_5,JC_knapp_6,JC_knapp_7,JC_knapp_8,JC_knapp_9,JC_knapp_10,JC_knapp_11]
|
|
|
|
|
|
try:
|
|
while True:
|
|
# Hämta alla händelser
|
|
for event in pygame.event.get():
|
|
if event.type == pygame.JOYBUTTONDOWN:
|
|
if event.joy == 0:
|
|
knapp = event.button
|
|
print(f"Joystick B ,- Knapp {event.button} trycks ned.")
|
|
knappfunktioner_JB[knapp]()
|
|
if event.type == pygame.JOYBUTTONDOWN:
|
|
if event.joy == 1:
|
|
knapp = event.button
|
|
print(f"Joystick C - Knapp {event.button} trycks ned.")
|
|
knappfunktioner_JC[knapp]()
|
|
if event.type == pygame.JOYBUTTONDOWN:
|
|
if event.joy == 2:
|
|
knapp = event.button
|
|
print(f"Joystick A - Knapp {event.button} trycks ned.")
|
|
knappfunktioner_JA[knapp]()
|
|
|
|
# Pausa lite för att inte överbelasta processorn
|
|
time.sleep(0.01)
|
|
|
|
except KeyboardInterrupt:
|
|
print("Avslutar programmet.")
|
|
|
|
finally:
|
|
#Terminering
|
|
pixels.fill((0,0,0)) # stäng av alla LED
|
|
pixels.show() # stäng av alla LED
|
|
pygame.quit()
|