Alte Tastatur als billigen Rückmeldedecoder

Für alle Diskussionen rund um digitale Modellbahntechnik und alles zum Thema Software Modellbahnplanung und Modellbahnsteuerung
Antworten
Benutzeravatar
Flashbanger
Forumane
Beiträge: 366
Registriert: Samstag 29. Juli 2006, 22:57
Kontaktdaten:

Alte Tastatur als billigen Rückmeldedecoder

Beitrag von Flashbanger » Donnerstag 12. August 2010, 21:18

Hallo liebes Forum,

Ich hatte gerade eine Idee. Da ich eine alte Tastatur auf dem Schreibtisch liegen hatte, die ich nichtmehr brauche dachte ich mir "schraubste die mal auf..." Gesagt getan.

Da eine Tastatur ja nix anderes macht als zu scannen welcher Taster gerade gedrückt wurde, und ein Rückmelderbaustein wie etwa ein Reed-Kontakt ja auch nix anderes macht, als einen Stromkreis zu schließen kam mir die idee einfach mal die gelochte Trennfolie gegen eine durchgängige zu ersetzen und mittels einer büroklammer einen kontakt manuell auszulösen. Und siehe da : ein Buchstabe erscheint am PC.

Das ganze scheint also eine Zukunftsperspektive zu haben. Doch nun meine Frage: Hat schonmal jemand von euch eine ähnliche Idee gehabt und umgesetzt? Oder kenn jemand ne Internetseite wo eine Tastatur in ähnlicher Art zweckentfremdet wurde? Bei den aktuellen Tastaturpreisen wäre eine derartige Rückmeldung im Vergleich zum Modellbahnzubehör ja fast geschenkt. Außerdem wär der Anschluss an den PC auch sehr sehr gewohnt und einfach.
MfG Flashbanger
______________________
CU+6050 + C-Gleis
Software: TC4.7 oder
MBSS v 0.1 beta

:jump:

Benutzeravatar
HaNull
Forumane
Beiträge: 4381
Registriert: Freitag 2. Februar 2007, 01:47
Wohnort: Rhein-Sieg-Kreis

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von HaNull » Donnerstag 12. August 2010, 22:08

Flashbanger hat geschrieben:Außerdem wär der Anschluss an den PC auch sehr sehr gewohnt und einfach.
Eine Tastatur lässt sich einfach anschließen.
Bei der zweiten wird's schon schwierig.

Normale Tastaturen kriegen bei 4 gleichzeitig gedrückten Tasten (Umschalt, Strg, Alt mal ausgenommen) mitunter schon Probleme.

Für fünf bis acht Rückmeldeleitungen wird es wohl funktionieren (geschickt über die Tastatur verteilt).
Aber 80 Rückmeldeleitungen mit einer Tastatur, das dürfte nicht gehen (hängt vielleicht von der Tastatur ab; vielleicht kann man da auch mit Dioden nachhelfen).

Hintergrund: ich habe mal für ein Computerspiel untersucht, wieviele Tasten sich gleichzeitig abfragen lassen.
Wenn ich R, C und M drücke und halte, reagiert mein Computer auf I nicht mehr, auf O aber schon.
████████   Gruß aus NRW
████████   Thomas
████████   Multi-MISTler: 1. Siegburg (RSK) - 2. Köln rrh. - 3. Rheinbreitbach

Benutzeravatar
Marsupilami
Forumane
Beiträge: 1785
Registriert: Samstag 10. Januar 2004, 01:14
Wohnort: Am Harz...

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von Marsupilami » Freitag 13. August 2010, 00:28

HaNull hat geschrieben:Wenn ich R, C und M drücke und halte, reagiert mein Computer auf I nicht mehr, auf O aber schon.
Das hat mit der internen Kontaktierung zu tun - es gibt nicht für jede Taste einen eigenen Eingang am Controller, die Tasten werden in einer Art Matrix abgefragt.

Man kann übrigens sehr wohl mehrere Tastaturen gleichzeitig anschliessen (per USB), die arbeiten dann aber auch nur parallel.

Benutzeravatar
HaNull
Forumane
Beiträge: 4381
Registriert: Freitag 2. Februar 2007, 01:47
Wohnort: Rhein-Sieg-Kreis

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von HaNull » Freitag 13. August 2010, 08:20

Marsupilami hat geschrieben:Das hat mit der internen Kontaktierung zu tun - es gibt nicht für jede Taste einen eigenen Eingang am Controller, die Tasten werden in einer Art Matrix abgefragt.
So weit war ich auch schon. Deshalb schrieb ich, dass man das mit zusätzlichen Dioden vielleicht noch verbessern kann.

