Können einfache Mikrocontroller Signale von einem USB-zu-RS232-Konverter lesen, der an eine USB-Maus angeschlossen ist?

Ich versuche, so viele USB-Mäuse an mein Arduino anzuschließen, und wurde gerade über USB-zu-RS232-Konverter informiert.

Kann mir jemand sagen, ob es möglich ist, einfach eine USB-Maus an einen USB-zu-RS232-Konverter anzuschließen, einige Drähte vom RS232-Ausgangsstecker an den Mikrocontroller anzuschließen und dann die Daten für alle Mausereignisse zu lesen?

USB-RS232-Adapter sind nicht bidirektional.
Warum willst du das machen? Vielleicht gibt es eine einfachere Lösung?
@starblue PC-Software, an der ich arbeite, würde von Eingaben mit mehreren Mäusen profitieren.
@zaf - JustJeffs Kommentar ist wirklich die Antwort auf Ihre Frage, aber haben Sie versucht, mehrere Mäuse an Ihren Computer anzuschließen? Das Ergebnis (zumindest auf Mac und Ubuntu) ist, dass die relative Bewegung jeder Maus den einzelnen Cursor steuert. Bewegen Sie Maus 1 nach rechts und Maus 2 nach oben, und das Ergebnis ist, dass sich der Cursor nach oben und nach rechts bewegt. Benötigen Sie mehrere Cursor? Wenn ja, müssen Sie benutzerdefinierte Hardware verwenden und Ihre eigene Cursor-Engine schreiben, und Sie gehen in die richtige Richtung.
@JustJeff Wie sind sie nicht bidirektional? Wollen Sie damit sagen, dass sie nicht sowohl Wirt als auch Sklave sind?
Ich bin überrascht, dass noch niemand darauf hingewiesen hat, und ich frage mich, ob ich falsch verstehe, was er tun möchte ... Sie können RS232 nicht direkt an Ihr Mikro anschließen, Sie müssen zuerst eine Pegelverschiebung vornehmen. Die einfachste Methode wäre so etwas wie ein FT232, aber Sie können aus all den Gründen, die bereits angesprochen wurden, keine Maus an den FT232 anschließen.
@Kellenjb - Ich denke, er meint, dass Sie die USB-Maus nicht an den USB-RS232-Adapter anschließen können (über einen hypothetischen Buchse-Buchse-Adapter oder Kabelmodifikationen) und Mauskoordinaten in RS232 auf der anderen Seite erhalten. Ja, sie sind also nicht bidirektional, da sie nicht als Host fungieren können.
@kevin Vermeer Das Problem mit der Formulierung als "bidirektional" impliziert, dass ein USB-zu-RS232-Konverter nicht in der Lage ist, zu senden und zu empfangen.
@Kellenjb - Es ist mir nie in den Sinn gekommen, es so zu lesen! Ich habe einen nicht-bidirektionalen Konverter als unfähig verstanden, in beide Richtungen zu konvertieren, nicht als unfähig, Informationen in beide Richtungen zu senden. Macht aber Sinn. Leider war die beste Antwort die Verwendung eines USB-PS / 2-Konverters und hatte nichts mit USB-Host -> RS232 zu tun.
@Kellenjb - was Kevin gesagt hat. Ich wollte keineswegs sagen, dass RS232 an sich nicht bidirektional ist; dass rs232 an sich bidirektional ist würde ich (!) als gegeben annehmen. Ich meinte nur, dass Sie kein USB-Gerät betreiben können, indem Sie versuchen, den Adapter von der RS232-Seite aus zu "hosten", wie Kevin vermutete.
Sieht so aus, als wäre es seit mehreren Jahren in X. Der Artikel verweist auch auf ähnliche Produkte für andere Systeme: en.wikipedia.org/wiki/Multi-Pointer_X

Antworten (6)

Nein, aber Sie könnten die Maus an einen USB-zu-PS/2-Konverter anschließen, wodurch die Maus in den synchronen seriellen Modus wechselt. Sie benötigen eine passende Mini-DIN-Buchse, die mit 5 V gespeist wird, aber das Decodieren der Daten sollte ziemlich einfach sein. Siehe hier für die Verkabelung.

USB-zu-PS2-Konverter

AKTUALISIEREN

Ich habe das gerade mit ein paar neuen Mäusen ausprobiert und sie haben gut funktioniert. Als nachträglicher Einfall - in Erinnerung daran, dass PS/2-Mäuse im asynchronen Modus mit einem PS/2-zu-DA9-Adapter arbeiten - habe ich versucht, USB => PS2 => Serial-Adapter (mit externer Stromversorgung) zu kaskadieren. Unnötig zu erwähnen, dass USB-Mäuse den alten asynchronen seriellen Modus nicht unterstützen (nun, es war einen Versuch wert!).

