bananenkeyboard/README.md

2.5 KiB

bananenkeyboard

Resistive touch sensors to sound by touching the probes or things connected to them.

When creating a new Raspian OS minimal, after login (ssh) proceed with these steps:

  1. sudo apt update
  2. sudo apt upgrade
  3. sudo apt -y install git python3-pip libsdl-mixer1.2
  4. git clone https://repos.ctdo.de/interfisch/bananenkeyboard/
  5. pip3 install pyserial pygame
  6. sudo cp ~/bananenkeyboard/piconfig/config.txt /boot/config.txt
  7. chmod u+x ~/bananenkeyboard/Pi/s.py

Starten mit

cd ~/bananenkeyboard/Pi

python3 ./s.py

Konvertieren und Stille herauskürzen aus Samples:

for file in *.mp3; do ffmpeg -i ${file} -af silenceremove=1:0:-30dB ${file/mp3/wav} -y; done

Als Quelle haben wir zB https://philharmonia.co.uk/resources/sound-samples/

TODO

  • USB-Stick mit Samples anschließen, welche dann den "Standard" überschreiben
  • Knopf, welcher die Empfindlichkeit einstellt. Realisiert über einen Knopf am Arduino. (An einem der Digitaleingänge). Wechselt dann zwischen "ein paar" Einstellungen der Empfindlichkeit durch.
  • Daisy-Chaining Powerbank erforderlich? (Nicht wirklich zwingend, aber nice to have)
  • Pi auf Readonly umbauen, damit ein Abschalten über ein "Stecker raus" funktioniert

Herausforderungen und Ansätze

  • Manchmal springt der Eingangswert für einen Eingang auf 100 ("berührt"), obwohl keine Verbindung vorhanden ist. Er erholt sich nach einiger Zeit wieder (wenige Sekunden) und zeigt wieder korrekt >1000 ("unberührt") an. Das Zurückspringen passierte ohne Interaktion von außen.
  • A0 und GND direkt am Arduino gemessen zeigt aber weiterhin den hohen Wert an, nur der Arduino misst einen niedrigen
    • RPD verringert (Pull-Down zwischen den Transistoren) von 1M auf 470k - kein Effekt
    • BAV99 (D0) Diode ausgelötet - kein Effekt. Allerdings ist beim Messen von Eingang zu GND eine negative Spannung zu sehen
    • Touch-Eingang Pull-Down 1.5M - Nichts berührt verbleibt bei hohem Wert (daher eine gute Idee, sollte umgesetzt werden) - kein Effekt für das Problem
    • Kabel entfernt - Effekt konnte nicht beobachtet werden. Kabel dran (1m Krokolkemmenkabel) - Effekt wieder da
  • Resultat: Die Erdung hat gefehlt. Galvanisch getrenntes Netzteil und somit keine definierte Erde für den Arduino und den Raspberry Pi. Lösung ist daher, ein Erdungskabel anzuschließen, danach trat der Effekt nicht mehr auf.

Aktuelles TODO

  • Widerstand an die Touch-Eingänge: 1M5R nach GND (jeweils, 8 Stück insgesamt)
  • GND-Kabel aus dem Gehäuse herausführen