Anzeige:

Sensoren mit kurzer Signaldauer über USB-Tastatur

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

Sensoren mit kurzer Signaldauer über USB-Tastatur

Von everon am 23.02.2013 15:04

Hallo,
zunächst mal vielen Dank dass Du diesen Artikel liest.

Zum Projekt. Ich möchte eine Art Fahrradtacho am PC realisieren.
Zu diesem Zweck möchte die erforderlichen Sensorsignale über einen USB-Tastatur-Chip
in meine Software einspielen. Die Vorteile die ich darin sehe liegen darin,
dass ich mich nicht um die Programmierung eines geeigneten USB-Treibers kümmern
muss.

Der Reed-Kontakt wird wie beim normalen Fahrradtacho über einen Speichenmagnet geschlossen.
Die Kabel des Reed-Kontakts sind direkt auf "Tasten" im USB-Tatatur-Chip gelötet und
lösen die entsprechende Taste aus. Auf Softwareseite wird ein Keyboard-Hook installiert der
die Taste abfängt, verarbeitet und von der Nachrichtenschleife entfernt.

Das System funktioniert bei langsammen Geschwindigkeiten (wo der Kontakt durch den
Speichenmagneten lange geschlossen ist) problemlos. Wenn die Geschwindigkeit steigt, reicht
scheinbar die Schließungszeit nicht mehr aus um einen zuverlässigen Tataturbefehl auszulösen, da der
verwendete chip zum Einen einen Scanintervall von 4 ms aufweist und eine "Debounce Time" (also die Zeit
wie lange die Taste mindestens gedrückt sein muss) von 12ms benötigt. Bei höheren Geschwindigkeiten
scheint der Speichenmagnet nur eine kürzere Schließungszeit zu generieren.

Fällt jemanden evtl. eine Lösung für das Problem ein?

Ein möglicher Lösungsweg wäre evtl. Folgender. Ich hoffe ich kann mich klar genug ausdrücken und
bitte haltet mir zu Gute, dass ich bisher wenig Ahnung von Elektronik habe.

Was mir helfen würde, wäre evtl. ein "Bauteil" was durch den Reedkontakt getriggert wird und auch auf
eine kurze Schließungszeit reagiert, und was seinerseits dann über einen klar definierten Zeitraum
(z.b. immer 20 ms lang) den USB-Tastatur-Chip anspricht.

Weiss jemand ob es so ein Bauteil gibt und wie es heißt?
Evtl. Bezugsquellen?

Ich bin auch für anderweitige Lösungsmöglichkeiten sehr dankbar.

Vielen Dank an Alle die sich die Mühe gemacht haben diesen Artikel zu lesen!
Herzlichen Dank an Alle die antworten!
Lieben Dank an Alle die mir weiterhelfen können!

everon

Re: Sensoren mit kurzer Signaldauer über USB-Tastatur

Von Alv am 23.02.2013 17:37

Erstmal ganz einfach: Versuch mal mehrere Speichenmagneten hintereinander...

Elektronisch: Ein Monoflop, das bei Trigger immer einen konstanten Impuls ausgibt.

Anderer Vorschlag: Statt einem USB-Keyboard ein USB-Serialport verwenden.

Von everon am 25.02.2013 07:53

Hallo,
danke für die Antwort.

>Erstmal ganz einfach: Versuch mal mehrere Speichenmagneten >hintereinander...

Ganz wichtig, vor lauter Aktionismus hatte ich dies ganz vergessen. Denn falls es damit auch nicht funktioniert hat es doch nichts mit der Schließungszeit zu tun.

Vielen Dank für den Tip mit dem Monoflop. Werde mich da mal schlau machen.

Sorry, bin Hardwaremäßig nicht so fit. Mit einem "USB-Serial-Port" meinst Du einen Microcontroller der Seriell kann und dann über einen USB-Adapter in den PC rein?
Oder kann man bei seriell auch einfach "auf die PIN's" löten und es kommt dann auch ohne vorgeschalteten Microcontroller das Signal im PC an.
Wie gesagt, kenn mich da nicht so gut aus.

Vielen Dank!
everon

Von Alv am 25.02.2013 17:50

everon hat folgendes geschrieben:
Mit einem "USB-Serial-Port" meinst Du einen Microcontroller der Seriell kann und dann über einen USB-Adapter in den PC rein?


Das ist, ähnlich wie ein Keyboardkontroller, ein fest programmierter µC, der auf der einen Seite einen Serialport (RS232) emuliert und die Signale per USB an den PC weitergibt.

Gibts fertig und dient dazu, moderne PCs ohne Serialport mit einem solchen zu versorgen, zB.: http://www.pollin.de/shop/dt/NTY5ODcyOTk-/Computer_und_Zubehoer/Hardware/Kabel_Stecker_Adapter/USB_Adapterkabel_auf_Seriell.html

Der Serialport wurde früher von Bastlern u.a. dazu benutzt, Signale vom PC zu überwachen bzw. damit erwas zu schalten.

Von everon am 27.02.2013 08:00

Ah ok, vielen Dank für die Info. Das würde es mir ermöglichen doch
über USB in den PC zu kommen.

Vielen Dank für die Info!!!

Von TheBug am 04.03.2013 13:07

Das mit dem USB/Seriell Adapter ist Grütze, da ist das Zeitverhalten meist nicht ordentlich definiert.

Offensichtlich kommt das Problem daher, dass der Reedkontakt nur relativ kurz schließt. Wenn die Drehzahl zu hoch wird erkennt der Tastaturcontroller das nicht mehr, weil es durch die Debounce-Funktion weggedrückt wird.

Ein Monoflop wäre da die richtige Lösung.

Oder ein IO-Warrior24, der hat zwei Capture Timer die Ereignisse mit 4µs Auflösung messen können.

Von everon am 04.03.2013 17:03

Hallo, danke für die Antwort.

Ich habe mir das Datenblatt des KeyWarrior24 runtergeladen.
Daraus habe ich entnommen dass tscan = 4 ms sind und tdebounce
3 * tscan.
Das ergäbe eine zu lange Schließungszeit. Also würde die Schließung des Reed-Kontaks bei schnellen Geschwindigkeiten wahrscheinlich nur zusammen mit einem Monoflop (wie Du geschrieben hast) funktionieren.

Oder hast Du mehr Infos zum Keywarrior, weil du von kürzeren Zeiten
berichtest und ich hab da was falsch im Datenblatt interpretiert?

Vielen Dank!
everon

Von TheBug am 06.03.2013 16:16

KeyWarrior24 ≠ IO-Warrior24

Von everon am 08.03.2013 22:12

>KeyWarrior24 ≠ IO-Warrior24

Da ist was dran Smile
Danke für den Tip.
Ich werde es mir gerne mal anschauen.

IO-Warrior

Von everon am 20.04.2013 15:24

Hallo,

vielleicht liest jemand diesen Thread und hat das gleiche Problem wie ich.
Der IO-Warrior 24 ist die Lösung.
Er hat 2 Capturetimer (überwachen einen PIN auf Veränderung) die auf 4 µs auflösen.

Also super genau!

Vielen Dank an alle für Ihre Hilfe
Everon

Anzeige: