PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : suche Keypad ca. 8x8 bis 10x10 mit einrastenden und dann beleuchteten Tasten



HaWe
30.10.2019, 11:44
hallo,
Ich suche ein Keypad ca. 8x8 bis 10x10 mit einrastenden und dann beleuchteten Tasten (eingebaute LEDs) :
anlässlich eines Topics über neuronale Netze fände ich es spannend, noch mal alles für Arduinos (edit: oder auch für Raspberrys) von Anfang an aufzubauen und optimiert zu programmieren.
Knackpunkt früher war immer, dass ich keine Eingabe-Tasten-Arrays hatte, die die Eingaben auf simple und intuitive Weise registrieren und anzeigen konnten - hätte man so etwas, wären Bedienung und Training deutlich einfacher und übersichtlicher als über komplizierte und unübersichtliche Display-Menüs.
Wer hat (bezahlbare) Tipps?

Moppi
30.10.2019, 12:17
Vielleicht kann man improvisieren und nimmt ein 4*4 Tastenfeld als Grundlage: https://www.amazon.de/Demiawaking-Matrix-Keypad-Tastatur-Arduino/dp/B078S5V6VF/ref=sr_1_9?__mk_de_DE=ÅMÅŽÕÑ&keywords=arduino+tastenfeld&qid=1572433858&sr=8-9

Und dazu eine 8*8 LED-Matix: https://www.amazon.de/DIGI-DOT-PANEL-8X8-MIT-WS2812B-LEDS/dp/B00QYQCMQY/ref=sr_1_5?__mk_de_DE=ÅMÅŽÕÑ&keywords=arduino+led+matrix&qid=1572433773&sr=8-5

Das Einrasten kann per Software realisiert werden (einmal drücken = an, einmal drücken = aus). Zwar sind die Taster nicht direkt beleuchtet, aber vielleicht kann man trotzdem damit hantieren. Wobei ich einsehe, dass es bei 8*8-Feldern nicht so leicht ist zuzuordnen, welche LED zu welchem Taster gehört.


MfG

HaWe
30.10.2019, 12:48
das mit dem softwaremäßig Druck Ein/Druck AUS st eine gute Idee!
ich habe gerade dieses gefunden:
https://learn.adafruit.com/adafruit-trellis-diy-open-source-led-keypad

habe aber noch keinen preiswerten Lieferanten gefunden für 8x8, fertig mit LEDs versehen schon gar nicht.

Moppi
30.10.2019, 12:51
4*4 ist doch auch in Ordnung!?

HaWe
30.10.2019, 12:59
4*4 ist doch auch in Ordnung!?

wenn man 4 davon zusammenbaut, ja.

Moppi
30.10.2019, 13:10
Nein, nur 4*4. Dafür sind die zu teuer. Wofür nutzt man sonst beleuchtete Taster?



MfG

HaWe
30.10.2019, 13:21
für vernünftige NN-Anwendungen, bringen 16 Inputs nichts. Interessant wird es, wenn man damit Zeichenerkennung (Ziffern, Buchstaben) wie in einer LCD-Matrix trainieren kann (verrutschte und schräg liegende Zeichen), dann erkennt man auch, was das NN leistet: daher ca. 10x10 (8x8 ist bereits seeeehr grenzwertig)

- - - Aktualisiert - - -

PS:
ein virtuelles Tastenfeld auf einem Touchscreen wäre auch eine Idee, aber die sind auf Arduinos unglaublich schwer zu programmieren, damit es dann auch stabil funktioniert.

Moppi
30.10.2019, 13:23
Wenn Du was zum nachbauen machen willst und dass sich jeder rantraut, fang gangz klein an uns steigere das später. So kann sich jeder dann aussuchen, bei welcher Komplexität er aus dem Thema aussteigt. Sonst fangen die meisten vielleicht erst gar nicht damit an.



MfG

