Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst GPIO Erfassung Keypad für Raspberry PI unter einem Bash Script Linux

Guten Tag,

ich stehe vor einem Problem und suche eine Lösung.

Ich möchte ein einfachen Script mit Dialog für einen PI schreiben:

Beispiel

Mein Problem ist es, ich möchte zur dem PI das 4x4 Keypad verwenden. Und die Tasten wie '*' als Enter und '#' als ESC anwenden. (Ich weiß zwar noch nciht wie, aber das ist mein Plan. )

Aus der nachfolgenden Seite habe ich den Script genommen.

https://codingworld.io/project/das-keypad

Und stelte fest, das Funktioniert so nicht.

Der Script für Keypad läuft für sich allein und hat mit Bash erst mal nichts zu tun. Dann habe ich überlegt, man könnte mit hohe Sicherheit auch über Bash das GPIO überwachen lassen, nur wie mache ich das?

Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Mitglied: Bitboy
12.02.2020 um 12:53 Uhr
Hi,

es ist zwar nicht genau klar was du zu tun versuchst aber GPIO kannst du über bash ganz einfach abfragen:
https://raspberrypi.stackexchange.com/questions/15283/how-to-get-the-sta ...

wiringpi bzw das gpio programm ist in rasbian vorinstalliert.


Grüße
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
12.02.2020 um 14:15 Uhr
Guten Tag Bitboy,

vielen Dank für deine Antwort.

es ist zwar nicht genau klar was du zu tun versuchst aber GPIO kannst du über bash ganz einfach abfragen:

Meine Absicht ist es die Tasten von Keypad unteranderem in das in das Passwort Feld zu übertragen, genau so wie in weiteren Menü mit Zifern 1-9 für die Vorauswahl zu arbeiten.

https://raspberrypi.stackexchange.com/questions/15283/how-to-get-the-sta ...
wiringpi bzw das gpio programm ist in rasbian vorinstalliert.

Mit dem Script bekomme ich leider keine Ausgabe.



Auch wenn ich jede einzelne Taste gedrückt halte und in der Konsole

eingebe. Bekomme ich immer nur 0 ausgegeben.

Viele Gürße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: Bitboy
LÖSUNG 12.02.2020 um 14:55 Uhr
Wenn du möchtest, dass dein keypad wie eine Tastatur funktioniert, dann wirste einen entsprechenden Treiber benötigen.

Mit gpio kannst du nur einzelne gpio pins abfragen. Das Keypad benutzt aber pro Tastendruck mehr als einen pin, die Info allein hilft dir also nicht weiter. Sofern das von dir gepostete Script "funktioniert" also Tastendrücke erkennt lässt sich erahnen dass gpio 11 gar nicht benutzt wird.
spalte = [12, 16, 20, 21]
zeile = [18, 23, 24, 25]
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
12.02.2020 um 15:51 Uhr
Wenn du möchtest, dass dein keypad wie eine Tastatur funktioniert, dann wirste einen entsprechenden Treiber benötigen.

Einen Treiber gibt es dafür glaube ich nicht...

Mit gpio kannst du nur einzelne gpio pins abfragen. Das Keypad benutzt aber pro Tastendruck mehr als einen pin, die Info allein hilft dir also nicht weiter. Sofern das von dir gepostete Script "funktioniert" also Tastendrücke erkennt lässt sich erahnen dass gpio 11 gar nicht benutzt wird.
spalte = [12, 16, 20, 21]
zeile = [18, 23, 24, 25]

Der Python Script funktioniert.

Zwischen durch habe ich mal das Export ausprobiert.

Hier wird mir mal 1 und mal 0 ausgegeben egal ob ich eine taste drücke oder nicht

Also ich suche mal weiter....
Bitte warten ..
Mitglied: Bitboy
12.02.2020 um 16:30 Uhr
Hm. mir scheint du hast noch sehr wenig erfahrung damit.
Die Erklärung find ich recht gut: https://tutorials-raspberrypi.de/raspberry-pi-keypad-tastatur/

Mit dem Echo Befehl von dir schaltest du einzelne GPIO ein oder aus.
Du setzt also einen Wert, aber du liest ihn nicht.
Hängt auch etwas davon ab wie du es verkabelt / konfiguriert hast. Stichwort pullup / pulldown Widerstand.
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
13.02.2020, aktualisiert um 15:55 Uhr
Guten Tag Bitboy,

Hm. mir scheint du hast noch sehr wenig erfahrung damit.
Wenig? Ich würde mal bei ein Skala vor 10 auf 0,1-0,4 schätzen.

Die Seite habe ich bereits versucht zu verstehen, bin jedoch auf den Entschluss gekommen, dass ich ohne einen Treiber für das Keypad nicht voran kommen würde. Man muss ja das Rad nicht neu erfinden. Außerdem würde es meinen geplanten Script unnötig komplexer machen.

Ich hab folgende Seiten gefunden und ausprobiert:
http://blog.gegg.us/2017/08/a-matrix-keypad-on-a-raspberry-pi-done-righ ...
https://debianforum.de/forum/viewtopic.php?t=52662
https://www.raspberrypi.org/documentation/configuration/device-tree.md

