Kapazitive Touchscreens sind in heutzutage ein Standard, jedoch sieht es bei kapazitiven Sensoren und Touchpads ein wenig anders aus. Vor allem im Bastler Bereich ist es schwer Berührungen über kapazitiven Touch zu erkennen.
Ein sehr praktisches Erweiterungsboard (Hat) für den Raspberry Pi ist der „Pi Cap“ von Bare Conductive. Dieses bietet 12 kapazitive Eingänge, welche separat genutzt werden können, um bspw. einen Touchschalter oder ein DJ-Pult zu erstellen.
Zubehör
Das Pi Cap Erweiterungsboard ist mit allen Raspberry Pi’s, die 40 GPIO Pins haben, kompatibel. Um es auszuprobieren und etwas damit herumzuspielen, eignet sich folgende Konfiguration:
- Raspberry Pi
- Pi Cap Hat
- Krokodilklemmen
- Aluminiumfolie
Dazu bietet der Pi Cap einen Soundausgang, der sehr viel besser ist, als die Standardvariante des Raspberry Pi’s. Außerdem können kleine Schaltungen, wie auf einem Breadboard, direkt darauf nach gebaut werden – ob aufgesteckt oder verlötet bleibt dir überlassen.
Was genau ist kapazitiver Touch?
Kapazitive Sensoren können Berührungen anhand der Veränderung der elektrischen Kapazität feststellen. Im Gegensatz zu üblichen (analogen) Sensoren ist es nicht nötig, dass z.B. ein Schalter gedrückt wird – eine Berührung reicht aus. Da unsere Haut leitfähig ist, wird die Kapazität bei Berührung des Sensors verändert. Je größer die Fläche, die den Sensor berührt, umso größer ist der messbare Effekt.
Was man dafür braucht ist eine leitbare Fläche – wie bspw. Alufolie. Verbindet man diese nun mittels Krokodilklemmen an den Pi Cap, kann dieser die Berührung erkennen und wir mittels Code darauf reagieren.
Einrichtung und Beispielprojekte des Pi Cap
Die Macher des Pi Cap Hats haben bereits einige schöne Beispielprojekte auf Ihrer Seite gezeigt. Im Grunde können alle möglichen kapazitiven Sensoren ausgelesen werden, oder mittels Alufolie selbst gebaut werden.
Es wird dabei nicht einfach nur binär erkannt, ob eine Berührung statt fand, sondern bspw. wie „stark“. Dies ist sehr illustrativ in diesem Video verdeutlicht, in dem am oberen und unteren Ende kapazitive Flächen angebracht wurden und somit das Spiel Pong nachgebaut wurde.
Raspberry Pi Touch DJ Pult
Ein sehr einfaches Projekt, dass die Funktionsweise des kapazitiven Touchs einfach verständlich macht, ist das Touch DJ Pult zum selber bauen.
Dazu braucht man lediglich eine Unterlage (Pappe/Holz), Alufolie und ein paar Kabel (Krokodilklemmen).
Erstelle 12 kleine Felder aus Alufolie (alle voneinander getrennt) und verbinde jeweils ein Feld mit einem Port auf dem Pi Cap.
Nun installieren wir per SSH die benötigten Tools (ggf für Python3 anpassen):
sudo apt-get install python-dev wiringpi python-pygame picap
Anschließend können wir das Projekt klonen und bereits loslegen:
git clone https://github.com/BareConductive/picap-touch-mp3-py cd picap-touch-mp3-py
Starte es mit:
sudo python touch-mp3.py
Beim Berühren eines der Alufolien-Felder wird ein Sound ausgelöst. Diese Sounds sind nicht bereits vorhanden und müssen von und in den Ordner „tracks“ angelegt werden.
Ich habe dazu eine Kolletktion von 12 Tracks angelegt, die hier heruntergeladen werden können.
Schalterlose Taster
Identisch zum Touch DJ Pult können wir natürlich auch andere Aktionen ausführen, wie zum Beispiel Lichtschalter, die durch Berührung aktiviert oder deaktiviert werden.
Dazu ist das Prinzip gleich – es wird geprüft ob eine Berührung statt fand (anliegender Wert muss größer als ein Schwellwert sein) und danach wird eine Aktion ausgeführt. Wenn man sich den Zustand einer Lampe speichert, kann man dann bei Berührung des Touch-Schalters den gegenteiligen Zustand setzen und somit die Lampe an- oder ausschalten.
Roboter Projekt – Fingerbewegung nachstellen
Im folgenden Video wird gezeigt, wie die Nutzung des Pi Cap in Kombination mit einem Roboter Greifarm aussehen kann. Dazu wird ein Handschuh genutzt, um die Bewegung auf den Greifarm zu übertragen. Hierbei wurde der Finger mit dem Pi Cap verbunden. Beim Schließen
Welche weiteren Projekte fallen euch spontan ein oder gibt es bereits jemanden, der das Board nutzt? Ich finde es sehr interessant, da man damit auch im Bereich Heimautomatisierung einiges anstellen kann.
Ein Kommentar
cool! bin gerade daran ein touchpanel für meine heimautomatisierung zu basteln. kannst du mir kurz erläutern, wie ich den gegenteiligen zustand setze, denn im moment löscht das licht wieder beim loslassen des kontaktes. wäre echt klasse, wenn da jemand weiterhelfen könnte… 🙂
danke sehr!
# set the thresholds
sensor.set_touch_threshold(touch_threshold)
sensor.set_release_threshold(release_threshold)
signal.signal(signal.SIGINT, signal_handler)
switchState = ‚false‘
while True:
if sensor.touch_status_changed():
sensor.update_touch_data()
for i in range(12):
if sensor.is_new_touch(i):
print „electrode {0} was just touched“.format(i)
move(i)
elif sensor.is_new_release(i):
print „electrode {0} was just released“.format(i)
stop(i)
sleep(0.01)
GPIO.cleanup()