Seite 1 von 2

ftduino mit Folien Keypad

Verfasst: 30 Apr 2020, 19:15
von Pirx
Hallo ftduino-Experten,

ich habe eine 4x4 Folientastatur (rot-blau ich finde keine klare Herstellerbeschreibung beim Verkäufer) bestellt und würde es gerne am ftduino betreiben.

Man findet immer wieder dieselbe Bibliothek Library „Keypad“ von Mark Stanley und Alexander Brevig zum betreiben dieses Keypads.
Da es nicht über I2C geht, sondern direkt über die Ein- und Ausgänge, gehe ich davon aus, dass man die Bibliotheken Funktionen für den Arduino nicht direkt beim ftduino verwenden kann, da die Ein- und Ausgänge des Arduiono auf die der Stecker des Keypad direkt aufgesteckt wird, nicht 1 zu 1 zu den Anschlüssen des ftduino passen.

Ist das korrekt?

Kann man das einfach patchen oder muss man das selber bauen?
Irgendeine schlaue Idee was man in der Bibliothek ändern muss, damit es schnell passt?

Ganz allgemein: Weitere Eingabmedien für ein autarkes Modell, damit man nicht über den seriellen Monitor des PC gehen muss? Um einfache Eingaben zu machen für z.B. einen Drehwinkel oder eine Wegstrecke.

Danke
Pirx

Re: ftduino mit Folien Keypad

Verfasst: 30 Apr 2020, 20:05
von juh
Hallo Pirx,

theoretisch müsste der Betrieb auch an den geschützten Ein-/Ausgängen des ftDuino gehen. Viel einfacher und eleganter ist aber in der Tat ein I2C-Interface, z.B. mit einem Allrounder wie dem PCF8574:

https://www.bastelgarage.ch/index.php?r ... &post_id=8

Dort ist auch die passende Lib genannt.

vg
Jan

edit: Zum Thema Drehwinkelgeber schau mal hier: viewtopic.php?f=15&t=5566#p40583

Re: ftduino mit Folien Keypad

Verfasst: 30 Apr 2020, 20:56
von fishfriend
Hallo...
Soweit ich das in erinnerung habe gibt es zwei versch. Tastaturen.
EInmal sind alle Tasten mit einer Seite zusammengeschlossen alle anderen haben eine gesonderte Leitung und zum
zweiten gibt es eine 3x4 Matrix, also mehrfachbelegung der Leitung.

Die eine eignet sich auch für gleichzeitiges drücken von Tasten, die andere nicht.
Die, mit den gesonderten Leitungen, kann man auch analog messen, in dem man eine Reihenschaltung
von Widerständen macht und die Verbindungen der Widerstände mit den Leitungen verbindet.
Jede Taste hat dann einen bestimmten Widerstand.
Für die andere 3x4 Matrix gibt es auch viele Lösungen und ICs (Tastaturtreiber).

Mit freundlichen Grüßen
fishfriend
Holger Howey

Re: ftduino mit Folien Keypad

Verfasst: 30 Apr 2020, 22:04
von Pirx
Hallo,

das mit dem I2C Interface ist schon einmal eine sehr schöne Lösung. Ich denke da bestelle ich mal etwas.
Kleiner Haken: Tastatur habe ich am Samstag und das Interface nicht. Idee war aber das Keypad schnell zum laufen zu bringen und sich dann mit dem eigentlichen Projekt zu befassen.

Der Drehwertgeber ist auch interessant, aber passt nicht, weil ich Befehle eingeben will. Wie beispielsweise für das ftduino Hochregal aus den Beispielen h(ol) 3 oder b(ring) 5. Das gibt man mit dem seriellen Monitor ein. Klebt man das touchpad an sein Modell, ist es autark.
Es soll ein Positioniertisch werden, d.h ich kann x-y-z Koordinaten und einen Drehwinkel eingeben. Mittels Steppermotoren wird dann angefahren bzw. gedreht. Mit dem ftpwddrive funktioniert die Motorsteuerung wunderbar.

