This commit is contained in:
starcalc 2022-02-27 15:33:08 +00:00
commit 652b217def
2 changed files with 30 additions and 21 deletions

View File

@ -15,11 +15,14 @@ Remember to activate "ssh" before booting first (touch "/boot/ssh" on the MicroS
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`
3. `sudo apt -y install git python3-pip libsdl2-mixer-2.0-0 usbmount screen`
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`
7. `sudo mkdir /etc/systemd/system/systemd-udevd.service.d`
8. `sudo sh -c 'echo "[Service]\nPrivateMounts=no" >/etc/systemd/system/systemd-udevd.service.d/00-my-custom-mountflags.conf'`
9. `chmod u+x ~/bananenkeyboard/Pi/s.py`
10. `sudo sh -c 'cp ~/bananenkeyboard/piconfig/rc.local /etc/rc.local'`
Starten mit
@ -27,10 +30,7 @@ Starten mit
`python3 ./s.py`
# Bekannte funktionierende Konfiguration
* python3.7.3
* pygame 1.9.6
* libsdl-mixer1.2
Das Skript wird durch den Schritt mit der `/etc/rc.local` automatisch nach Systemstart gestartet
# 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`
@ -39,19 +39,4 @@ 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

24
piconfig/rc.local Normal file
View File

@ -0,0 +1,24 @@
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
su -c 'screen -dmS banane bash' - pi
su -c 'screen -S banane -X stuff "cd /home/pi/bananenkeyboard/Pi/\n"' - pi
su -c 'screen -S banane -X stuff "python3 ./s.py\n"' - pi
exit 0