Gnom67
30.10.2019, 13:24
Selbst bauen mit solchen Schaltern vielleicht?:
https://de.aliexpress.com/item/32697109472.html

HaWe
30.10.2019, 13:28
ich persönich habe ja bereits mit einer kleinen Anzahl von "echten" Tasten jahrzehntelange Erfahrung
- und für zahlreichere Inputs sogar auch, allerdings mit "virtuellen" Inputs per LCD-Menü-Settings. 8)
Daher brauche ich da nicht mehr "klein anfangen". ;)

Selber zusammenbauen kann ich aber leider mittlerweils überhaupt nicht mehr, wegen einer zunehmenden Augenerkrankung :(

Gnom67
30.10.2019, 13:35
Ja, dann wirds schwierig. Vielleicht kann dir jemand helfen.

Die oben genannten Schalter sind recht groß, vielleicht kommst du mit denen noch klar.

Hier hab ich noch hübsche beleuchtete Taster gefunden. wesentlich kleiner - aber preiswerter.
https://de.aliexpress.com/item/32700248410.html

HaWe
30.10.2019, 13:56
64-100 einzelne Schalter müssten dann aber über IO-Multiplexer (i2c) angeschlossen (verlötet) werden, plus Treiber-Programmierung für das Gesamtpaket, denn einzelne Pins hat ja ein Arduino (resp. ESP) nicht genug.

Daher wäre ein fertiges Keypad wie das von Adafruit Trellis sicher besser.

Ceos
30.10.2019, 14:01
definiere mal "bezahlbar" ich hab da zwar was und auch nur 4x4 basiert und Matrixkombinierbar aber bei ~16€ (inklsuive Tasten ohne LEDs) die Adafruit Trellis

https://www.exp-tech.de/module/led-controller/5543/adafruit-trellis-monochrome-driver-pcb-for-4x4-keypad-3mm-leds

Aber da zahlt man den Enthusiastenpreis halt mit :(

HaWe
30.10.2019, 14:06
ja, wenn jetzt die LEDs fertig eingelötet sind, wären 50 EUR für insgesamt edit: 8x8 für mich gerade noch OK.

Würden dann dafür auch noch mehr Leute mitmachen?

Ceos
30.10.2019, 14:07
du meinst 8x8 oder? 16x16 sprengt das glaube ich deutlich :D

also 2x2 von den Modulen (für 8x8 Tasten) * 16€ sind leider schon 64€ in dem Fall :( und die LEDs darfst du selber einlöten, aber das sollte noch machbar sein oder?

HaWe
30.10.2019, 14:08
äh - ja klar, 8x8, also 4 Stück a 4x4 :D
aber wie gesagt, löten ist jetzt bei meinen Augen leider gar nicht mehr drin.

Moppi
30.10.2019, 14:09
ich persönich habe ja bereits mit einer kleinen Anzahl von "echten" Tasten jahrzehntelange Erfahrung
- und für zahlreichere Inputs sogar auch, allerdings mit "virtuellen" Inputs per LCD-Menü-Settings. 8)
Daher brauche ich da nicht mehr "klein anfangen". ;)

Selber zusammenbauen kann ich aber leider mittlerweils überhaupt nicht mehr, wegen einer zunehmenden Augenerkrankung :(

Toll!

Wolltest Du nichts für die andern machen, die erst mal in das Thema rein kommen und die grundsätzlichen Zusammenhänge, Möglichkeiten und Grenzen kennenlernen wollen?



MfG

HaWe
30.10.2019, 14:17
dafür neue Hardware anschaffen, die hinterher nicht deutlich erweiterbar ist, macht für mich selber wenig Sinn, und wer meine virtuellen Inputs benutzen möchte, kann das ja schon tun 8)

Aber wenn du mir ein fertiges 4x4-er mit LEDs spendierst, mache ich mich dennoch gerne dran für ein Tutorial 8)
(bringt aber WIRKLICH EXTREM wenig, bei so wenigen Inputs)