Dieses Keypad hat für jede Reihe und jede Spalte eine Leitung. Durch anlegen von Spannung und messen nacheinander kann man rausfinden welche Taste gedrückt wurde. Dabei muss man die Tasten noch vernünftig entprellen. Das bekommt man hin, aber ich möche es schnell hinbekommen und bin nicht besonders versiert. Mit der genannten Bibliothek ist man sofort start bereit, aber ich denke eben das kann so nicht gehen, weil kein Arduino, sondern ftduino.

Pirx

Re: ftduino mit Folien Keypad

Verfasst: 30 Apr 2020, 22:17
von Bjoern
Hallo Pirx,

wenn ich dich richtig verstehe wirst du dann am Eingang von Z.B. Spalte 1 und Zeile 1 jeweils eine Spannung messen und hast die 1 gedrückt.

Du müsstest also jede Zeile und Spalte am ftDuino am Eingang anschließen und dann den Input messen. Anhand der Matrix erkennst du dann die Taste. Notfalls fragts du einfach ab ob Zeile 1 High ist und dann innerhalb dieses if dann die jeweiligen if Abfragen für die Spalten. Das solltest auch du hinbekommen.

Hast du dann aber überhaupt noch einen Input in deinem Modell frei? Bei 4x4 hast du ja schon alle 8 Inputs belegt. Oder sind es weniger als 8 Kabel?

Und schön das der ftPwrDrive dir bei der Motorsteuerung wunderbare Dienste leistet. Freut Stefan und mich natürlich zu hören.

Grüße
Björn

Re: ftduino mit Folien Keypad

Verfasst: 30 Apr 2020, 22:55
von juh
Ah, sorry, das mit dem Drehwert hatte ich zu wörtlich verstanden.

Ein paar Alternativen noch für Deine Zwecke:

Erstens gibt es neben den Folientastaturen noch etwas robustere Modelle mit besserem Druckpunkt (sozusagen ZX Spectrum statt ZX-81 :geek:) mit 4x4 oder auch 3x4 Tasten: https://www.ebay.de/sch/i.html?_from=R4 ... d&_sacat=0

Die arbeiten intern auch mit einer Matrixbeschaltung, sind also ähnlich mit sieben oder acht IO-pins oder I2C-IO-Extender anzusteuern.

Zweitens kann man bei reinen Arduinos am einfachsten mit einer IR-Fernsteuerung arbeiten, z.B. so einer: https://www.ebay.de/sch/i.html?_from=R4 ... tch+Keypad

Im Einsatz z.B. hier und hier. Die nutze ich eigentlich am liebsten, wenn man nicht aus irgendwelchen Gründen eine stationäre Tastatur am Modell haben will. Braucht nur einen IO-Pin, allerdings weiß ich nicht, ob das mit einem der geschützten Eingängen des ftDuino ginge, ungeschützt gibt es ja nur einen am I2C-Anschluss, den man zweckentfremden könnte (s. Servo-Beispiel im Manual).

Eine witzige dritte Alternative wären kapazitative Touch-Tasten. Ich habe neulich mal mit diesem Breakout-Board mit I2C für den MPR121 ein wenig herumgespielt: https://www.ebay.de/sch/i.html?_from=R4 ... te+arduino

Jeder der 12 Eingänge kann mit einem beliebigen elektrischen Leiter verbunden werden, der dann auf schlichte Berührung reagiert, Abfrage per I2C. Zusätzlich können 8 der 12 Eingänge alternativ als IO-pins genutzt werden, im Output-Modus sogar mit simplem PWM für's LED-Dimmen (leider nicht Servo-tauglich), im Prinzip hat man also einen besseren PCF8574 mit zus. kapazitativer Tastfunktion. Mit reinen ft-Teilen könnte man so z.B. jede ft-Achse oder ein paar Kontaktstücke 20 als Berührungstaster verwenden. Oder man nimmt Alu-Klebefolie oder elektrisch leitende Tinte und klebt oder malt sich seine Tastatur direkt auf eine Bauplatte. Im Test hat das alles ganz gut funktioniert, nur die wackelfreie elektrische Verbindung ist bei den letzten beiden etwas knifflig. Hier kann man das Prinzip erahnen:

Bild

und wenn man nicht ausreichend Kontaktstücke 20 hat, kann man auch Obst nehmen. Wäre sicher der Hingucker auf jeder convention... :lol:

Bild

lg
Jan

Re: ftduino mit Folien Keypad