Der Worst Case: man schließt 85 Rückmeldekanäle an eine Tastatur an und testet jeden Rückmeldekanal einzeln - das klappt.
Und bei laufendem Betrieb mit vielen Zügen hat man dann wunderbare, unerklärliche Probleme ...
Marsupilami hat geschrieben:Man kann übrigens sehr wohl mehrere Tastaturen gleichzeitig anschliessen (per USB), die arbeiten dann aber auch nur parallel.
Daran (USB) hatte ich nicht gedacht. Aber es bestätigt meine Aussage insofern, als weitere Tastaturen dann keine neuen, unabhängigen Eingänge bringen.
████████   Gruß aus NRW
████████   Thomas
████████   Multi-MISTler: 1. Siegburg (RSK) - 2. Köln rrh. - 3. Rheinbreitbach

rob

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von rob » Freitag 13. August 2010, 17:33

Hallo !
Im Prinzip sendet die Tastatur 8 Bit seriell. Das macht 8 Kontakte die man nachbilden könnte. Wie willst du die ankommenden Daten den auswerten und welcher Software sollen sie zur Verfügung gestellt werden ?
Ciao rob

Benutzeravatar
Flashbanger
Forumane
Beiträge: 366
Registriert: Samstag 29. Juli 2006, 22:57
Kontaktdaten:

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von Flashbanger » Freitag 13. August 2010, 17:35

Daran (USB) hatte ich nicht gedacht. Aber es bestätigt meine Aussage insofern, als weitere Tastaturen dann keine neuen, unabhängigen Eingänge bringen.
Das ist nicht ganz richtig. Wenn man 2 Tastaturen anschließt, legt Windows diese Zusammen, somit würde es für die Software keinen Unterschied machen, welche Tastatur den Tastendruck auslöst. Man kann das ganze umgehen, indem man den Standart-Tastaturttreiber überlagert (layered Driver). Dann könnte man auch verhindern, dass die Loks einem "in die Tastatur funken". Die umgebauten Tastaturen würden dann nichtmehr als Tastatur erkannt werden, sondern als sonstiges Gerät.

Unter Windows siehts daher leider sehr düster aus.... treiberprogrammierung ist mir eine Ebene zu tief.

Doch unter Linux läuft es schon(halbwegs). Dort kann man die Tastaturen über ihre Dev-Dateien anzapfen.
So weit war ich auch schon. Deshalb schrieb ich, dass man das mit zusätzlichen Dioden vielleicht noch verbessern kann.
Es gibt verschiedene Tastaturtypen. S. G. "n-key rollover" Tastaturen können beliebig viele Tasten gleichzeitig als gedrückt erkennen. Außerdem kann man durch geschickte anordnung der Rückmeldekontakte verhindern, dass es überhaupt zu rollovers kommt

Das nächste Argument ist der Preis.... was heutzutage eine USB-Tastatur kostet, und selbst wenn man nur die Hälfte oder ein Viertel der möglichen Kontakte nutzt ist es im vergleich zu einem S88 Baustein, oder Bausatz immernoch verdammt günstig. Außerdem müssen die Tastaturen ja nicht neu sein.

Gruß Flashbanger
MfG Flashbanger
______________________
CU+6050 + C-Gleis
Software: TC4.7 oder
MBSS v 0.1 beta

:jump:

Benutzeravatar
Flashbanger
Forumane
Beiträge: 366
Registriert: Samstag 29. Juli 2006, 22:57
Kontaktdaten:

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von Flashbanger » Freitag 13. August 2010, 17:47

Im Prinzip sendet die Tastatur 8 Bit seriell. Das macht 8 Kontakte die man nachbilden könnte. Wie willst du die ankommenden Daten den auswerten und welcher Software sollen sie zur Verfügung gestellt werden ?
Die Tastatur sendet deutlich mehr. Sie fragt die Kontakte in einer 8x16er Matrix ab(zumindest meine, die ich geöffnet habe). Das entspricht 128 Tasten. Die Tastatur nutzt davon normalerweise nur 101-105. Da es bei Tastaturen zu "rollover" kommen kann kann man nicht alle Tasten nutzen. Es sind jedoch deutlich mehr als 8! Ich schätze mal so 30-50. Bei oben genannten n-rollovers sogar nahezu die vollen 101-105.

