Haben Sie jemals bemerkt, wie in der verrückten Welt der Technik immer ein schrulliges kleines Projekt versucht, ein Problem zu lösen, so dass seine einzigen Konkurrenten ein Linkshänder-Schraubendreher und ein selbstheiliger Wecker sein könnten?
Ich verwende zwei verschiedene Computer in meinem täglichen Workflow und teile ein einzelnes Tastatur/Maus -Paar. Wenn ich mehrere USB -Schaltkästen bei Amazon versuchte, merkte ich, dass sie alle unter ähnlichen Problemen leiden - es dauert eine Weile, bis der Vorgang eine Weile dauert. Der Vorgang ist ziemlich ungeschickt, wenn man versucht, den Knopf zu finden, und ehrlich gesagt wird es mit der Zeit einfach nicht besser.
Ich wollte nur eine Möglichkeit, eine Tastaturverknüpfung zu verwenden, um die Ausgänge schnell zu wechseln, gepaart mit der Fähigkeit, dasselbe zu tun, indem der Mauszeiger zwischen den Monitoren magisch bewegt wurde. Mit diesem Projekt können Sie beides tun, auch wenn Ihre Computer verschiedene Betriebssysteme ausführen!
Das Gerät fungiert als Vermittler zwischen Ihrer Tastatur/Maus und dem Computer und stellt Verbindungen mit beiden Computern gleichzeitig auf. Dann entscheidet es je nach Auswahl, wo Sie Ihre Maus- und Tastenanschläge weiterleiten sollen. Tastatur folgt der Maus und umgekehrt. Wenn Sie die Maus auf den anderen Desktop ziehen, wechselt es beide.
Um den Mauszeiger auf magische Weise zu springen, wurde der Deskriptor des Maus -HID -Berichts geändert, um absolute Koordinaten zu verwenden. Anschließend sammeln sich die Mausberichte (die noch in relativen Bewegungen vorhanden sind) intern an, wodurch die genaue Bilanz auf die Position hält.
Wenn Sie versuchen, den Monitorbereich in Richtung des anderen Monitors zu lassen, hält er die Y -Koordinate und tauscht das maximale x gegen ein minimales x aus und dreht dann die Ausgänge um. Dies stellt sicher, dass der Cursor auf dem anderen Monitor nahtlos auf der gleichen Höhe erscheint und die Wahrnehmung eines reibungslosen Übergangs verbessert.

Das Ziehen der Maus von Mac zu Linux schaltet die Ausgänge automatisch.
Der tatsächliche Schalter erfolgt in dem Moment, in dem sich ein Pfeil aufhört, sich zu bewegen und der andere beginnt.
Als USB -Host fungiert und fragt es Ihre Tastatur regelmäßig ab und sucht im HID -Bericht nach einem vorkonfigurierten Hotkey (normalerweise für mich Strg + Caps Lock). Wenn es gefunden wird, werden alle nachfolgenden Zeichen an die andere Ausgabe weitergeleitet.
Um eine visuelle Anzeige zu haben, welche Ausgabe Sie zu einem bestimmten Zeitpunkt verwenden, können Sie Tastatur -LEDs umgeben und das erforderliche Feedback geben.
Es erinnert sich auch an den LED -Status für jeden Computer, sodass Sie genau so aufnehmen können, wie Sie ihn verlassen haben.