Verfasst: 30 Apr 2020, 23:13
von PHabermehl
...so, ich habe mir mal zwei Keypads bestellt, weil die Idee, die über I2C anschließen zu können, mir sehr gut gefällt.

Für den PCF haben wir ja schon ein 3D-Druck-Gehäuse: viewtopic.php?f=38&t=5666#p41375

Und so stelle ich mir den ft-Rahmen für das Keypad vor - den inneren Ausschnitt muss ich dann anpassen, wenn ich die realen Teile habe, die Angaben bei eBay und AliExpress sind mir zu ungenau... Außenmaß ist 75x90. Veröffentlichung im 3D-Druck-Unterforum erfolgt nach Fertigstellung.

Screenshot_20200430_230808.png
Screenshot_20200430_230808.png (21.79 KiB) 9187 mal betrachtet

Gruß
Peter

Re: ftduino mit Folien Keypad

Verfasst: 01 Mai 2020, 06:38
von Sulu007
Hallo Prix,
in einem der älteren ft-Pedia Heften (2015-1 ab Seite 91) wir genau beschrieben wie man ein Tastaturblock an den TX anschließt, das sollte helfen.

Re: ftduino mit Folien Keypad

Verfasst: 01 Mai 2020, 10:52
von Pirx
Hallo zusammen,

vielen Dank für die vielen guten Anregungen. Es ergibt sich das Standardproblem:
Es gibt so viele spannende Dinge, die man gerne mal ausprobieren möchte, aber die Zeit ist beschränkt.

Sehr gut finde ich das mit dem 3D Druck Modell, das hatte ich mir auch schon vorgenommen. Ich hoffe Peter kauft dasselbe, das ich gekauft habe. :D Auch hier ist der Punkt: Habe mir Fusion360 angesehen und bekomme da sicher auch etwas hin, aber das dauert eben. Wenn es das schon gibt, hat man an dieser Stelle Zeit gespart.

Jan hat ein weiteres Universum aufgemacht, was man ausprobieren könnte und da wäre wieder einiges für die Liste der Dinge to do, weil sie Spass machen.

Ich hatte auch die anderen Keypads gesehen. Ich erwarte jetzt keine Dauerbedienung, daher hatte ich mich für die flache Variante entschieden, insbesondere im Hinblick auf ein 3D-Druck "Gehäuse". Damit das ganze schlank bleibt. Alternativ hatte ich mir als erste einfache Lösung das aufkleben auf einigermaßen passende Bauplatten vorgestellt.
Ich werde berichten, wenn die Tasten schon nach wenigen Klicks prellen oder sonstige Zicken machen. Wahrscheinlich werde ich aber nicht auf nennenswerte Klickzahlen kommen.

Mir ist schon klar was ich machen muss. 4x4 bedeutet 8 Kabel, d.h. 4 Aus- und 4 Eingänge. Bis ich dann zufrieden bin, dauert es mir zumindest zu lange, weil es gar nicht das eigentliche Ziel ist, versuche ich da Zeit zu sparen. Damit es schneller geht, nehme ich halt gerne fertige Stücke wie beispielsweise der ftpwrdrive. Da kann man sofort loslegen. Durch diesen habe ich eben auch die Ausgänge, die mir immer als erstes ausgehen, frei. Wenn ein Modell mehr braucht, dann arbeite ich eben mit zwei Ftduinos oder TXT's.

Ich hatte halt gehofft jemand sagt:
Da machst du in der Bibliothek query-replace und alles funktioniert oder:
Das habe ich auch schon an den ftduino angeschlossen source findet man hier.

Ich habe noch Hoffnung, ansonsten weiß ich was morgen zu tun ist. Der Artikel dazu ist sicher schon einmal hilfreich. Die meisten Sorgen macht mir aber das die Tasten prellen, d.h. ich bekomme 4 mal die 5 obwohl man nur eine haben wollte. Das muss man unterscheiden das jemand wirklich 5555 eingeben wollte. Aber vielleicht bin ich da auch zu pessimistisch, habe noch nie etwas mit einem Keypad gemacht.

Danke schon einmal für die vielen guten Tipps und Anregungen.
Pirx

Re: ftduino mit Folien Keypad

Verfasst: 01 Mai 2020, 10:56
von PHabermehl
Pirx hat geschrieben:
01 Mai 2020, 10:52