Und nun habe ich folgendes gemacht.

Die Datei von der Seite blog.gegg.us gegriffen und wie folgt umgeschrieben:

unter /root/4x4matrix.dts gespeichert.

Bei der eingabe von modeinfo, bekomme ich jetzt schon die passende Ausgabe:

Trotzdem habe ich mir das " make menuconfig " angeschaut und musste jedoch feststellen, dass die Option "GPIO driven matrix keypad support" dort nicht aufzufinden war. So bin ich vorgegangen:

Unter "Devece Drivers" ---> "GPIO Support" eionen Sternchen geschenkt.

menuconfig - Klicke auf das Bild, um es zu vergrößern

wie angegeben in die /boot/config.txt in die letzte Zeile das hinzugefügt:

lsinput ist leider nicht vorhanden. Also einfach gleich neugestartet, und ..... es funktioniert nicht

Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: Bitboy
13.02.2020 um 15:56 Uhr
Sry, bei linux Treibern muss ich auch aussteigen, ich hätte gedacht vllt gibt es etwas fertiges für das Keypad.

Meine Empfehlung wäre gewesen: Python ist ja verhältnismäßig einfach. Du nutzt das Script was du hast und funktioniert und baust die Anwendung die eigentlich in bash machen wolltest in python um das funktionierende Script herum.
Halte ich aus dem Bauch raus für die einfachste Variante.
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
13.02.2020 um 16:02 Uhr
Sry, bei linux Treibern muss ich auch aussteigen, ich hätte gedacht vllt gibt es etwas fertiges für das Keypad.
Du hast mich doch auf den Treiber für das Keypad gebarcht

Meine Empfehlung wäre gewesen: Python ist ja verhältnismäßig einfach. Du nutzt das Script was du hast und funktioniert und baust die Anwendung die eigentlich in bash machen wolltest in python um das funktionierende Script herum.
Mein Bashscript ist bereits fertig und Python muss ich erst bei 0 lernen.

Vielleicht könnte mir einer, bei den Treiber für den Keypad, unter die Arme greifen
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
13.02.2020 um 16:24 Uhr
Noch ein Nachtrag:
lsinput ist leider nicht vorhanden. Also einfach gleich neugestartet, und ..... es funktioniert nicht
lsimput zeigt leider alle angeschlossene USB Geräte an, aber leider nicht das Keypad.
Bitte warten ..
Mitglied: Bitboy
13.02.2020, aktualisiert um 17:12 Uhr
Hab leider nix zum ausprobieren zur Handaber neugierig wär ich ja schon....

Also die Anleitung geht erstmal von nem älteren Kernel aus der ohne den matrix Treiber erstellt wurde.
Auf Github ist allerdings eine Kerneländerung dokumentiert sodass für mein Verständnis, der komplette makemenu schritt wegfällt.

modeinfo liefert ja auch das richtige Ergebnis.

dieses dtc Kommando? war das erfolgreich?
dtc -W no-unit_address_vs_reg -I dts -O dtb -o 4x4matrix.dtbo /root/4x4matrix.dts

deine 4x4matrix.dtbo liegt im Verzeichnis /boot/overlays/ ? da liegen zumindest alle anderen dieser Dateien.
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
13.02.2020 um 17:15 Uhr
Hab leider nix zum ausprobieren zur Handaber neugierig wär ich ja schon....
wenn du ein Pi hast, kann ich dir ein Keypad zuschicken Habe noch eins da und muss so wie so noch einige bestellen. Und das nur dann wenn es funktioniert.

dieses dtc Kommando? war das erfolgreich?
dtc -W no-unit_address_vs_reg -I dts -O dtb -o 4x4matrix.dtbo /root/4x4matrix.dts
es wurde eine 4x4matrix.dtbo, ohne Fehler, erstellt. Und von Innen schaut diese auch gut aus.

>You may need to install a package called input-utils first if this command ist not available on your Pi.
Hab ich bereits nachgerüstet und gibt das gewünschte Gerät leider nicht aus.
Bitte warten ..
Mitglied: Bitboy
13.02.2020 um 17:17 Uhr
Ah sry hatte eben meinen Beitrag editiert weil ich zu spät gesehen hab dass du das Kommando nachinstalliert hast.

due dtbo liegt im Verzeichnis /boot/overlays/ vom pi?
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
13.02.2020 um 17:36 Uhr
due dtbo liegt im Verzeichnis /boot/overlays/ vom pi?

Diesen Schritt habe ich überflogen!!! -.-

Jetzt habe ich das Keypad im System

Mit den Eingaben stimmt jedoch etwas nicht.... Ich muss mal die Matrix noch einmal mir angucken! Wenn das läuft bin ich vooooll glücklich!!!

Vielen Dank erstmal. Morgen mache ich weiter. Muss erstmal zur den Kindern.
Bitte warten ..
Mitglied: Bitboy
LÖSUNG 13.02.2020 um 17:40 Uhr
Juhu