Um beim Aufbau von Versionen und den gemeldeten Pfadproblemen zu vermeiden, und Sie vor dem Herunterladen eines großen SDK zu bewahren, bündelt das Projekt jetzt Minimal Pico SDK und Tinyusb.
Stellen Sie auf einem Debian/Ubuntu -System sicher, dass Sie diese installieren:
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential
Sie sollten in der Lage sein, durch Laufen zu bauen:
cmake -S . -B build
cmake --build build
Um das Web -UI -Überprüfen von Webconfig/ und auszuführen ./render.py , müssen Sie Jinja2 installiert.
Um die Festplatte wieder aufzubauen, überprüfen Sie die Festplatte/ den Ordner und führen ./create.sh bei Bedarf an Ihrem System an. Sie benötigen Dosfstools (um MKDOSFs bereitzustellen).
Alternativ können Sie die vorgefertigten Bilder verwenden. Da Version 0.6 nur ein einzelnes universelles Bild gibt. Sie benötigen die .uf2 -Datei, die Sie einfach auf eine der folgenden Weise zum Gerät kopieren:
Option 1 - (Firmware 0,6 und später) Stellen Sie das Gerät in "Konfigurationsmodus" ein, indem Sie gleichzeitig links Strg + rechte Schaltverschiebung + C + O drücken. Gerät, an das Ihre Tastatur angeschlossen ist, wird neu gestartet und in ein USB -Laufwerk namens "Deskhop" verwandelt. Alles, was Sie tun müssen, ist, die .uf2 -Datei darauf zu kopieren. Sobald das Bild verifiziert ist, blinkt und starten Sie das Gerät neu und rüsten Sie dann mit der anderen Karte ein. Während dieser Operation wird die LED blinzeln. Sobald es fertig ist, schreibt es Flash und Neustart, wodurch der Betrieb abgeschlossen wird.
Hinweis - Dies ist kein tatsächliches generisches USB -Laufwerk, Sie können es nicht verwenden, um Dateien darauf zu kopieren.
Option 2 - Verwenden des ROM -Bootloaders - Halten Sie die Schaltfläche Bord, während Sie jedes PICO anschließen, und kopieren Sie das UF2 an das angezeigte Flash -Laufwerk. Bilder später als 0,6 unterstützen das Halten der Taste, ohne die Stromversorgung umzugehen, aber die "Halten Sie die Taste beim Verstopfen" immer funktionieren, unabhängig vom Gerätestatus.
Haben Sie jemals versucht, diesen YT-Video-Schieberegler in eine bestimmte Position zu bewegen, aber Ihre Maus bewegt sich zu wandig und plötzlich bewegen Sie Ihre Hand sehr sorgfältig wie Sie 5 und spielen "Operation" wieder?
Drücken Sie rechte Strg + rechts ALT, um einen Zeitmodusverzögerungsmodus umzuschalten. Der Mauszeiger verlangsamt sich erheblich und ermöglicht es Ihnen, die feineren Präzisionsarbeiten zu erledigen und Ihre Maus trotzdem normal in Bewegung zu bringen, indem Sie schnell die gleichen Schlüssel drücken.
Wenn Sie sich auf einen Bildschirm sperren möchten, verwenden Sie RIGHT CTRL + K . Dadurch wird sichergestellt, dass Sie Ihren aktuellen Bildschirm nicht versehentlich verlassen. Um auszuschalten, drücken Sie erneut die gleiche Taste -Kombination.
Sie können beide Computer gleichzeitig sperren, indem Sie RIGHT CTRL + L verwenden. Um diese Funktion zu nutzen, richten Sie zuerst das Betriebssystem für jede Ausgabe in der Konfiguration ein (da die Verknüpfungen unterschiedlich sind).
Wenn Sie spielen, besteht die Möglichkeit, dass Ihr Spiel im Absolute Maus -Modus möglicherweise nicht richtig funktioniert. Um dieses Problem zu beheben, wird ein Spielmodus eingeführt, der durch LEFT CTRL + RIGHT SHIFT + G umgeschaltet wird. Im Spielmodus sind Sie auf den aktuellen Bildschirm gesperrt und Ihre Maus verhält sich wie eine relative Standardmaus. Dies sollte auch verschiedene Probleme mit virtuellen Maschinen beheben, derzeit nicht unterstützte Betriebssysteme usw. usw.
Angeblich eingebaut, um zu verhindern, dass Computer in den Standby -Unternehmen eintritt, aber um ehrlich zu sein - es macht nur Spaß, es zu sehen. Standardmäßig lässt Ihr Mauszeiger wie ein Pongball auf dem Bildschirm auf den Bildschirm springen. Wenn es aktiviert ist, aktiviert es nach einer in der Benutzerkonfigurationsheader definierten Inaktivitätszeit und schaltet automatisch aus, sobald Sie Ausgabe an diesen Bildschirm senden.
Potentielles Nutzungsbeispiel - Ich habe ein fehlerhaftes USB -Dock, das keine Videos von Standby wieder aufnimmt. Daher kann es eine praktische Problemumgehung sein.
Die Schaltung basiert auf zwei Himbeer -Pi -Pico -Boards, die ausgewählt wurden, weil sie billig sind (4,10 € / PC), von Hand verkauft werden können und die meisten Lieferanten sie auf Lager haben.
Die PICOs werden mit UART verbunden und durch ein analoges Geräte ADUM1201 Dual-Channel Digital Isolator (~ 3 €) oder einen viel billigeren, schnelleren und pinkompatiblen Ti ISO7721DR (~ 1,5 €), der die bevorzugte Wahl ist, getrennt.
Obwohl sie normalerweise keine Unterstützung für Dual -USB haben, dank eines fantastischen Projekts, bei dem USB mit der programmierbaren IO -Assistenten in RP2040 implementiert wird, wird es sowohl als USB -Host als auch als Gerät unterstützt.
Um die Dinge für DIY -Builds so einfach wie möglich zu halten, wurden die Spuren auf einer Seite und die Anzahl der Teile auf ein Minimum gehalten.

