Flera inputs från fysiska knappar (Raspberry Pi)?
Vad jag försöker åstadkomma är något i stil med digitaltrummor, just nu dock bara på test- och forskningsstadium. Jag har för ett tag sedan slaktat en gamepad för PC (via USB) och lött bort L/2 och R/2 (alltså två bitar med två kapacitiva ytor vardera). Det går tre sladdar från varje: en för x1, en för x2 och en jord. Jag har lyckats koppla ihop en knapp från varje "sida" i Pi:n, frågan är dock hur man kan få alla fyra att fungera. Alltså hur (om) man kan använda samma GND för olika inputs. Om inte, kan jag helt enkelt skrapa upp lite koppar på kretskortet och löda fast en sladd därifrån?
Sedan är jag inte på det fulla med hur man ska få in detta i Python. Jag har testat följande:
GPIO.setmode(GPIO.BCM)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP)
och sedan:
while True:
if GPIO.input(24) == False:
print("hitting snare")
if GPIO.input(25) == False:
print("kicking bass")
time.sleep(0.2)
men även:
def playBass(channel):
print("kicking bass")
def playSnare(channel):
print("hitting snare")
GPIO.add_event_detect(24, GPIO.RISING, callback=playSnare)
GPIO.add_event_detect(25, GPIO.RISING, callback=playBass)
while True:
print("hej")
time.sleep(0.2)
Dock verkar inget av dessa två kodsnuttar fungera ordentligt. I det första exemplet (polling) funkar det bara ibland när man trycker på knappen. I det andra exemplet skriver den ut "kicking bass" (eller om det var tvärt om), oavsett vilken knapp man trycker på.
Dessutom är det väldigt hög latens. Läste någonstans om att använda Arduino för input som i sin tur är kopplad till Pi:n, varav detta?
Hoppas du förstår vad jag menar =).
:)