Ja, wahrscheinlich haste lustiges Pin tauschen vor dir, aber das is ja jetz die kleinste Hürde.
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
14.02.2020 um 09:01 Uhr
Guten Morgen,

warum Pins tauschen? Meinst du ich habe die Pins falsch gesteckt? Ich hätte ja gedacht, dass ich in der Matrix etwas falsch angeordnet habe.

Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
14.02.2020 um 14:57 Uhr
Guten Tag,

das Problem ist nun dank dem Verfasser von blog.geggus.net endgültig gelöst.

Mein Problem war, dass ich das hoch codierte Schlüssel nicht encodieren konnte.... Und somit den Wald vor lauter Bäumen nicht erkennen konnte!

Also:


Das steht da doch:

row << 24 | column << 16 | key-code

Gezählt wird ab 0.

Konkret aus meinem Beispiel:

KEY_LEFT
0x00000069


Da ist row und column 0.

KEY_KP0
0x01000052


Da ist row 1 und column 0

Was ich jedoch bis jetzt noch nicht heraus finden konnte ist wie man zum Beispiel bei KP0 auf 52 kommt....

Und der Treiber schaut bei mir nun so aus:

Danke auch dir Bitboy.

Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Ähnliche Inhalte
CPU, RAM, Mainboards
Raspberry Pi Netzwerk
Frage von noahharCPU, RAM, Mainboards11 Kommentare

Hallo zusammen, mein Raspberry Pi kann sich seit heute nicht mehr mit meinem Netzwerk verbinden. Die LED an der ...

Debian

Fehler Linux mit Raspberry PI - Inconsistency detected by

gelöst Frage von sebasschaDebian12 Kommentare

Hallo, ich bekomme seit ein paar Tage immer wieder die Fehlermeldung (z.B. beim Ausführen von "mv"). Auch beim Installieren ...

Python

Raspberry Pi: Grove Komponenten an Raspberry Pi anschließen und auslesen

Frage von tzabbiPython3 Kommentare

Moin Leute, ich möchte an meinen Raspberry Pi 3 B+ einen MQ2-Gassensor von Grove anschließen und auslesen. Da der ...

Voice over IP

Raspberry PI - VOIP - Rufumleitung

Frage von 135281Voice over IP12 Kommentare

Hallo zusammen, ich habe folgendes Problem: Da die FritzBox eine Rufnummer auf 0900 blockiert wollte ich mit den vorhandenen ...

Hardware

Raspberry-Pi-4 vorgestellt

Ticker von sabinesHardware

Ziemlich leise wurde der neue Raspberry-Pi-4 vorgestellt, neben vielen "kleinen" Verbesserung, gibt es ihn jetzt mit 1,2 oder 4 ...

Hardware

Raspberry Pi 3B+ veröffentlicht

Ticker von KuemmelHardware

Der Raspberry hat ein Update bekommen: Gruß Kümmel

Heiß diskutierte Inhalte
Batch & Shell
Mehrere Server anpingen positive und negative Ergebnis in Datei schreiben
Frage von tommhiiBatch & Shell27 Kommentare

Hallo ich hab eine Frage ich habe in einer Liste mehrere Server eingetragen die ich per batch anpingen will. ...

Sonstige Systeme
Home Office Ortung IP via VPN und Citrix
Frage von ColdstormSonstige Systeme26 Kommentare

Hallo zusammen, ich habe eine allgemeine Frage. Ich arbeite für einen deutschen Automobilclub (fängt mit A an und mit ...

Schulung & Training
Präsentation mit Gestensteuerung (Schnipsen)
gelöst Frage von battalgaziSchulung & Training18 Kommentare

Hallo, ich habe vor kurzem an einer MLP Paresentation teilgenommen, der Dozent hat mit einem Schnipsen die Folien gesteuert. ...

Microsoft Office
Office 2010 Starter SetupConsumerC2ROLW.exe Datei
gelöst Frage von ITAzubi2Microsoft Office18 Kommentare

Moin moin, ich bin frischer IT Azubi und soll auf ein neues Notebook mit Win 10 Office 2010 Starter ...

Switche und Hubs
Aruba VSF-2930F DHCP Problem
Frage von fbe280tSwitche und Hubs15 Kommentare

Hallo Ihr da draußen, wir haben drei Aruba VSF-2930F zu einem virtuellen Switch zusammengefügt und haben dort mehrere V-Lans ...

JavaScript
Subtraktion in Javascript für ausfüllbares PDF
gelöst Frage von imebroJavaScript15 Kommentare

Hallo liebe User, ich habe ein Adobe PDF-Dokument in ein ausfüllbares PDF-Dokument umgewandelt. Grds. funktioniert alles sehr gut. Auch ...

Administrator Magazin
10 | 2020 Nicht erst durch die Corona-Krise sahen sich viele Firmen damit konfrontiert, dass sich Mitarbeiter von unterschiedlichen Geräten und verschiedensten Lokationen aus anmelden. Daher sind hier neue Konzepte für das Berechtigungs- und Identitätsmanagement gefragt, die einerseits die Sicherheit erhöhen und andererseits Nutzern die nötige Flexibilität ...
Best VPN