Moin, ich suche eine einfache, billige und kleine Lösung um Kontakt geschlossen/ offen über USB per C# .net XY am PC auszulesen. Ich hab das mit Arduino und CO. schon gelöst würde mich jedoch über eine kleinere, günstigere und einfacherer Lösung freuen. Gibt es da etwas. Kennt einer einen Ansatz. Chat GPT hat mich schon dazu gebracht ein USB Kabel zu zerschneiden und D+ mit Gnd zu 'kontakten' nur um dann später zu behaupten, dass das doch alles nicht geht :)
:
Verschoben durch Moderator
Henning H. schrieb: > Chat GPT hat mich schon dazu gebracht ein USB Kabel zu > zerschneiden und D+ mit Gnd zu 'kontakten' nur um dann später zu > behaupten, dass das doch alles nicht geht :) Künstliche Intelligenz schlägt menschliche Dummheit 1:0 sorry, der muste sein ;-) Ich würd einen ATTiny45 mit VUSB nehmen und einen Tastatur-Tastendruck simulieren.
:
Bearbeitet durch User
Henning H. schrieb: > ich suche eine einfache, billige und kleine Lösung um Kontakt > geschlossen/ offen über USB per C# .net XY am PC auszulesen Ohne spezifische Angaben was einfach, billig und klein ist? :-) Eine einfache und kleine Variante wäre etwas fertiges zu kaufen (z.B. ein fertiges FTDI Kabel). Da wäre der Chip im USB Stecker. Kabel kann man auf die benötigte Länge abschneiden. Also schon gut klein alles. Abfrage dann über die D2XX Driver. Brauchst du nur runter laden und in dein Projekt einbinden. Fertig. Eine andere billige Möglichkeit wäre ein kleines Board vom Chinesen o.ä. zu bestellen. Ich würde einen Raspberry Pi Pico oder STM32 (G oder F Serie mit nativem USB) nehmen. Gibt es genügend Implementierungen. Ist eigentlich nur Copy/Paste. Dann musst du nur den richtigen COM Port finden und die Daten extrahieren. Oliver R. schrieb: > Ich würd einen ATTiny45 mit VUSB nehmen Den Digispark (ATiny85) gibt es sehr günstig und ist auch sehr klein. Allerdings geht glaube ich VCP nicht mehr zuverlässig an neuen Betriebssystemen. Oliver R. schrieb: > und einen Tastatur-Tastendruck simulieren Boah, das ist ja schon etwas hässlich. Und der schreibt dir dann schon in deine E-Mails rein wenn er angesteckt ist? :-)
:
Bearbeitet durch User
Den billigsten USB-Stick von Aliexpress kaufen (die Sorte mit gefläschtem Flash), den Taster in die Vcc-Leitung bauen, und abfragen ob der Stick erkannt wurde.
Und wie wäre so was: https://www.adafruit.com/product/4471 MCP2221 USB Bridge? Und dann in C# z.B. so was: https://github.com/smdn/Smdn.Devices.MCP2221 um auf das Ding zuzugreifen? So würde ich es auf jeden Fall mal probieren. Daniel
Noch eine Idee: Aus einer billigen 5-Euro USB-Tastatur die Mini-Platine ausbauen und einen beliebigen Kreuzungspunkt der Matrix als 'Taster' verwenden. Dann ist kein gesonderter Treiber nötig.
Wenn es darum geht, eine Taste abzufragen, ist der Weg über eine serielle Schnittstelle ein ziemlicher Umweg. Mit einem usb-fähigen µC kann ein HID-Gerät implementiert werden, in diesem Fall eine Tastatur, die einen Tastendruck abliefert. Man sucht sich einen Tastencode aus, der nicht auf einer normalen Tastatur vorkommt, und kann den z.B. mit einer der Hotkey-Funktionen der Win32-API registrieren, so daß das Programm auch dann den Tastendruck mitbekommt, wenn es nicht den Eingabefocus hat. Und da HID nur low-speed-USB benötigt, ist eine Lösung auf Basis von V-USB spezifikationskonform, womit der Digistump/Digispark-Ansatz mit Tiny85 wieder im Spiel ist. Einen Treiber braucht man erst recht nicht, um irgendwelche Com-Ports o.ä. muss man sich natürlich auch nicht kümmern.
N. M. schrieb: > Und der schreibt dir dann schon > in deine E-Mails rein wenn er angesteckt ist? :-) Und was stört es, wenn in der EMail plötzlich <strg>+<alt>+F5 oder irgendwas anderes unbenutztes gedrückt wird? Und ob ein Tiny45 oder ein Tiny85 hängt meist nur davon ab, was man noch rumliegen hat.
Oliver R. schrieb: > Und was stört es, wenn in der EMail plötzlich <strg>+<alt>+F5 oder > irgendwas anderes unbenutztes gedrückt wird? Wenn ich mit dem PC arbeiten will stört es mich zumindest sehr wohl wenn er <strg>+<alt>+F5 drückt. Denn was dann passiert ist vom jeweiligen Programm abhängig das gerade im Vordergrund ist. Oliver R. schrieb: > Und ob ein Tiny45 oder ein Tiny85 hängt meist nur davon ab, was man noch > rumliegen hat. Das stimmt. Das ist prinzipiell egal. Den 85er hab ich nur ins Spiel gebracht weil eben der Digispark so weit verbreitet ist. Außerdem ist er klein, preislich gut und hat USB Stick Format. Braucht man nur noch ein Gehäuse für (drucken).
:
Bearbeitet durch User
Oliver R. schrieb: > Und was stört es, wenn in der EMail plötzlich <strg>+<alt>+F5 oder > irgendwas anderes unbenutztes gedrückt wird? Deswegen nimmt man ja auch einen unbenutzten Tastencode. Ctrl-Alt-F5 ist schon eher was nervendes. https://www.obdev.at/products/vusb/hidkeys.html
Man könnte einen USB-UART Umsetzer nehmen und die Handshakesignale (CTS) schalten. Unter C gibt es GetCommModemStatus und WaitCommEvent. Kann sein, daß man da unter C# selber Hand anlegen muß.
Pullup an D+ sollte der PC auch erkennen. Also Spannungsteiler 1k0/1k5 und die Mittensanzapfung ueber den Taster an D+.
Peter D. schrieb: > Man könnte einen USB-UART Umsetzer nehmen und die Handshakesignale (CTS) > schalten. > Unter C gibt es GetCommModemStatus und WaitCommEvent. > Kann sein, daß man da unter C# selber Hand anlegen muß. Von FTDI gibt es da wie gesagt fertige DLLs für C#. Muss man nur einbinden. Je nach Chip können da unterschiedlich viele Pins für IO verwendet werden (ich meine mindesten 4 CBUS Pins). Je nach Verfahren (es gibt mehrere) sind die Zugriffe und Zugriffszeiten unterschiedlich. Bieten andere USB-UART Umsetzer bestimmt auch.
Kann der MCP2221A auch. Der braucht aber keine Kerneltreiber dafür, der nutzt CDC-ACM für den UART und HID für den Rest. Nebenbei gibts da noch ein paar Gimmicks wie ADC und DAC und I2C. Microchip hat für Windows-User auch DLLs für C# und VB. https://www.microchip.com/en-us/product/mcp2221a fchk
Uwe B. schrieb: > Pullup an D+ sollte der PC auch erkennen. Also Spannungsteiler 1k0/1k5 > und die Mittensanzapfung ueber den Taster an D+. Viele PCs haben einen mit "RESET" beschrifteten Taster. Den erkennen sie auch.
Harald K. schrieb: > Viele PCs haben einen mit "RESET" beschrifteten Taster. Wie viele aktuelle PCs haben den? Und der ist nicht per USB angebunden.
Niklas G. schrieb: > Wie viele aktuelle PCs haben den? Und der ist nicht per USB angebunden. Die Idee, mit einem Pullup an einer USB-Datenleitung einen Tastendruck "erkennbar" zu machen, halte ich mit für eine der schlechtesten bislang vorgestellten.
Frank O. schrieb: > https://www.tameno.de/shop/switch/usb-switch/switch-universal-u-hid_pcb-nano-usb-taster-interface 75 Tacken 😁 Das ist doch ein Scherz von denen.
Der TO hat keinen Preis genannt. Hier geht es für die Hälfte und womöglich viel umfangreicher: https://www.amazon.de/VAYDEER-programmierbare-programmierbaren-mechanische-Mini-Tastatur/dp/B08V1LZ128/ref=sr_1_5?
N. M. schrieb: > Das ist doch ein Scherz von denen. Die sind in Bayern. Da ist so etwas Raketentechnologie.
Könnte man dafür auch eine einfache USB-Maus mißbrauchen ? Da hätte man auch gleich 3 Taster. So eine USB-Maus hat man meist noch darumliegen und die kosten ja auch fast nix mehr. Ich stelle mir das mal so vor : Mit der Geräte-ID oder GUID o. ä., die man erst auslesen müßte, könnte exakt diese Maus identifiziert werden. Mit den Windows-Messages $0201 : wm_LButtonDown + $0202 : wm_LButtonUp für z.b. die linke Maustaste wären die Zustände ja leicht per API raus zu bekommen. Ist jetzt nur mal so eine Idee von mir. Die Experten hier wissen da wahrscheinlich mehr darüber.
Frank O. schrieb: > Der TO hat keinen Preis genannt. Naja. Er meinte dass er es bereits mit "Arduino" umgesetzt hat und dass er etwas günstigeres sucht. Das kann natürlich alles sein. Einen originalen Uno bekommt er für unter 20€. Einen ESP oder Digispark für 4-5€. Und einen wirklich kleinen RP2040 für um die 2€. Heinz B. schrieb: > Könnte man dafür auch eine einfache USB-Maus mißbrauchen ? > Da hätte man auch gleich 3 Taster. Keine Ahnung. Kann man die Events/Clicks wo diese Maus generiert abfangen damit nicht ständig jemand auf dem Desktop rumklickt?
Man kann per API alle 3 Tasten kontrollieren und sogar ob die Maus bewegt wurde. Damit hatte ich mal so ein kleines Drag & Drop realisiert. Ich habe nur die Befürchtung, daß das mit 2 Mäusen (eine für Normalnutzung und die eine für die Tasterabfrage) kollidieren könnte. Ich würde da die mittlere Maustaste als Taster bevorzugen. Die braucht man eigentlich nicht oft. Eigentlich nur, wenn man lange Texte per Maus scrollt. Aber vlt. täte es ja auch ein ausgedienter Joystick.
:
Bearbeitet durch User
Oliver R. schrieb: > Künstliche Intelligenz schlägt menschliche Dummheit 1:0 Wahre Worte souverän gesprochen! (Virtuelle zehn Pluspunkte)
Heinz B. schrieb: > Ich würde da die > mittlere Maustaste als Taster bevorzugen. Die braucht man eigentlich > nicht oft. Du zeichnet also nicht mit CAD 😁👍
Harald K. schrieb: > Deswegen nimmt man ja auch einen unbenutzten Tastencode. Ctrl-Alt-F5 > ist schon eher was nervendes. OK, sch...lechtes Beispiel. Hab ich aber noch nie benutzt, die Kombination.
N. M. schrieb: > Du zeichnet also nicht mit CAD Nö, höchstens ganz selten. Meine Behauptung zum Gebrauch der mittleren Maustaste trifft wahrscheinlich nur auf mich zu. Dachte eher, daß ich zur Gruppe der Normal-User zähle. PS: hatte gerade gesehen, daß die WINMM.DLL, die zu Windows gehört, auch Joystick-Funktionen bereitstellt. Somit wäre das dann auch möglich.
:
Bearbeitet durch User
Ich würde zum kleinen Guloprog greifen. Der hat auch ein paar wenige Bits rein und raus, neben der Programmiermöglichkeit von Controllern. Billig und klein ist er auch. MfG. Andreas
N. M. schrieb: > dass > er etwas günstigeres sucht. > Das kann natürlich alles sein. Einen originalen Uno bekommt er f Bei mir war nur das "einfach" hängen geblieben. Hast recht. Aber zumindest bei der letzten von mir gelieferten Lösung (für den halben Preis), hat er programmierbare Taster.
Danke für die vielen Vorschläge... die Bestellung ist raus. @alle Ich versuch jetzt erstmal den Weg mit dem Adafruit MCP2221A. Ich weiß, dass ich ja Arduino etc. nicht wollte und jetzt doch so was in der Art versuche. Naja 6 € für das teil ist schon mal okay und ich hoffe das das Teil nicht so schnell den Hitzetot stirbt wie die Arduinos. Und von einem einfachen Schalter bin ich auch weg zu Lichtschranke :) Wenn dann alles nicht funzt und es qualmt melde ich mich :)
Henning H. schrieb: > ich hoffe das das > Teil nicht so schnell den Hitzetot stirbt wie die Arduinos. Ja, die verdammten Dinger kann man noch nicht einmal direkt an Drehstrom betreiben.
Henning H. schrieb: > Naja 6 € für das teil ist schon mal okay Das geht bestimmt auch für <1€ ... Henning H. schrieb: > as das > Teil nicht so schnell den Hitzetot stirbt wie die Arduinos. Naja, die Arduinos, zumindest die AVR-basierten, sind schon recht robust. Was die killt, ist für alle anderen Lösungen ziemlich sicher auch nicht so gut. Das heißt du solltest mal überprüfen wodurch der Arduino plötzlich überhitzt...
Peter D. schrieb: > Man könnte einen USB-UART Umsetzer nehmen und die Handshakesignale (CTS) > schalten. > Unter C gibt es GetCommModemStatus und WaitCommEvent. > Kann sein, daß man da unter C# selber Hand anlegen muß. Nein, muss man nicht. Der System.IO.Ports.SerialPort liefert das Zeug hübsch aufbereitet als Properties (synchron) oder als asynchrone Events. Es war nie einfacher, diesen Kram zu benutzen als mit .Net.
Ich hab gerade eben noch etwas mit dem RP2040 als SCPI Device über SerialUSB rumgespielt, weil ich sowas ähnliches auch noch gebrauchen könnte (8 DIs- und 8 DOs). Falls es jemand brauchen kann hängt es im Anhang. VID und PID sind definiert: https://github.com/raspberrypi/usb-pid Man könnte also in seiner UI nur nach diesen Devices suchen. Zusätzlich kann man ja wenn man die Schnittstelle offen hat noch den Identifier (*IDN?) auslesen um ganz sicher zu sein. Man kann noch die Eingaben besser abfangen und natürlich auch noch einige Funktionen erweitern, aber im groben geht es. Platz hat es noch genug:
1 | RAM: [== ] 15.3% (used 41336 bytes from 270336 bytes) |
2 | Flash: [ ] 0.2% (used 4038 bytes from 2097152 bytes) |
Niklas G. schrieb: > Das geht bestimmt auch für <1€ ... Als Willkommensgruß bei Ali bestimmt :-) Hab gerade den RP2040 für 0.80€ angezeigt bekommen. Allerdings Stückzahl 1. Normale Preise für den liegen eher bei 1.5-3€. Aber da gibt es wirklich kleine Boards.
N. M. schrieb: > Hab gerade den RP2040 für 0.80€ > angezeigt bekommen. Der kostet bei Reichelt auch nur 0.99 Euro: https://www.reichelt.de/raspberry-pi-rp2040-arm-cortex-m0--rpi-rp2040-p306486.html
Harald K. schrieb: > Der kostet bei Reichelt auch nur 0.99 Euro War nicht richtig ausgedrückt von mir. Ich meinte ein fertiges Board mit Quarz, Flash, usw. https://a.aliexpress.com/_EGFo4NX
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.