Die Daten kommen beim PC als Scancodes an. Diese müssen von mir in Buchstaben oder Nummern übersetzt werden, und dann dem entsprechenden Steuerungsprogramm entweder direkt(wenn ich das steuerungsprogramm selbst schreibe) oder indirekt(mittels eines virtuellen Rückmeldeinterfaces zugespielt werden.
MfG Flashbanger
______________________
CU+6050 + C-Gleis
Software: TC4.7 oder
MBSS v 0.1 beta

:jump:

rob

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von rob » Freitag 13. August 2010, 18:58

Die Tastatur sendet ASCI Code das sind 255 oder vielleicht 512 mögliche unterschiedliche Codes wären 8/16 bit = max 16 Kontakte.Warum baust du nicht Rückmelder aus z.B Attiny 2313 und sendest die Daten dann seriell.Macht dann bei 8 Bit Adresse + 8 Bit Daten ausreichend Rückmelder. Wenn du die Software selber schreibst ist der CommPort doch relativ einfach abzufragen.
Ciao rob

Benutzeravatar
Marsupilami
Forumane
Beiträge: 1785
Registriert: Samstag 10. Januar 2004, 01:14
Wohnort: Am Harz...

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von Marsupilami » Freitag 13. August 2010, 20:33

rob hat geschrieben:Die Tastatur sendet ASCI Code...
Nein, tut sie nicht!

Nenn mir doch mal die ASCII-Codes für die Funktionstasten, Cursortasten, Shift, etc....

rob

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von rob » Samstag 14. August 2010, 11:18

Das Prinzip der Ascii / ISO Codierung der Tastatur kann man einfach mal Googeln.
Die Abfrage der Tastencodes ging schon sehr einfach mit Basic.
Das Problem sehe ich wo ganz anders :
- 1. braucht man die Tastatur in Modellbahnsoftware z.B zur Eingabe von Zugnummern usw.
- 2. Funktionsweise der Tastatur, Zeilen Spalten Matrix,kann man nicht so einfach über Dioden ansteuern.
Ciao rob

Benutzeravatar
HaNull
Forumane
Beiträge: 4381
Registriert: Freitag 2. Februar 2007, 01:47
Wohnort: Rhein-Sieg-Kreis

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von HaNull » Samstag 14. August 2010, 11:39

rob hat geschrieben:Das Prinzip der Ascii / ISO Codierung der Tastatur kann man einfach mal Googeln.
Die ASCII-Codes kommen aus dem Tastaturtreiber im PC, nicht aus der Tastatur.
Die Tastatur kennt nur Scan-Codes (da gibt es kein QWERTY und kein QWERTZU).

Ein Mikroprozessor in der Tastatur kommuniziert mit einem Mikroprozessor im PC.
Wie die Tastatur aufgebaut ist, ist dabei völlig unerheblich und kann von Tastatur zu Tastatur unterschiedlich sein.

Für den Rückmeldebetrieb kann dies bedeuten, dass manche Tastaturen besser, andere schlechter geeignet sind.

Vielleicht legt man Rückmeldekontakte entlang einer Strecke gebündelt auf eine oder zwei Zeilen bzw. Spalten der Tastatur, um so zu steuern, welche Kontakte gleichzeitig auftreten können.
████████   Gruß aus NRW
████████   Thomas
████████   Multi-MISTler: 1. Siegburg (RSK) - 2. Köln rrh. - 3. Rheinbreitbach

Benutzeravatar
Flashbanger
Forumane
Beiträge: 366
Registriert: Samstag 29. Juli 2006, 22:57
Kontaktdaten:

Re: Alte Tastatur als billigen Rückmeldedecoder

Beitrag von Flashbanger » Samstag 14. August 2010, 12:38

Vielleicht legt man Rückmeldekontakte entlang einer Strecke gebündelt auf eine oder zwei Zeilen bzw. Spalten der Tastatur, um so zu steuern, welche Kontakte gleichzeitig auftreten können.
Genau so hatte ich das geplant. Wenn man keine Dauerkontaktmelder sondern momentkontaktmelder einbaut ist die warscheinlichkeit, dass zeitgleich 3 kontakte mit jeweils einer unterschiedlichen matrixkomponente betätigt werden generell schon relativ gering.

Wenn man diese Melder dann z. b. alle auf einem bahnhofsgleis installiert(um den Zug realistisch abbremsen zu lassen), kann man von Anfang an sicher sein, das der zug niemals gleichzeitig mehrere kontakte betätigt. Für viele andere Gleisführungen gibt es ähnliche "logik"-schaltungen.
MfG Flashbanger
______________________
CU+6050 + C-Gleis
Software: TC4.7 oder
MBSS v 0.1 beta

:jump:

Antworten