USB-D+/D-Differentiallinien sollten in Länge identisch sein, sind jedoch absichtlich leicht asymmetrisch, um der Längendifferenz der entsprechenden GPIO-Spuren Pico-Leiter selbst zu entgegenzuwirken, sodass die Gesamtlängen übereinstimmen sollten.
ZD (Differentialimpedanz) richtet sich auf 90 Ohm (es geschafft, ~ 107, nahe genug zu bekommen :)).
Die Dicke ist mit 1,6 mm ausgelegt, damit der Snap-Fit wie erwartet funktioniert.
Es gibt 2 Versionen der PCB (keine wesentlichen Unterschiede für den Benutzer). Original (v1.0) ist leichter zu löten und zu montieren, während V1.1 einige Upgrades bietet wie:
Diese Version ist aufgrund der kleinen transienten Spannungssuppressor -IC- und 0805 -Widerstände etwas schwieriger zu handeln, aber sie ist völlig machbar. Fernseher können theoretisch weggelassen werden (nicht empfohlen) und es wird immer noch funktionieren.
KOMMER - Board mit bloßen RP2040s, das keine Picos benötigt, ist kleiner und bequemer.
Da ich mit 3D nicht sehr gut bin, ist der Fall einfach und grundlegend, erledigt aber den Job. Es sollte leicht zu drucken sein, verwendet ~ 33 g Filament und dauert ein paar Stunden.
Horizontale PCB -Bewegungen werden durch Stifte entgegengewirkt, die durch Löcher und vertikale Bewegungen durch Schnapp -Fit -Laschen an den Seiten - keine Schrauben erforderlich. Der Fall erhielt eine geringfügige Neugestaltung, um das Logo und zwei zusätzliche Schnappschalen zu zeigen, sodass es ein besseres Siegel bietet.
Micro -USB -Steckverbinder in beiden Boards werden von der Seite des Gehäuses aus versetzt, sodass etwas größere Löcher es ermöglichen, Kabel zu erreichen.
Der Deckel ist von einem Schnapp-Fit-Design mit einem Schraubendreherschlitz zum Öffnen. Die Markierungen oben sind vertieft und können mit EG-Buntstiften fertiggestellt werden, um einen besseren Kontrast zu erzielen (oder einfach als IS) zu verleihen.

| Komponente | Qty | Einheitspreis / € | Preis / € |
|---|---|---|---|
| Raspberry Pi Pico | 2 | 4.10 | 8.20 |
| Adum1201brz | 1 | 2.59 | 2.59 |
| CAP 1206 SMD 100NF | 2 | 0,09 | 0,18 |
| USB-A PCB Conn. | 2 | 0,20 | 0,40 |
| Header 2.54 1x03 | 2 | 0,08 | 0,16 |
| Gesamt | 11.53 |
Ti ISO7721DR kann anstelle des Adum verwendet werden - es ist Pin -kompatibel, viel billiger und mit besseren Spezifikationen.
| Komponente | Teil | Qty | Einheitspreis / € | Preis / € |
|---|---|---|---|---|
| U1, U2 | Raspberry Pi Pico | 2 | 4.10 | 8.20 |
| J1, J4 | USB-A PCB Conn. | 2 | 0,20 | 0,40 |
| U4 | Ti ISO7721dr | 1 | 1.40 | 1.40 |
| ( Oder adum1201brz) | ||||
| C1, C2 | CAP 0805 SMD 100NF | 2 | 0,09 | 0,18 |
| R1, R2, R3, R4 | Res 0805 SMD 27OHM | 4 | 0,03 | 0,12 |
| U3, U5 | Tpd4e1u06dbvr | 2 | 0,31 | 0,62 |
| C3, C4 | CAP 4.7UF SMD 0805 | 2 | 0,07 | 0,14 |
| J2, J3 | Header 2.54 1x03 | 2 | 0,08 | 0,16 |
| Gesamt | 11.22 |
USB-A-Anschluss kann Molex MX-67643-0910 oder ein billigeres/budgetes sein, das die gleichen Abmessungen aufweist.
Zusätzliche Schritte:
Wenn Sie Erfahrung mit Elektronik haben, brauchen Sie dies nicht. Einige von Ihnen könnten jedoch nicht, und in diesem Fall kann dieses Video Ihnen helfen, den Prozess durchzuführen. Bitte beachten Sie, dass Sie nach dem Löten den Fluss aus der Leiterplatte reinigen sollten, um Korrosion zu vermeiden.
Der Standardprozess, der Isopropylalkohol und eine alte Zahnbürste verwendet. Aber raten Sie mal, was? Ich stelle meine alte Zahnbürste nicht online, also musst du diesen Teil nur improvisieren :)

