Ich habe einen Freund, der Schwierigkeiten hat, Maustreiber / Hersteller zu finden, die verschiedene Optionen für Legasthenie unterstützen. Das Invertieren der X- und Y-Achse ist eine einfache Funktion, die die meisten Programme und Treiber nicht kennen.
Mir kam der Gedanke, dass es möglich sein könnte, ein kleines USB-Gerät (ähnlich einem USB-Stick oder PS / 2-Adapter) zu konstruieren, an das ein Benutzer eine USB-Maus anschließen und mit ein paar DIP-Schaltern einen oder beide invertieren könnte Achsen.
Ich bin mit Programmierung (C # / C +) und Elektronik vertraut, bin mir aber nicht sicher, ob es ein Standardprotokoll für USB-Mäuse gibt.
Ich würde es vorziehen, die Verwendung eines seriellen Konverters zu vermeiden (obwohl ich weiß, dass er ein mehr oder weniger Standardprotokoll hat). Hat jemand USB-Mäuse mit einem benutzerdefinierten Elektronikprojekt verwendet oder kann er erklären, ob der Aufbau eines USB-zu-USB-Adapters zum Umkehren der Bewegung möglich ist?
quelle
Antworten:
Dies ist wahrscheinlich alles andere als die billigste oder eleganteste Lösung, bietet Ihnen jedoch große Flexibilität.
Ein Arduino- Einplatinencomputer kann auf einen Windows-Hostcomputer wie ein Human Interface Device (HID), dh eine Maus, schauen . Es ist jedoch nicht auf Mäuse beschränkt; Tastaturen und andere Geräte sind ebenfalls versteckt.
Sie können eine serielle Maus direkt an den seriellen Anschluss des Arduino anschließen oder, wenn Sie eine USB-Maus bevorzugen, diese über ein USB-Host-Shield mit dem Arduino verbinden .
Da Sie das Arduino in C programmieren können, können Sie alle Arten von Eingaben von der Maus in beliebige Befehle übersetzen, die Sie gerne an den PC senden. Sie könnten beispielsweise einen dreifachen Klick mit der rechten Maustaste in einen Tastatureingabebefehl übersetzen, der Himmel ist die Grenze.
quelle
Was ist mit einer Softwarelösung?
Unter Windows können Sie die Mausaktionen mit einer Anwendung abfangen, die so einfach sein kann wie dieses AutoHotKey- Skript:
Dieselbe Logik kann verwendet werden, um das Problem in jeder Anwendungsprogrammierumgebung (C ++, C # usw.) zu lösen, die auf die Windows-Cursorfunktionen zugreifen kann .
Unter Linux ist es so einfach wie das Ändern einer Eigenschaft für Ihre Maus
xinput
, wie Ben schrieb:Sie müssen
xinput -list | grep -i 'mouse'
"USB Optical Mouse" durch Ihren Gerätenamen ( ) ersetzen .Weitere Fragen zu dieser Software richten Sie bitte an Stack Overflow , unsere Website für die Programmierung.
quelle
Dies wäre ziemlich schwierig zu erreichen. Ihr Gerät muss sich sowohl als USB-Host als auch als USB-Peripheriegerät verhalten. Es gibt vielleicht Mikrocontroller, die das können, aber am Ende müssen Sie möglicherweise zwei verwenden, einen als Host und einen als Slave.
Wenn Sie beispielsweise die Verwendung einer seriellen Maus vorschlagen, ist Ihre Arbeit viel einfacher zu erledigen. Sie benötigen lediglich einen Mikrocontroller mit 2 seriellen Schnittstellen sowie zwei Chips für die serielle Schnittstelle (wie MAX202 oder die neuere Version).
Eine noch einfachere Option könnte darin bestehen, ein Windows-Programm zu schreiben, das die Inversion ausführt.
quelle
Sie können den Open-Source- LUFA-Stack verwenden , um native USB-HID-Projekte (Human Interface Device) durchzuführen. Adafruit verfügt über ein Open Source- Entwicklungsboard , das mit dem LUFA-Stack kompatibel ist.
Die Verwendung einer USB-Maus mit Ihrem benutzerdefinierten Board wäre schwierig. Die Verwendung einer PS / 2-Maus sollte jedoch viel einfacher sein. Das Protokoll ist einfacher und Sie können wahrscheinlich irgendwo eine Bibliothek finden. Hier ist eine Arduino-Bibliothek, die von einer PS / 2-Maus lesen kann, was von Nutzen sein könnte.
Für den PS / 2-Anschluss verfügt SparkFun über eine Breakout- Karte und einen Anschluss , die funktionieren sollten.
Wahrscheinlich können Sie auch einige Software auf dem Computer ändern, um dies zu tun. Dies wäre am billigsten, aber weniger portabel. Eine schnelle Google-Suche zeigt, dass dies im Grunde ein Befehl für einen Linux-Computer ist.
quelle
OK, hier ist eine mögliche Lösung:
Wie Ben sagte, wäre dies viel einfacher, wenn Sie eine PS / 2-Maus verwenden würden, da dies im Grunde einfache serielle Daten sind.
Wenn Sie dies jedoch wirklich als USB-Gerät benötigen, können Sie möglicherweise einen USB-PS / 2-Konverter und einen PS / 2-USB-Konverter verwenden und Ihr Gerät dazwischen platzieren.
Ich habe mich umgesehen und konnte nicht sofort einen Chipsatz finden, der die Arbeit erledigt, obwohl sie existieren müssen. Aber Sie könnten einfach die Einheiten kaufen :
quelle
Eine weitere Lösung wäre die Installation des MAF-Soft-Mausachsen-Wechselrichtertreibers für Windows.
quelle