@MikeJ-UK wechseln alle Mäuse in diesen Modus, wenn PS2 angeschlossen ist?
@stevenvh Wollen Sie damit sagen, dass das passive Gerät USB-Signale in PS / 2-Signale konvertieren kann?
@Kellenjb - okay, mein Fehler. Ich muss zugeben, dass es zu klein aussieht, um die erforderliche Elektronik darin zu haben.
Siehe computer-engineering.org/ps2protocol für die Dekodierung des Protokolls.
Ich wäre überrascht, wenn neuere Mäuse diese Funktion haben.
Diese Dinger wurden ursprünglich mit Mäusen ausgeliefert, die genug Logik hatten, um zu erkennen, ob sie an USB oder PS2 angeschlossen waren, und tauchten in den 90er Jahren auf, als es noch Leute gab, deren Computer keine USB-Anschlüsse hatten. Es scheint, als wäre es ein ziemlicher Glücksfall, ob eine bestimmte moderne Maus einen PS2-Modus unterstützen würde. Obwohl PS2 für ein Mikro einfacher zu handhaben wäre als USB, wäre es immer noch komplizierter als RS232, da PS2 separate Takt- und Datenleitungen verwendet und es ein genaues Protokoll für die Verwendung gibt.
Uhr und Daten - vielleicht können Sie es an einen SPI-Port anschließen. Sie müssten das Protokoll noch implementieren.
Diese Adapter ändern nur die Form des Steckers, es gibt keine Elektronik im Inneren. Wenn die Maus den Modus "8042" (AKA PS/2) unterstützt, kann eine entsprechend verdrahtete USB-Buchse verwendet werden.

Nein. Die USB-Maus muss an einen USB-Host angeschlossen werden. Der USB-zu-RS232-Controller ist kein USB-Host. Es ist ein USB-Gerät, wie die Maus, und verlässt sich darauf, dass der Host verschiedene USB-Bus-Verwaltungsfunktionen ausführt.

Einige High-End-ARMs können als USB-Hosts fungieren.
Ja, aber handelsübliche USB/RS-232-Konverter funktionieren nicht auf diese Weise.

Verzichten Sie auf Arduino und verwenden Sie eine MCU mit Host-Modus oder USB OTG (On The Go). Es wird nicht viel kosten (ich würde einen PIC24FJ256GB110 mit USB OTG verwenden), aber die Entwicklung der Software wird eine Menge Arbeit sein, obwohl Microchip einen kostenlosen USB-Software-Stack hat:

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en531089

Ist es nicht möglich, ein Arduino so zu programmieren, dass es als USB-Host fungiert?
Es könnte nur mit einem cleveren, in Assembler geschriebenen Code möglich sein, aber es wäre nicht in der Lage, irgendetwas anderes zu tun, als irgendetwas mit den Daten zu tun.
Ich nehme an, dass sich Oxakhil auf das Host-Schild bezog, das einen MAX3421E-USB-Host-IC hat. Mit dem originalen USB-B-Anschluss, ja, werden Sie es schwer haben.
Das Problem bei der Verwendung eines PIC allein und des Mikrochip-Stacks besteht darin, dass sie keine Hubs unterstützen, sodass sie keine gute Lösung für mehrere USB-Mäuse sind, die an einen Mikrocontroller angeschlossen sind. Man kann jedoch einen externen USB-Host-Chip und einen Hub verwenden – zB Maxim 3421E und TI TUSB2046B, die ich erfolgreich zusammen verwendet habe.
Das Avrusb hat ein USB-Host-Bit erstellt, das nur für langsame Geräte funktionierte.

Sie sollten das USB-Host-Schild abholen . Es verfügt über einen USB-Host-Controller-Chip und wird mit unterstützender Software geliefert, mit der Sie mit Ihrer Maus sprechen können.

Wenn Sie eine USB-Maus, -Tastatur oder ein anderes HID anschließen möchten, schauen Sie sich diese Website an: https://www.circuitsathome.com/communicating-arduino-with-hid-devices-part-1

Normalerweise ist es eine gute Idee, eine Zusammenfassung eines Links zu geben, wenn Sie eine Antwort erstellen möchten (weil der verlinkte Inhalt verschwinden kann, was die Antwort ziemlich nutzlos macht). Wenn Sie nur den Link löschen möchten, können Sie dies jederzeit in einem Kommentar tun!

Wenn Sie einen USB-zu-RS232-Konverter finden, der den USB-Geräteeingang in einen RS232-Ausgang konvertiert, dann ja! Leider kostet diese Art von Gerät 100 Dollar oder mehr, ohne die Zeit zu berücksichtigen, die für die Suche aufgewendet wird. Mit einem billigen 32-Bit-Mikrocontroller mit USB-Stack oder einem vollständigen Betriebssystem sind Sie besser dran.