Moppi
30.10.2019, 14:18
64-100 einzelne Schalter müssten dann aber über IO-Multiplexer (i2c) angeschlossen (verlötet) werden, plus Treiber-Programmierung für das Gesamtpaket, denn einzelne Pins hat ja ein Arduino (resp. ESP) nicht genug.

Daher wäre ein fertiges Keypad wie das von Adafruit Trellis sicher besser.

Kann über Widerstandkaskade über den Analag-IN gemacht werden, davon hat ein nodeMCU ja sowieso nur einen.


MfG

HaWe
30.10.2019, 14:21
Eine Widerstandskaskade kann nicht 64 Widerstände oder sogar mehr auflösen, aber dennoch müsste es zusammengelötet werden. Bllliger ist es auch nicht (64 bis 100x rund 1 EUR plus Import-Zoll plus EU-MWSt).
Daher finde ich nach wie vor ein fertiges Keypad wie das von Adafruit Trellis besser.

Gnom67
30.10.2019, 14:21
Zweifellos - aber das ist dir ja zu teuer.

Du könntest an einen Arduino (oder Pi + vier AD-Wandler) vier selbstgebaute 4x4-Analogtastenfelder (https://www.pgollor.de/cms/?page_id=833) anschließen.
Die Steuerung der LEDs ginge auf verschiedenen Wegen z. B. mit Matrixansteuerung per Portwerweiterung oder mit zwei Schieberegistern (letzteres wäre eine sehr einfache Lösung, weil du eigentlich nur drei Pins - CLK, OUT, LatchCLK - brauchst).

Alternativ könnte z. B. ein Atmega128 mit seinen 53 I/O-Pins leicht ne 10x10 Matrix mit LEDs steuern - allerdings gibts den natürlich nur als SMD - das ist wohl nichts für dich.

HaWe
30.10.2019, 14:25
die Tastatur-Keypads sind nicht beleuchtet, und die Steuerung für einzelne zusätzliche LEDs würden ja weitere Pins benötigen, wenn die Tasten nicht fest einrasten.
Und wie gesagt, selber basteln geht nicht mehr, leider.
Außerdem soll die Sache für mich lokal autonom lauffähig sein.

Gnom67
30.10.2019, 14:40
Aber wäre es nicht einfacher und billiger, so ein Tastenfeld auf einem PC/Notebook zu programmieren? Da könnte man die Felder mit der Maus bequem schalten und die Einstellungen dann seriell an Pi oder Arduino senden.

Auch mit einem kleinen Touchdisplay am Raspberry wäre das für 10-15 € machbar...

Moppi
30.10.2019, 14:43
Angesichts der Umstände mit der Hardware ist es wohl besser, ein nodeMCU für den Code zu verwenden und das Tastenfeld per HTML-Seite zu erstellen.



MfG

HaWe
30.10.2019, 15:00
wenn du es schaffst, das zu programmieren als Eingabe-/Anzeige Feld, dann wäre das ein Anfang!
(auch wenn ich es selber lieber lokal anschließen würde)

Die einzelnen html-Felder müssen lediglich einen "gedrückt" Status ans Arduino-Programm zurückliefern, die man genau so behandlen kann wie wenn ein Hardware-Switch gedrückt ist, und das für alle 64 virtuellen html-Buttons

for (int i=0; i<64; i++) input[i] = htmlBtn[i];

falls im gedrückt-Status, müssten die jew. html Buttons dann ihre Farbe wechseln, z.B. von schwarz nach gelb.

Ich selber wäre damit momentan noch überfordert...

wkrug
30.10.2019, 15:02
Eventuell wäre ja auch ein Touchdisplay eine Lösung?

Manf
30.10.2019, 17:25
Vielleicht kann man die Zielsetzung und die Randbedingungen noch etwas weiter beschreiben und gegeneinander abwägen damit man zu einem gemeinsamen Veständnis für den Lösungsweg findet.

HaWe
30.10.2019, 18:04
ja, gern!
Zu den Ersatz-Vorschlägen:

Touch TFT ist schwierig, weil es
a) keine stabil funktionierenden Libs für Touch TFTs für die notwendigen 64-100 Buttons gibt, mit denen man so etwas machen könnte (ich kenne keine trotz umfangreicher Suche und Testcodes in der Vergangenheit) , und
b) für das ILI9341, das billig und vergleichsweise verbreitet ist, erst recht nicht,
abgesehen von
c) der absolut chaotischen ILI9341-Verkabelung, und außerdem
d) funktionieren längst nicht alle Touch-Libs mit M0, M4 und ESPs.
e) besser ist schon das große aufsteckbare Adafruit Feather HX8357 Touch TFT, das ich selber besitze und dessen Lib für M0, M4, ESP8266 und ESP32 funktioniert, aber
f) selbst das hat keine sicheren Funktionen, um Buttons zu steuern (Button justpressed, Button justreleased).

