bananenkeyboard/Pi/s.py

56 lines
1.3 KiB
Python
Raw Normal View History

2020-01-22 23:14:14 +00:00
#!/usr/bin/python3
import serial
import pygame
pygame.mixer.pre_init(buffer=32)
pygame.init()
pygame.mixer.quit()
pygame.mixer.init(buffer=32)
2020-06-29 22:11:07 +00:00
#SoundC = pygame.mixer.Sound('ogg/C3v16.ogg')
#SoundA = pygame.mixer.Sound('ogg/A3v16.ogg')
#SoundFF = pygame.mixer.Sound('ogg/F#3v16.ogg')
SoundC = pygame.mixer.Sound('guitar/guitar_C4_very-long_forte_normal.wav')
SoundD = pygame.mixer.Sound('guitar/guitar_D4_very-long_forte_normal.wav')
SoundE = pygame.mixer.Sound('guitar/guitar_E4_very-long_forte_normal.wav')
2020-01-22 23:14:14 +00:00
# port = serial.Serial("/dev/ttyS0", baudrate=115200, timeout=.001)
port = serial.Serial("/dev/ttyS0", baudrate=115200)
2020-06-29 21:41:53 +00:00
# port = serial.Serial("/dev/ttyAMA0", baudrate=115200)
2020-01-22 23:14:14 +00:00
2020-06-29 21:41:53 +00:00
oldrcv = port.read()
2020-01-22 23:14:14 +00:00
while True:
# rcv decodieren
rcv = port.read()
2020-06-29 21:41:53 +00:00
# Zustand merken, und nur "neu" starten, wenn sich etwas von 0 auf 1 veraendert hat.
2020-06-29 22:11:07 +00:00
if rcv[0] & ( 1 << 2 ) :
if not oldrcv[0] & ( 1 << 2 ):
print("1");
SoundE.stop()
SoundE.play()
else:
SoundE.stop()
rcvstate0 = False
2020-01-22 23:14:14 +00:00
if rcv[0] & ( 1 << 1 ) :
2020-06-29 21:41:53 +00:00
if not oldrcv[0] & ( 1 << 1 ):
print("1");
2020-06-29 22:11:07 +00:00
SoundD.stop()
SoundD.play()
2020-01-22 23:14:14 +00:00
else:
2020-06-29 22:11:07 +00:00
SoundD.stop()
2020-06-29 21:41:53 +00:00
rcvstate0 = False
2020-01-22 23:14:14 +00:00
2020-06-08 18:55:44 +00:00
if rcv[0] & ( 1 << 0 ) :
2020-06-29 21:41:53 +00:00
if not oldrcv[0] & ( 1 << 0 ):
print("0");
2020-06-29 22:11:07 +00:00
SoundC.stop()
SoundC.play()
2020-01-22 23:14:14 +00:00
else:
2020-06-29 22:11:07 +00:00
SoundC.stop()
2020-01-22 23:14:14 +00:00
2020-06-29 21:41:53 +00:00
oldrcv = rcv