Resistive touch sensors to sound by touching the probes or things connected to them.
Go to file
starcalc 833094a27d Pi im Standard und Ausgabe verschönert 2022-02-27 15:32:47 +00:00
Pi Pi im Standard und Ausgabe verschönert 2022-02-27 15:32:47 +00:00
backup redraw box in inkscape 2022-01-04 18:55:11 +01:00
piconfig copy files from pi3 2020-06-08 20:55:44 +02:00
touchcircuit fix swapped resistor silkscreen 2020-06-08 23:55:53 +02:00
touchcontroller make more sensitirve 2022-01-15 13:36:55 +01:00
.gitignore Auto-Generated Files excluded 2022-01-13 18:15:58 +01:00
Bananenkeyboard.code-workspace Folders, Extensions 2022-01-13 18:14:54 +01:00
README.md Update 'README.md' 2022-02-26 15:40:36 +00:00
plexibox.svg add text to backside 2022-02-23 18:13:16 +01:00

README.md

bananenkeyboard

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

Install

  • Raspberry Pi OS Lite
  • Release date: January 28th 2022
  • System: 32-bit
  • Kernel version: 5.10
  • Debian version: 11 (bullseye)

Remember to activate "ssh" before booting first (touch "/boot/ssh" on the MicroSD-card)

After login (ssh) proceed with these steps:

  1. sudo apt update
  2. sudo apt upgrade
  3. sudo apt -y install git python3-pip libsdl2-mixer-2.0-0
  4. git clone https://repos.ctdo.de/interfisch/bananenkeyboard/
  5. pip3 install pyserial pygame
  6. sudo sh -c 'echo "\n[all]\nenable_uart=1\n" >>/boot/config.txt'
  7. chmod u+x ~/bananenkeyboard/Pi/s.py

Starten mit

cd ~/bananenkeyboard/Pi

python3 ./s.py

Bekannte funktionierende Konfiguration

  • python3.7.3
  • pygame 1.9.6
  • libsdl-mixer1.2

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