Alfred/tempo/dona/archive/app.py_sans_audio
2025-11-11 13:38:25 +01:00

64 lines
1.4 KiB
Plaintext

#LED
from apa102 import APA102
#BOUTON
import RPi.GPIO as GPIO
import time
# Initialisation des LEDs
num_leds = 12
led = APA102(num_led=num_leds)
# Initialisation Bouton
BUTTON = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(BUTTON, GPIO.IN)
etat = {'mute': False}
## LED
def set_couleur(couleur):
couleur = couleur.upper()
# Dictionnaire des couleurs
couleurs_rgb = {
'R': (255, 0, 0), # Rouge
'V': (0, 255, 0), # Vert
'B': (0, 0, 255), # Bleu
'J': (255, 255, 0), # Jaune
'VI': (128, 0, 128), # Violet
'RO': (255, 105, 180), # Rose
'O': (255, 165, 0), # Orange
}
rgb = couleurs_rgb.get(couleur, (0, 0, 0)) # Éteindre si couleur inconnue
for i in range(num_leds):
led.set_pixel(i, *rgb)
led.show()
def eteindre_led():
set_couleur("") # Couleur inconnue → éteint
def cleanup_led():
led.cleanup()
##BOUTON
# Bascule mute/unmute
def toggle_mute(channel):
etat['mute'] = not etat['mute']
if etat['mute']:
set_couleur('VI') # Rouge = mute
else:
set_couleur('') # Vert = unmute
# Event du bouton préssé
GPIO.add_event_detect(BUTTON, GPIO.FALLING, callback=toggle_mute, bouncetime=300)
try:
while True:
time.sleep(1) # Le programme tourne sans rien faire
except KeyboardInterrupt:
print("Nettoyage GPIO")
cleanup_led()
GPIO.cleanup()