[Hinweis] Die Video -Assemblerhandbuch deckt PCB V1.0 ab. Die überarbeitete Version ist sehr ähnlich und die Prozedur ist im Grunde die gleiche.
Konfiguration
Left ShiftLeft Ctrl + Right Shift + C + O - Konfigurationsmodus eingebenRight Shift + F12 + D - Flash -Konfiguration entfernenRight Shift + F12 + Y - Bildschirmschalter speichern OffsetVerwendung
Right CTRL + Right ALTRight CTRL + KRight CTRL + L - Bleibaufsatz auf gleichzeitig (Vorab des Ausgangsbetriebs einstellen, siehe Abkürzungen unten)Left ShiftLeft CTRL + Right Shift + G - Spielmodus umschalten (sperren, um als Standardmaus zu passen)Left CTRL + Right Shift + S - Screensaspaver aktivierenLeft CTRL + Right Shift + X - Screenschoner deaktivierenLeft CTRL + Caps Lock - Schalter zwischen den AusgängenHINWEIS: Einige Tastaturen senden beide Schichten nicht gleichzeitig richtig. Deshalb wurde die Verknüpfung geändert - für alle funktionieren. Entschuldigung für die Verwirrung.
Dieser Schritt ist nicht erforderlich, kann jedoch nützlich sein, wenn Ihre Bildschirme nicht perfekt ausgerichtet sind oder sich in der Größe unterscheiden. Ziel ist es, dass der Mauszeiger genau die gleiche Höhe herauskommt.

Parken Sie einfach Ihre Maus auf dem größeren Bildschirm in der Höhe des kleineren/unteren Bildschirms (dargestellt) und drücken Sie Right Shift + F12 + Y . Ihre LED (und CAPS Lock) sollte in Bestätigung blinken.
Wiederholen Sie dies für den unteren Rand (wenn es über dem Grenz des größeren Bildschirms liegt). Dies wird auf Flash gespeichert und sollte diesen Kalibrierungswert von nun an behalten.
Windows und Mac haben Probleme mit mehreren Bildschirmen und absoluten Positionierung, sodass Problemumgehungen erforderlich sind (noch experimentell). Es gibt eine bessere Problemumgehung im Bau, aber im Moment müssen Sie das Betriebssystem für jede Ausgabe und die Anzahl der Bildschirme festlegen.
Ihre Hauptbildschirme müssen in der Mitte und im Sekundärbildschirm an den Kanten liegen. Öffnen Sie die Webkonfigurationsseite für Ihr Gerät, um die tatsächlichen Optionen zu konfigurieren.

Beginnend mit FW 0.6 wird ein verbesserter Konfigurationsmodus eingeführt. Um Ihr Gerät zu konfigurieren, befolgen Sie die folgenden Anweisungen:


F: Warum nicht einfach eine schöne Online -Webseite erstellen, anstatt sich mit diesem seltsamen USB -Drive -Ding auseinanderzusetzen? A: Das Laden von JavaScript von einem zufälligen Online -Standort, der mit Ihren Eingabegeräten interagiert, ist ein potenzielles Sicherheitsrisiko. Die Konfigurationswebseite ist nur lokal und nichts wird jemals extern geladen.
F: Chrom auf Linux funktioniert nicht. A: Sie müssen wahrscheinlich die Berechtigungen optimieren oder eine entsprechende UDEV -Regelndedatei erstellen und sicherstellen, dass Ihr Benutzer in der richtigen Gruppe ist, wie Sie:
/etc/udev/rules.d/99-deskhop.rules
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="c000", GROUP="plugdev", MODE="0660"
Bitte beachten Sie, dass die Konfigurationswebseite aufgrund der absichtlichen Verschleierung nicht "seltsam" ist - sie ist aufgrund eines sehr begrenzten Speichers selbstdekontrollend. Die gesamte Quelle ist zu 100% geöffnet und Teil dieses Repo. Sie werden ermutigt, alles selbst wieder aufzubauen.
Wenn Sie ein neues USB -Peripheriegeräte anschließen, blinkt das Board die LED zweimal und weist das andere Vorstand an, dasselbe zu tun. Auf diese Weise können Sie testen, ob USB und ausgehende Kommunikation für jedes Board funktioniert.
Führen Sie diesen Test durch, indem Sie zuerst die Tastatur auf der einen Seite und dann auf der anderen Seite anschließen. Wenn alles in Ordnung ist, blinken LEDs in beiden Fällen schnell hin und her.
Einige Funktionen fehlen absichtlich, obwohl das Gerät einfacher zu verwenden oder einfacher zu konfigurieren ist. Hier finden Sie eine kurze Aufschlüsselung dieser Entscheidungen:
Dies garantiert immer noch nichts, aber ich glaube, es ist eine angemessene Reihe von Grundregeln, um Sie sicher und geschützt zu halten.
Sicher. Es wird empfohlen, einen Isolator zu haben, aber er sollte ohne ihn funktionieren.
Die Mausbewegung erfolgt im abstrakten Koordinatenraum, und Ihr Computer zeigt, wie dies dem physischen Bildschirm entspricht, sodass sie nur funktionieren sollte.
Ich verkaufe nichts, dies ist nur ein persönliches, nicht kommerzielles Hobbyprojekt.
[UPDATE] Es scheint, dass Sie es in Qty von 1 bestellen können (für PCB, zusammengesetzte PCB oder ein vollständig zusammengebautes Gerät) von ERECROW, wenn Sie diesen Link befolgen, wie von Benutzern gemeldet, Ihr Board leer ankommt und Sie die Firmware selbst schreiben müssen.
[UPDATE2] - Ich habe Erowrow nie um irgendetwas gefragt, aber vor ein paar Tagen boten sie an, das Projekt mit einem kleinen Budget zu sponsern, das für zukünftige Board -Prototypen verwendet wird. Da mein Ziel es ist, ein besseres Board mit mehr als 2 Ausgängen usw. zu erstellen, glaube ich, dass Prototyping -Dienste für das Projekt von Vorteil sein könnten.
Ja, die Idee war, es so zu verhalten, als wäre es ein einzelner Computer.
Es sollte funktionieren. Nach einem aktuellen FW -Update sollte die Unterstützung für Combo -Empfänger viel besser sein.
Es sollte funktionieren - probierte eine Anker -Wireless -Maus mit einem separaten Empfänger und das hat gut funktioniert.
Schauen Sie sich das Wiki zur Fehlerbehebung an, das möglicherweise einige Antworten hat.
Es gibt mehrere Softwarealternativen, die Sie verwenden können, wenn dies in Ihrer jeweiligen Situation funktioniert.
Also, was ist mit all der Begeisterung los? Ich kann es nicht glauben - bitte erlauben Sie mir, Ihnen allen zu danken! Ich habe noch nie erwartet, dass diese Art von Interesse an einem einfachen persönlichen Projekt ist, daher sind die ersten Funktionen ziemlich einfach (genau wie meine Kochkünste) und decken meistens meine eigene USECase ab. Seien Sie gespannt auf Firmware -Updates, die eine breitere Gerätekompatibilität, mehr Funktionen und weniger Fehler bringen sollten. Da dies ein Hobbyprojekt ist, schätze ich Ihr Verständnis dafür, zeitlich begrenzt zu sein und zu versprechen, mein Bestes zu tun.
Geplante Funktionen:
Arbeiten Sie an einer Lite -Version, die grundlegende Funktionen mit nur einem einzigen Pico -W -Board bietet, die die Kosten noch weiter senkt und Sie es auch ohne zusätzliche Hardware oder PCB ausprobieren können.
Mausumfragen sollten jetzt bei 1000 Hz funktionieren (die Dips im Diagramm sind mein Arm, der vor der gesamten Bewegung verletzt wird :-)):

Ich mache dies nicht aus Gewinn oder einem anderen Grund, außer um Menschen zu helfen, indem ich ein besseres Arbeitsumfeld für alle schafft. Wenn Sie das Projekt weiter unterstützen möchten, sollten Sie eine kleine Spende an eine Wohltätigkeitsorganisation wie Ärzte ohne Grenzen leisten.
Bitte erlauben Sie mir, mich bei allen zu bedanken, die geholfen oder darüber nachdenken!
Ich bitte bitte, dass jeder, der versucht, dieses Projekt aufzubauen, versteht und anerkennt, dass ich nicht für Verletzungen, Schäden oder andere Konsequenzen haftet. Ihre Sicherheit ist wichtig, und ich ermutige Sie, dieses Projekt sorgfältig zu nähern, die erforderlichen Vorkehrungen zu treffen und die persönliche Verantwortung für Ihr Wohlergehen während des gesamten Prozesses zu übernehmen. Bitte lassen Sie sich nicht mit Stromschlägen, Verbrennen, Stress oder wütend machen. Viel Spaß und genießen Sie!
Happy Switch '!