Sehr gut finde ich das mit dem 3D Druck Modell, das hatte ich mir auch schon vorgenommen. Ich hoffe Peter kauft dasselbe, das ich gekauft habe. :D Auch hier ist der Punkt: Habe mir Fusion360 angesehen und bekomme da sicher auch etwas hin, aber das dauert eben. Wenn es das schon gibt, hat man an dieser Stelle Zeit gespart.

Pirx
Hi,
schick mir mal bitte eine bemaßte Handskizze des Pads: Breite, Länge, Dicke, Lage und Breite des Flachbandkabels. Ich passe die Kostruktion dann an und schick Dir das .stl (Deine eMail bitte per PN)

Gruß
PEter

Re: ftduino mit Folien Keypad

Verfasst: 01 Mai 2020, 15:44
von juh
Pirx hat geschrieben:
01 Mai 2020, 10:52
Ich hatte halt gehofft jemand sagt:
Da machst du in der Bibliothek query-replace und alles funktioniert oder:
Das habe ich auch schon an den ftduino angeschlossen source findet man hier.
Das Prinzip bei den Matrix-Dingern, egal ob I2C oder direkt, ist ja, dass die Reihen als Output und die Zeilen als Input mit pullup geschaltet werden, dann schickt man nacheinander ein low durch die vier Outputs und schaut jeweils auf jedem der Inputs nach, ob da was ankommt, danach weiter mit der nächsten Output-Reihe. Wenn es Dir wirklich egal ist, dass dann schon 8 Ein/Ausgänge verbraten sind, sollte das rein von den Signalen her doch auch mit dem ftDuino klappen.

In https://github.com/Chris--A/Keypad/blob ... Keypad.cpp macht das diese Funktion:

Code: Alles auswählen

void Keypad::scanKeys() {
	// Re-intialize the row pins. Allows sharing these pins with other hardware.
	for (byte r=0; r<sizeKpd.rows; r++) {
		pin_mode(rowPins[r],INPUT_PULLUP);
	}

	// bitMap stores ALL the keys that are being pressed.
	for (byte c=0; c<sizeKpd.columns; c++) {
		pin_mode(columnPins[c],OUTPUT);
		pin_write(columnPins[c], LOW);	// Begin column pulse output.
		for (byte r=0; r<sizeKpd.rows; r++) {
			bitWrite(bitMap[r], c, !pin_read(rowPins[r]));  // keypress is active low so invert to high.
		}
		// Set pin to high impedance input. Effectively ends column pulse.
		pin_write(columnPins[c],HIGH);
		pin_mode(columnPins[c],INPUT);
	}
}
pin_read(rowPins[r]) z.B. ersetzen mit input get(Ftduino :: I1 + rowPins[r]) und die Outputs analog, zusätzlich noch ein wenig bei der Initialisierung anpassen und das sollte es dann doch eigentlich schon sein.

vg
Jan

Re: ftduino mit Folien Keypad

Verfasst: 02 Mai 2020, 11:33
von jodeka
Hallo,

ich habe eine Alternative zu den PCF8574 gefunden.

Der ADP5589 (von Analog Devices) hat 19 In/Outputs. Damit kann man
Keyboards bis zu 88 Tasten aufbauen (11 * 8 Raster). Er arbeitet über I2C.
Das Angenehme ist, dass er das "Abtasten" der Zeilen und Reihen selbst übernimmt.
Die Tastenanschläge werden als Ereignisse in einer Liste hinterlegt, die dann über
I2C ausgelesen werden können. Das erspart viel Verkehr am i2C-Bus.

Der Baustein hat noch ein paar andere Features eingebaut (Interrupt, PWM, den
man auch zur Servoansteuerung verwenden kann, Logikblock, usw.)

Zu finden ist der Baustein auf dem PMod I/O Expansion Board von Digilent.

Ein "Nachteil" ist, dass der Bauteil nur max. auf 3.3V arbeitet. (ideal für den TXT,
aber er braucht Level Shifter für TX oder ftduino)

LG jode

Re: ftduino mit Folien Keypad

Verfasst: 02 Mai 2020, 14:03
von juh
Hallo jode,

