Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Verkabelung und Einrichtung
- Schritt 2: Tastatur testen
- Schritt 3: PS/2-zu-USB-Konvertierungsvorschau
- Schritt 4: Technische Erklärung
- Schritt 5: Hochladen der endgültigen Skizze
- Schritt 6: Aktualisieren der Firmware
- Schritt 7: Genießen Sie……
Video: Arduino PS/2-zu-USB-Adapter - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Wollten Sie schon immer Ihre alte PS/2-Tastatur mit Ihrem Laptop oder neuen Desktop-PC verwenden und haben festgestellt, dass diese keine PS/2-Anschlüsse mehr haben? Und dann, anstatt einen billigen PS/2-zu-USB-Adapter zu kaufen, wie es ein normaler Mensch tun würde, wollte Ihr Arduino als PS/2-zu-USB-Adapter verwenden. Dann sind Sie bei uns genau richtig:)
Faire Warnung, bevor wir uns darauf einlassen. Wenn Sie Ihr UNO/Mega als USB-HID-Gerät verwenden (nicht auf Tastatur beschränkt, es kann sogar eine Maus, ein Joystick usw. sein), verlieren Sie vorübergehend seine Funktionen als Arduino. Damit meine ich, Sie können die serielle Kommunikation nicht verwenden und Sie können sie nicht über den USB neu programmieren. Dies liegt daran, dass wir die Firmware auf seinem USB-Schnittstellenchip überschreiben werden (kleiner Kerl in der Nähe des USB-Ports Atmega8U2 und 16U2, je nach Revision). Aber keine Sorge, Sie können Ihre UNO/Mega nicht wirklich mauern, indem Sie dies tun, es ist immer reversibel.
Auch wenn Sie zufällig ein Arduino haben, das bereits über eine USB-HID-Fähigkeit verfügt (Arduino Pro Micro oder Leonardo usw., eine Google-Suche durchführen), können Sie dieses instructable, das jemals existierte, vergessen, direkt hierher zu gehen, um sich vor einer Welt der Probleme zu retten, nur scherzhaft!
Lieferungen
-
Hardware
- Arduino UNO oder Mega
- PS/2-Tastatur
- Optional kann ein zusätzlicher Arduino oder eine beliebige Art von USB-Programmierer (USBasp usw.) nützlich sein.
-
Software
- Atmel FLIP
- PS2KeyAdvanced-Bibliothek für Arduino IDE
Schritt 1: Verkabelung und Einrichtung
Je nach Situation können Sie entweder ein Breakout-Board finden oder einen alten Port von einem Motherboard retten (mein zweiter Versuch) oder wenn Sie sich besonders launisch fühlen, können Sie sogar die violette Buchse ganz durchschneiden und die 4 Drähte freilegen (mein erster Versuch) und verbinde sie mit der UNO.
Tastatur_Arduino
+5V(VCC)_+5V
ERDUNG_GND
UHR_PIN 2**
DATEN_PIN3*
* Sie können den DATA-Pin beliebig ändern, aber denken Sie daran, die Skizze zu aktualisieren.
** Die Uhr muss mit einem Interrupt-Pin auf Arduino verbunden werden, der nur entweder PIN 2 oder 3 sein kann (denken Sie daran, die Skizze zu aktualisieren) auf einem UNO. Weitere Informationen und verschiedene Board-Konfigurationen finden Sie im Kommentarbereich der PS2KeyAdvanced-Bibliotheksbeispiele.
Schritt 2: Tastatur testen
Bevor Sie alle Hände an Deck gehen, stellen Sie zunächst sicher, dass alles an Tastatur und Bibliothek funktioniert.
Hier habe ich eine modifizierte Version des SimpleTest.ino aus PS2KeyAdvanced-Bibliotheksbeispielen mit aktualisierten Clock- und Data-Pins und auch einer "make"- und "break"-Darstellung angehängt. Hier ist eine Erklärung für die Ausgabe.
- Dieses "Make"- und "Break"-Scancode-System und "Code", der der isolierte (c & 0xFF) Scancode entweder des Tastendrucks oder der Tastenfreigabe ist, spielt eine wichtige Rolle bei der PS/2-zu-USB-Konvertierung und ich empfehle Ihnen, es zu studieren die anderen 2 Beispiele, die mit der Bibliothek geliefert werden, um ein besseres Verständnis zu erhalten, wenn Sie planen, die endgültige Skizze zu verbessern oder zu ändern (Schlüssel zu anderen Layouts neu zuzuordnen). Sie können auch eine vollständige Liste der PS/2-Scancodes aus der Bibliothek abrufen, indem Sie entweder die Dateien 'PS2KeyAdvanced.h' oder 'PS2KeyCode.h' von '\Documents\Arduino\libraries\PS2KeyAdvanced\src\' öffnen.
- "Status Bits" bezieht sich auf Modifikatortasten (Strg, Alt, Windows, Shift/Caps) und Sie werden sehen, dass sich dieser Wert mit jeder zusätzlichen Modifikatortaste ändert, während der Haupt-"Code" der normalen (Nicht-Modifikator-)Taste unverändert bleibt. Aber in der letzten Skizze habe ich diese Methode ignoriert und diese Modifikatortasten als einfache Tastendrücke implementiert (Sie werden sehen, dass diese Modifikatortasten auch einen "make" - und "break" -Scancode haben, unabhängig von normalen Tasten, unabhängig davon, ob mehrere Tasten gedrückt werden oder nicht.) weil es die Dinge mit dem USB-HID-Protokoll einfacher macht.
Schritt 3: PS/2-zu-USB-Konvertierungsvorschau
Bevor wir den Atmega8U2 oder 16U2 (UNO Rev3) aktualisieren, um unseren Arduino als USB-Tastatur zu identifizieren, sollten wir sicherstellen, dass alle Konvertierungsarbeiten korrekt funktionieren und die endgültige Skizze hochgeladen wird, sonst wird es ein großer Schmerz sein, die Firmware immer wieder zwischen Original- und USB-Tastatur-Hex-Dateien, nur damit Sie die richtige Skizze hochladen können. Dies gilt insbesondere, wenn Sie keinen externen Programmierer wie einen USBasp oder einen anderen Arduino haben, der als ISP verwendet werden kann. Hier werden wir also eine 'DEBUG'-Version der endgültigen Skizze mit einer für Menschen lesbaren Ausgabe (über den seriellen Monitor) hochladen, um die Dinge zu testen.
Die angezeigte Ausgabe wird so formatiert, wenn jede Taste losgelassen wird.
00 00 00 00 00 00 00 00
Hier ist eine grundlegende Erklärung für die erwartete Ausgabe:
Für jeden neuen Mehrfach-Modifikator-Tastendruck sollten Sie einen Zeilenumbruch mit anderen Werten für 'xx' erhalten. Wenn Sie schließlich alle Modifikatortasten loslassen, sollte 'xx' zu 00 werden
xx 00 00 00 00 00 00 00
Für jeden neuen mehrfachen normalen Tastendruck (zum Beispiel drücken wir sowohl die hypothetische Taste a, Taste b und Taste c mit den Werten 'xx', 'yy' und 'zz' in dieser Reihenfolge) sollten Sie kontinuierlich erhalten (nicht obligatorisch) Zeilenumbrüche wie diese,
00 00 xx yy zz 00 00 00
Wenn Sie nur die Taste b loslassen, sollte der Ausgang wechseln zu,
00 00 xx 00 zz 00 00 00
und wenn Sie eine neue Taste d mit dem Wert 'nn' drücken, ohne die Taste a oder b loszulassen, sollte sich Ihre Ausgabe ändern auf,
00 00 xx nn zz 00 00 00
und kehre schließlich zu diesem zurück, wenn jede Taste losgelassen wird,
00 00 00 00 00 00 00 00
und schließlich, wenn Sie entweder Caps Lock, Num Lock oder Scroll Lock drücken, sollten Sie so etwas mit mehreren Zeilen gleichzeitig erhalten
00 00 xx 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Wenn hier alles passiert, sind Sie goldrichtig, um fortzufahren!
Schritt 4: Technische Erklärung
Wenn Sie möchten, können Sie diesen Schritt überspringen. Dies ist nur eine Erklärung für die vorherigen Ausgaben. Das ausgegebene 8-Byte-Array, das Sie gesehen haben, ist gemäß der obigen Abb. 1 formatiert. Sie können viel mehr darüber erfahren und auch, wie das Statusbyte der Modifikatortasten aus diesem Wiki über USB-HID geschrieben wird. Grundsätzlich macht mein Code jedes Mal, wenn eine neue Taste gedrückt wird (PS/2-Protokoll bezeichnet dies als "make"), die letzten 6 Bytes des Arrays, die für normale Tastendrücke verwendet werden, und füllt die erste aus leeres Byte findet es mit dem entsprechenden 'HID-Scancode' (Darstellung wie in Abb.2. Eine vollständige Liste finden Sie auch aus dem beigefügten PDF) für den empfangenen 'PS/2-Scancode'. Und schließlich, wenn die entsprechende Taste losgelassen wird (PS/2-Protokoll bezeichnet dies als 'break'), durchläuft der Code das aktuelle Byte-Array und löscht nur das relevante Byte.
Wenn Sie bis hierher gefolgt sind und auch die Wiki-Seite lesen, werden Sie feststellen, dass es bei dieser Methode ein kleines Problem gibt. Normalerweise werden beim Loslassen des Schlüssels im HID-Protokoll die verbleibenden Bytes neu angeordnet, um leere Bytes loszuwerden zwischen verbleibenden nicht leeren Bytes. Aber aus irgendeinem Grund, egal wie viele Möglichkeiten ich es versucht habe, konnte ich es nicht wie beabsichtigt zum Laufen bringen, ohne versehentlich auch unerwünschte Bytes für gedrückte Tasten zu löschen. Wenn Sie dies verbessern können, damit es funktioniert, hinterlassen Sie bitte einen Kommentar. Obwohl dieses Problem am Ende des Tages die Funktionalität der Tastatur nicht beeinträchtigt, solange das Arduino immer noch jede gedrückte Taste registriert, unabhängig von ihrer gedrückten Reihenfolge (was im praktischen Gebrauch nichts beeinflusst).
Schritt 5: Hochladen der endgültigen Skizze
Bevor Sie also endlich die Firmware von Atmega8U2 oder 16U2 (UNO Rev3) aktualisieren, um unser Arduino als USB-Tastatur zu identifizieren, müssen wir die Final Sketch hochladen. Nachdem Sie dies hochgeladen haben, werden Sie, wenn Sie zum seriellen Monitor gehen, sehen, dass er bei jeder neuen gedrückten Taste Müll druckt. Dies ist ein gutes Omen, dass alles wie beabsichtigt funktioniert und wir mit dem letzten Schritt fortfahren können. YAY!!!
Schritt 6: Aktualisieren der Firmware
Schließlich können Sie die Firmware Ihres Arduino aktualisieren, um es als USB-Tastatur zu registrieren. Dafür werde ich nicht auf viele Details eingehen, da dies dies zu lang machen wird.
- Befolgen Sie diese Anleitung von arduino.cc zum Thema "Aktualisieren des Atmega8U2 und 16U2 auf einem Uno oder Mega2560 mit DFU", verwenden Sie jedoch anstelle von "Arduino-usbserial-uno.hex" das angehängte "Arduino-Keyboard-0.3.hex".
- Denken Sie in FLIP daran, das Zielgerät als Atmega8U2 oder 16U2 auszuwählen, abhängig von Ihrem Arduino und wählen Sie das Kommunikationsmedium aus, wählen Sie USB und laden Sie schließlich die richtige Hex-Datei, bevor Sie Ausführen auswählen.
- Wenn ein Treiberfehler aufgetreten ist, gehen Sie zum Windows-Gerätemanager und wählen Sie aus, um im Installationsverzeichnis von FLIP '\Program Files (x86)\Atmel\' nach dem unbekannten Treiber zu suchen.
- Wenn beim Aktualisieren der Firmware von FLIP mehrmals Fehler aufgetreten sind, schließen Sie FLIP und führen Sie 'Einstellungen zurücksetzen' über 'Startmenü\FLIP\' aus und starten Sie dann FLIP neu und führen Sie die Konfigurationsschritte aus, bevor Sie es erneut versuchen. Dies funktioniert normalerweise für mich.
- Wenn Sie Ihr Arduino in den ursprünglichen Zustand zurückversetzen möchten, folgen Sie einfach der obigen arduino.cc-Anleitung, ohne diese Hex-Datei zu verwenden.
Schritt 7: Genießen Sie……
Genießen Sie jetzt Ihre neu konvertierte PS/2-zu-USB-Tastatur…. PS Dieses Instructable wurde vollständig von einer externen PS / 2-Tastatur geschrieben, die über das Arduino mit meinem Laptop verbunden war:)
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i