html-Code
a) ist für mich schwierig umzusetzen (um nicht zu sagen: der blanke Horror), da gab es ja hier im Forum bereits etliche Topics, bei denen Probleme diskutiert wurden, aber
b) @moppi: gerade du hast ja deutlich mehr Ahnung und könntest am ehesten Licht ins Dunkel bringen.

Ansonsten wäre das Ziel laut TOP, ein 8x8-10x10 Hardware-Buttonpad zur Verfügung zu haben, das
a) fertig aufgebaut ist
b) das sich jeder andere auch "eben mal" bestellen kann,
c) wo man zusätzlich für das Training eines Musters im Netz auch sofort sieht, welches Muster tatsächlich gerade eingegeben ist, das gelernt und dann erkannt werden soll (daher LEDs zur Statusanzeige), und
d) bezahlbar muss es auch sein, ich denke bei 8x8 an ca. 50 EUR, 60 wären auch OK, darüber wird es schon grenzwertig.

Moppi
30.10.2019, 19:15
Das ist nicht ganz so einfach. Das nodeMCU ist etwas langsam. Ich hatte schon mal gelesen, dass die keine sher hohe Datenübertragungsrate per WiFi haben, aber mich stellt das so nicht ganz zufrieden. Einen Anfang habe ich gemacht, bis ich jetzt gesehen habe, wie lang das mit der Übertragung der Seite dauert.

Es wäre in der Größe, per CSS, noch optimierbar, aber besser wär's mit JavaScript auf der Seite zu arbeiten und einem unsichtbaren Frame, zwecks Datenübertragung.


MfG

HaWe
30.10.2019, 19:28
die Eingabe per Buttons ist nicht zeitkritisch, das dauert eh bis man ein Muster mit etwa 10-20 Buttons gedrückt hat.
Dann muss es per Sende-Button ("Fertig") übertragen weden,
und dann beginnt der Trainings- und Lernalgorithmus, der dann eh nicht mehr auf das Netzt per html zugreift und (je nach Netzstruktur und Musterzahl) durchaus mehrere Stunden dauern kann.

Im "Erinnerungsmodus" kann man dann dem Netz verschiedene Muster präsentieren (dauert so lange wie oben)
und dann legt es die gelernten Perzeptronwerte an (Netz-Matrix),
das dauert dann erfahrungsgemäß nur wenige Sekunden bis zur Auswertung.

Moppi
30.10.2019, 19:49
Dann sieht es etwas anders aus, dann genügen nur die Textfelder und ein Button, in einer Form, und minimal JavasScript, um den Status zu ändern. So wird auch der Code einiges kleiner.


MfG

HaWe
30.10.2019, 19:57
Können wir für den html Code ein neues Topic starten und dort damit weiter machen?


weiter hier:
-> https://www.roboternetz.de/community/threads/74178-html-Code-f%C3%BCr-virtuelles-website-Button-Pad?p=655914#post655914