das ist ein guter Hinweis, denn das ständige Pollen ist, je nachdem was der µC sonst so machen soll, ohnehin nicht so das Wahre und über I2C wird es auch nicht besser. Ein dezidierter Chip mit Buffer ist da natürlich was Feines, bekommt man dafür aber auch nicht an jeder Ecke nachgeworfen.

vg
Jan

Re: ftduino mit Folien Keypad

Verfasst: 03 Mai 2020, 16:01
von Pirx
Hallo,

Keypad ist da und alle Tasten funktionieren.
Entprellen in der einfachen Version ist erst einmal viel einfacher als ich befürchtete. Mit einem delay von 200 scheint zumindest mein Tastendruck gut unterscheidbar zu sein. Ich bekomme keine doppelten Zahlen, werde aber nicht merklich gehindert eine zweite Zahl einzugeben.

Insofern alles gut mit dem Keypad. Tut was es soll.
Damit ist mein Problem erst einmal gelöst. Allerdings werde ich wohl noch einmal eine Bestellung machen müssen und die anderen schönen Dinge bestellen, die hier vorgeschlagen wurden.

Als einfache Eingabe, die passabel bedienbar ist, wenig kostet und wenig Platz weg nimmt, kann ich das KeyPad empfehlen.

Danke
Pirx

Re: ftduino mit Folien Keypad

Verfasst: 03 Mai 2020, 16:11
von juh
Pirx hat geschrieben:
03 Mai 2020, 16:01
Keypad ist da und alle Tasten funktionieren.
Wie hast Du es denn jetzt letztlich am ftDuino angeschlossen?
Pirx hat geschrieben:
03 Mai 2020, 16:01
Allerdings werde ich wohl noch einmal eine Bestellung machen müssen und die anderen schönen Dinge bestellen, die hier vorgeschlagen wurden.
Falls da auch das MPR121 touch board dabei sein sollte, eine kleine Warnung: bei mir war es schlecht verarbeitet, ein Teil der Ein-/Ausgänge waren am Chip kalt verlötet. Ich musste die Seite des Chips mit viel Flussmittel und Lötzinn regelrecht braten, um den Kontakt herzustellen.

vg
Jan

Re: ftduino mit Folien Keypad

Verfasst: 03 Mai 2020, 16:42
von PHabermehl
Hallo pirx,

weiß steht's denn mit dem Gehäuse?

Gruß Peter

Re: ftduino mit Folien Keypad

Verfasst: 03 Mai 2020, 19:18
von Pirx
Hallo Jan,

Es ist nur das Keypad, keine weitere Platinie. Das Kabel sieht nicht sehr vertrauenserweckend aus, mal sehen wie lange es hält.

Ich habe es an 4 Ausgänge und 4 Eingänge angeschlossen, nimmt also viele Resourcen. Das ist aber erst mal nicht tragisch, aber daher werde ich wohl noch einmal die anderen vorgeschlagenen Dinge bestellen. I2C scheint mir sehr attraktiv zu sein. Insbesondere wenn man auch noch nicht immer pollen muss.

Gehäuse ist im Drucker.

Ich sage Bescheid wie gut es passt.

Pirx

Re: ftduino mit Folien Keypad

Verfasst: 03 Mai 2020, 23:23
von Dirk Fox
Hallo zusammen,

das klappt auch mit TXT und einem PCA8574, siehe ft:pedia 2/2019.

Beste Grüße,
Dirk

Re: ftduino mit Folien Keypad

Verfasst: 03 Mai 2020, 23:30
von Pirx
Hallo,

Druck ist fertig.
Sieht gut aus und passt, vielen Dank an Peter für die schnelle Hilfe.

Mit dem Keypad ist das Modell jetzt unabhängig von einem PC. Passende I2C Display gibt es in unüberschaubarer Menge.
Man kann den FTduino mit einer 9V Batterie im Batteriehalter versorgen. Das reicht für das Keypad.
Für die Steppermotoren braucht man natürlich das separate Netzteil.

Pirx

Re: ftduino mit Folien Keypad

Verfasst: 04 Mai 2020, 16:51
von PHabermehl
Hallo zusammen,

ich hab das 3D-Druck-Gehäuse jetzt veröffentlicht:
viewtopic.php?f=38&t=6068




Gruß
Peter