Touch Sensor zum Abschalten des Display

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hi


    Bevor ich zu meiner Frage komme, erstmal die Hardware:

    - Pi 3b+

    - 7 Zoil Touchscreen plus Gehäuse


    Gibt es eine Möglichkeit an dem Gehäuse ein Touchsensor anzubringen, dass ich darüber das Display bei Berührung an- und ausschalten kann? Ähnlich einer Wetterstation, wo man oben auf das Gehäuse tippt und das Display geht aus und bei erneuter Berührung wieder an :)

  • Moinsen


    Befrage mal deine Suchmaschine des Vertrauens nach "elektrostatischer Bewegungssensor". Diese eigentlich einfache Grundschaltung kann man vom Ausgangssignal via eines Comparator-Vergleichers so einstellen, das man die Annährungsentfernung an ein Objekt bis auf wenige cm festlegen kann. Ein direktes Berühren muss damit nicht zwanghaft stattfinden. Der Rest ist SW, das du einen PIN.IRQ verwendest um dein Display einzuschalten. Wie du das ganze dann wieder abschalten willst, bleibt dir überlassen ;)

    Franky

  • Ok, ich habe nach "elektrostatischer Bewegungssensor", " Comparator" und "PIN.IRQ" gesucht und nur ein Teil davon verstanden ;) Bzw. unter "elektrostatischer Bewegungssensor" habe ich nur Infrarot Sender Module gefunden. Das technische ist nicht ganz so meins. Aber ich kann gut mit Anleitungen arbeiten ;)

  • Moinsen

    unter "elektrostatischer Bewegungssensor" habe ich nur Infrarot Sender Module gefunden.

    Dann sollte man nicht die manipulative Suchmaschine verwenden, welche auch für das Spionage- System Andriod sorgt !

    schon im zweiten Suchergebnis wird man bei einem Mitbewerber wird man zu einer Webseite verlinkt, welches sich mit diesem Problem gleich mehr beschäftigt. Diese Schaltung muss man nicht mit 9 Volt betreiben, sie funktioniert auch adaptiert mit 5 Volt, welche aus einem RasPi entnommen werden kann. - Ups. Aber es gibt auch Versionen und Varianten welche mit dem Timerbaustein NE555 arbeiten, oder einen Darlington-Transistor verwenden. Es ist nur eine Abstimmungsfrage, welche von deinem Gehäusematerial abhängig ist. Der nachgeschaltete ext. Comparator als Sonderform eines OPVs oder einen speziellen OPV Beschaltungsvariante dient nur dazu die Empfindlichkeit entsprechend einzustellen. ( Diese Schaltungen können so empfindlich eingestellt werden, das in einigen Metern Entfernung sogar eine Personenbewegung hinter einer Hauswand sicher detektiert werden können, und kommen auch bei Alarmanlagen zum Einsatz. Hier muss man sich halt, wenn man auf das berühmte "Knöpfchen" verzichten will, etwas experimentell an die Sache heranwagen. -> Ebenso gibt es bei Conrad [Elektronikversender] diese Weihnachtsbaukästen, wo diese Schaltungen schon mehrfach als Bastelgadget genutzt wurden ! Man muss halt sich nicht nur auf das Wort Bewegungsmelder konzentrieren, und auch nicht gleich die erste und wohl vermeintlich erste Suchlösung als den alleinigen Ansatz ansehen )


    Aber auch bei einer Comparatorschaltung wird man hier bei der Bildersuche sofort und auf der ersten Seite, mit einem vollständigen Schaltplan fündig, welchen man nur anpassen muss.



    Auch wieder ups.

    Und wenn man Pin.IRQ mit der additiven Sucherweiterung "RasPi" nutzt oder anfragt, gelangt man zur verschiedenen Seiten welche u.a. auch auf RPi.GPIO als einen Lösungsweg drauf aufmerksam macht. So das man keine Dauerabfrageschleife programmieren muss, sondern nur einen solchen IRQ Event initiieren muss, welcher dann auf einen Pegeländerung am betreffenden GPIO Pin reagiert, und die entsprechende Funktion ausführt.
    Und selbst hier im Forum, wenn man in die Kategorien GPIO & Elektrotechnik und in Python schaut wird man gleich mehrfach fündig.

    Franky

  • Hallo,

    Gibt es eine Möglichkeit an dem Gehäuse ein Touchsensor anzubringen

    Ist zwar in dem Shop ausverkauft, aber hardwareseitig gibt es sowas:

    https://www.berrybase.de/ttp22…ouch-sensor/taster?c=2446


    Oder brauchst du eher softwareseitig Unterstützung?


    Grüße

    Dennis

    🎧 Mein Auto springt, mein Toaster kocht, es zwickt mich im Genick. Meine Frau ist eingelocht, die Spülmaschine tickt. Meine Telefonapperat brüllt mich seit Tagen an, er ist schon lange abgestellt im Bett liegt Peter Pan. Die Uhr geht falsch, die Haustür singt, mein Spiegel schlägt zurück - Ich werde noch verrückt, was solls ich bin entzückt. Die Badewanne zieht nicht ab ihr glaubt nicht was ich seh' - Sie ist voll Himbeerengelee 🎧

  • Damit kann ich doch was anfangen, danke :) Software seitig ist mr das zu umständlich. Hintergrund ist der, dass auf dem Pi ein Magic Mirror² als Wetterstation läuft. Das Display soll aber nicht ständig an sein, sondern nur bei Bedarf. Wenn ich also wissen will, wie das Wetter gerade ist. Und das muss ich nicht rund um die Uhr wissen und sehen ;)

    Benötige ich sonst noch irgendwas dazu oder kann ich das einfach auf das Pi Board stecken?!

    Edited once, last by Westpole ().

  • Man könnte auch einen Distanzsensor einsetzen: https://www.amazon.de/gp/product/B082HZHGQM (Affiliate-Link)

    Wenn man dann die Hand vorhält, kann man Softwaremäßig das Display Ein-/Ausschalten.


    Ich würde aber auch lieber einen TouchSensor haben wollen. Ich würde das einfach mit einem ESP32 oder RP Pico machen.

    Für den RP Pico gibt es ein bisschen Assembler, der aus jeden Pin einnen TouchPin machen kann.

    Code gibt es hier: https://github.com/AncientJames/jtouch/blob/main/jtouch.py

    Beim ESP32 kann man einfach die Klasse TouchSensor nutzen.


    Dieser könnte dann mit einem GPIO das Display Ein-/Ausschalten. Aber dafür müsste dann noch ein Programm auf dem RPi laufen, dass dann die Aktion ausführt. Der Nachteil ist dann, dass man dann neben dem RPi noch einen Mikrocontroller hat.

  • Könnte ich mich dabei an diese Anleitung halten? Wobei ich kein LED benötige. Also....ESP32 Board, Breadboardkabel männlich/ weiblich und Micro USB Datenkabel? Wie wird denn hingegen der RP Pico am Raspberry angeschlossen?

  • Man könnte nach der Anleitung vorgehen. Wie im Kommentar vorgeschlagen, kann man das mit dem ESP32 ohne zusätzliche Hardware.


    Hier der Link: https://randomnerdtutorials.co…2-touch-pins-arduino-ide/

    Bei RP Pico geht das auch mit dem PIO-Code.


    Aber das wäre nur die halbe Lösung. Du möchtest das Display dimmen, also muss der RPi nach dem Berühren ein Befehl ausführen, um das Display zu dimmen.


    Man kann nach sysfs schreiben, um die Helligkeit des Displays einzustellen:

    Bash
    echo 127 | sudo tee /sys/class/backlight/rpi_backlight/brightness

    Dann sollte das Display die halbe Helligkeit haben. Man könnte es auch in Schritten dimmen.

    Bash: als root
    for brightness in `seq 255 -1 127`; do
        echo $brightness > /sys/class/backlight/rpi_backlight/brightness
        sleep 0.002
    done


    Testen kann ich es nicht, da kein Display vorhanden ist.

    Wenn man z.B. mit Shell Scripts arbeiten möchte, kann man gpiod verwenden.

    Code
    apt-get install gpiod

    Dann man mit gpiomon arbeiten, um Eingänge auf Änderungen zu überwachen:

    Der Microcontroller kann dann extern den GPIO des RPi ansteuern und der RPi reagiert dann auf die steigende Flanke und führt die Schleife aus. Die Masse des ESP32 und des RPi müssen miteinander verbunden sein. Der ESP32 sollte nicht über den RPi eingespeist werden. Ggf. über das Netzteil des Displays.


    Besser wäre es nur mit dem RPi, ohne externen Mikrocontroller. Bisher habe ich noch nichts gefunden, dass aus ordinären GPIO des RPi TouchPins macht. Also Eingänge, die auf Veränderungen der Kapazität reagieren. Ich hatte heute zum ersten Mal gelesen, wie das ungefähr funktioniert.


    Eine andere Möglichkeit wären noch Touch-Switches, die ein digitales Signal bei Erreichen eines Grenzwertes (Berührung) ausgeben.

    Das wäre gewissermaßen das in Hardware, was man mit dem Mikrocontroller selbst programmieren kann.


    Weitere Möglichkeit: Software. Beim Plasma-Desktop (hat der RPi nicht, ist auch zu fett) gibt es die Möglichkeiten die Ecken des Bildschirms mit Befehlen zu belegen. Oben Links wechselt z.B. in die Übersicht aller geöffneten Anwendungen mit Fenster. Das kann man benutzen, um dann andere Aktionen auszuführen. Vielleicht weiß jemand anderes, ob es speziell für den RPi mit dem installierten Desktop ein Tool gibt, mit dem man auf dem Bildschirm Ecken definieren kann, die dann den Bildschirm dimmen.

  • Vielen Dank schonmal bis hierher 🙂

    Is das, dass richtige Board? Ach ja... Und brauche ich dazu dieses Breadboard? Das sehe ich immer in diversen Videos/ Anleitungen. Oder lässt sich das eps Board oder der Touch Switch direkt auf den Pi stecken? Ihr merkt bestimmt schon....bin voll Fit in der Thematik 😁

    Edited once, last by Westpole ().



  • Ausgabe:

  • Kleines Update:


    Habe es geschafft an dem TTP223 die Kabel zu löten und habe diesen direkt mit dem Pi Verbunden (PIn 1, Pin 39 und Pin 40). Mit "sudo echo 1 > /sys/class/backlight/10-0045/bl_power" & "sudo echo 0 > /sys/class/backlight/10-0045/bl_power" kann ich per SSH Verbindung das Display Ein- und Ausschalten. Wie könnte ein passendes Script aussehen, welches die genannten Befehle nutzt sobald ich den Sensor berühre? Auch hier bin ich wieder ein absoluter noob ;)

  • Hi


    Ich habe den Code von dieser Seite übernommen: und entsprechend den GPIO angepasst:


    Wenn ich im Terminal "sudo python ~/displaystandby.py" eingebe, kommt folgende Meldung:

    Quote

    File "/***/****/displaystandby.py", line 16

    os.system('echo "1" > /sys/class/backlight/10-0045/bl_power')

    TabError: inconsistent use of tabs and spaces in indentation

    Kann mir jemand helfen, das Problem zu lösen? :)

  • Hättest Du mal den letzten Satz der Fehlermeldung in eine Suchmaschine deine Wahl eingegeben, würde die Antwort in etwa so lauten:


    " Python beschwert sich dass du sowohl Tabs als auch Leerzeichen als Einrückung verwendest. Du sollest nur eins von beiden verwenden, am besten nur Leerzeichen. "

  • Hi


    Danke für den Hinweis. Hab alles passend mit einem Editor gemacht und wenn ich im Terminal folgendes eingebe...


    Quote

    sudo python ~/displaystandby.py

    ...dann wird in einer Dauerschleife....


    Quote

    'Backlight Button Pressed...'

    angezeigt und der Bildschirm schaltet sich aus. Ich kann das Ganze dann auch nicht mehr beenden bzw. stoppen und muss den Stecker ziehen und den Pi neu starten. Was ist an dem Script falsch?

  • Ich kann das Ganze dann auch nicht mehr beenden bzw. stoppen und muss den Stecker ziehen und den Pi neu starten.

    Drücke da einfach die Tastenkombination: Strg + C ;)


    Was ist an dem Script falsch?

    So ziemlich alles, aber das werden Dir bestimmt noch andere User hier genauer erklären.