Inhaltsverzeichnis:

So schließen Sie eine PS/2-Tastatur an das IPhone an - Gunook
So schließen Sie eine PS/2-Tastatur an das IPhone an - Gunook

Video: So schließen Sie eine PS/2-Tastatur an das IPhone an - Gunook

Video: So schließen Sie eine PS/2-Tastatur an das IPhone an - Gunook
Video: So kannst du deine PlayStation 4 mit Tastatur und Maus benutzen! 2024, November
Anonim
So schließen Sie eine PS/2-Tastatur an das IPhone an
So schließen Sie eine PS/2-Tastatur an das IPhone an
So schließen Sie eine PS/2-Tastatur an das IPhone an
So schließen Sie eine PS/2-Tastatur an das IPhone an
So schließen Sie eine PS/2-Tastatur an das IPhone an
So schließen Sie eine PS/2-Tastatur an das IPhone an

Obwohl ich im Internet viele Bilder von PS/2-Tastaturen gesehen habe, die an iPhones angeschlossen sind, hat noch niemand eine detaillierte Anleitung veröffentlicht, wie man dies selbst zum Laufen bringen kann. Bis jetzt ist das so.

In diesem Instructable zeige ich Ihnen, wie Sie einen PS/2-Tastatur-zu-iPhone-Konverter herstellen können, einschließlich aller Hardware- und Softwareanweisungen.

Voraussetzungen

  • Jailbroken iPhone – Das offizielle SDK erlaubt aufgrund der Elf Conspiracy keinen Zugriff auf den seriellen Port, daher ist der Jailbreak erforderlich. Alles, was Sie über Jailbreaking wissen müssen, finden Sie im iPhone Dev Team Blog.
  • Arduino Diecimila oder Dumilanove (oder Klon), erhältlich an vielen Orten. Dieses Howto geht davon aus, dass Ihr Arduino zusammengebaut ist.
  • Ein iPod Breakout-Board, wie dieses von Sparkfun. Jedes ähnliche Produkt wird funktionieren.
  • A Buchse PS/2 (Din 6) Tastaturanschluss. Ziehen Sie einen von einem alten Computer ab oder kaufen Sie einen von Digikey oder einem ähnlichen Anbieter.
  • Draht, vorzugsweise mehrere Farben und etwa 24 Gauge. Ich verwende eine Spule von RadioShack in den Bildern unten.
  • Ein 500k Widerstand. Ich verwende einen axialen Durchgangslochwiderstand von RadioShack, aber Sie können diesen auch zu Ihrer Digikey-Bestellung hinzufügen.
  • Lötkolben und Lot. Wenn Sie nicht wissen, wie man lötet, können Sie es hier und hier lernen.
  • (Optional) Stiftleisten wie diese. Ich breche diese ab und löte sie an die Enden der Drähte, damit sie gut in den Arduino stecken.
  • (Optional) Sweet 9v Batteriekabelbaum, damit Ihr Arduino im Maker Store tragbar wird.
  • (Optional) Stereo-Kopfhörerbuchse von RadioShack oder Digikey.

Schritt 1: Löten Sie den IPhone Breakout - Teil 1

Löten Sie den IPhone Breakout - Teil 1
Löten Sie den IPhone Breakout - Teil 1

Sobald alle Zutaten angekommen sind, zünden Sie den Lötkolben an und werfen Sie einen kurzen Blick auf die iPod-Anschluss-Pin-Belegung.

Wir verwenden vier dieser Pins für die Tastatur: 11, 13, 16 und 21. Die Definition von Pin 21 besagt, dass wir einen 500k-Widerstand zwischen Pin 21 und Masse platzieren müssen, um die serielle Kommunikation mit dem iPhone zu ermöglichen Wir werden einen Widerstand zwischen Pin 21 und Pin 16 stecken, der die serielle Masse ist. Wir werden auch Pin-Header zu den Pins 11 und 13 hinzufügen, die als TX- und RX-Pins für die serielle Kommunikation fungieren. Da wir NUR an das iPhone senden, verwenden wir nur den RX-Pin des iPhones, also fügen wir auch ein Stück Draht hinzu, um Pin 11, den ungenutzten TX-Pin, direkt mit der Masse an Pin 16 zu verbinden.

Sie können jetzt auch optional die Stereo-Kopfhörerbuchse an die Pins 2, 3 und 4 anschließen und es funktioniert immer dann, wenn der Breakout eingesteckt ist. Dies hat nichts mit der Tastatur zu tun, aber wenn Sie ein 1G-iPhone mit dem lahmen Nicht- Standard-Kopfhörerbuchse, dies wird das Problem beheben.

Schritt 2: Löten Sie den IPhone Breakout - Teil 2

Löten Sie den IPhone Breakout - Teil 2
Löten Sie den IPhone Breakout - Teil 2

Ich habe den Jumper zwischen Pin 11 und Pin 16 auf der Rückseite des Breakout-Boards gesteckt. Es kann etwas schwierig sein, alles auf Pin 16 zu montieren, daher empfehle ich, zuerst den Widerstand durch das Loch zu stecken, dann das Ende des Überbrückungsdrahtes darum zu wickeln und zusammenzulöten, bevor Sie das Widerstandskabel abschneiden.

Eine andere Taktik, die hier nützlich sein kann, besteht darin, zuerst die Enden Ihres Drahtes zu verzinnen und dann ein wenig Lötmittel auf das Loch zu tupfen, an das Sie den Draht kleben möchten. Verwenden Sie die Seite des Lötkolbens, um Ihren Lötkolben zu erwärmen und das verzinnte Ende des Drahtes in den Klecks zu schieben. Entfernen Sie das Bügeleisen, lassen Sie den Klecks abkühlen und lassen Sie dann den Draht los.

Schritt 3: Löten Sie den PS/2-Anschluss - Teil 1

Löten Sie den PS/2-Anschluss - Teil 1
Löten Sie den PS/2-Anschluss - Teil 1

Es gibt keinen Weg, den Sie durch die Pin-Nummerierung des PS/2-Anschlusses beschreiten können, der außerhalb des geistesgestörten Geschwafels einer Ausschusssitzung irgendeinen Sinn ergibt. Denken Sie nicht zu viel über die Pin-Nummern nach, schauen Sie sich einfach das Bild an.

Wir werden hier vier Pins verwenden und alle mit dem Arduino verbinden. Masse wird auf dem Arduino mit Masse verdrahtet, VCC wird auf 5V verdrahtet und die Daten- und Clock-Pins werden auf zwei der digitalen Pins des Arduino (3 und 4) übertragen.

Schritt 4: Löten Sie den PS/2-Anschluss - Teil 2

Löten Sie den PS/2-Anschluss - Teil 2
Löten Sie den PS/2-Anschluss - Teil 2

Die Unterseite des PS/2 Connectors ist noch weniger intuitiv als das Nummerierungsschema. Ich empfehle, dieses Bild zu überprüfen, aber auch zu überprüfen, ob die Pins an der Unterseite Ihres Steckers mit den nummerierten Pins übereinstimmen, die Sie denken, bevor Sie etwas löten. Sie können die Konnektivität mit einem normalen Multimeter überprüfen, indem Sie es auf Widerstandsmessung einstellen und eine Sonde an den Stift an der Unterseite anschließen und die andere in das Loch stecken. Wenn überhaupt ein Widerstand vorhanden ist, ist dieser Stift mit diesem Loch verbunden.

Ich verwende das grüne Kabel für den Clock-Pin, das rote Kabel für VCC, das weiße Kabel für Daten und das schwarze Kabel für Masse.

Schritt 5: Lötstiftleisten an Leads

Stiftleisten an Leitungen anlöten
Stiftleisten an Leitungen anlöten

Sobald Sie die Anschlüsse verdrahtet haben, streifen Sie die anderen Enden der Drähte ab und löten Sie die Leitungen an die Stiftleisten. Auf diese Weise können Sie sie einfach an den Arduino anschließen. Wenn Sie die Stiftleisten nicht erhalten haben, können Sie versuchen, die Drähte vorsichtig zu verzinnen, damit sie besser in den Arduino-Stiftlöchern bleiben.

Ich habe einige Drähte an die Stiftleisten an den Pins 11 und 13 der iPhone-Breakout-Platine angeschlossen. Der schwarze Draht ist an Masse (Pin 11) und der rote Draht ist an VCC (Pin 13). Ich habe dann Stiftleisten an die Anschlüsse für die beiden Drähte von der Breakout-Platine und die vier vom PS/2-Anschluss gelötet.

Schritt 6: (Optional) 9V Batteriekabelbaum

(Optional) 9-V-Batteriekabelbaum
(Optional) 9-V-Batteriekabelbaum

Ich verwende ein Arduino Diecimila, da dieses Programm keinen besseren Chip benötigt. Dies wird mit einem 9-V-Batteriekabelbaum von SparkFun für die Portabilität gezeigt.

Schritt 7: PS/2-Kabel an Arduino anschließen

PS/2-Kabel an Arduino anschließen
PS/2-Kabel an Arduino anschließen

Als nächstes verbinden wir den PS/2-Anschluss mit dem Arduino. Verbinden Sie das Clock-Kabel mit Digital Pin 3, das Data-Kabel mit Digital Pin 4 und verbinden Sie das Ground-Kabel mit Ground auf dem Arduino und das VCC-Kabel mit dem 5V-Pin.

Schritt 8: IPhone-Kabel an Arduino anschließen

IPhone-Kabel an Arduino anschließen
IPhone-Kabel an Arduino anschließen

Um den iPhone Breakout anzuschließen, verbinden Sie einfach das Kabel von Pin 13 mit dem TX-Pin des Arduino (Digital Pin 1) und verbinden Sie dann das Kabel von Pin 11 mit einer beliebigen verfügbaren Masse des Arduino.

WICHTIG: Um Probleme beim Flashen des Arduino zu vermeiden, trennen Sie bitte den TX Pin am Arduino vor dem Flashen. Dazu später mehr. Danach sind alle Lötarbeiten erledigt. Jetzt ist es an der Zeit, den Arduino zu programmieren!

Schritt 9: Der Arduino-Code

Der Arduino-Code
Der Arduino-Code

Die Arduino-Software taktet Daten aus der Tastatur, übersetzt die Tastatur-Scancodes in Tastencodes und verarbeitet das Drücken der Umschalt- und Feststelltaste.

Laden Sie zunächst die Arduino-Entwicklungsumgebung von hier herunter und installieren Sie sie. Befolgen Sie die Anweisungen auf der Website, aber installieren Sie den entsprechenden FTDI-Treiber aus dem Treiberverzeichnis in der Arduino-Installation.

Als nächstes benötigen Sie eine zusätzliche Arduino-Bibliothek für PS/2. Laden Sie die Datei „ps2.zip“von dieser Seite herunter. Zur Installation entpacken Sie den Download in einen Ordner und verschieben diesen Ordner in ein Unterverzeichnis des Verzeichnisses „hardware/libraries“unter Ihrer Arduino-Installation. Unter OSX können Sie zuerst zu Arduino.app und "Paketinhalt anzeigen" gehen.

Sobald Arduino und die PS2-Bibliothek installiert sind, laden Sie den Quellcode von hier herunter. Öffnen Sie die Arduino-Anwendung, erstellen Sie ein neues Projekt und fügen Sie den Quellcode ein. Speichern Sie und gehen Sie dann zu Sketch-> Verify/Compile, um sicherzustellen, dass es erstellt wird. Wenn dies nicht der Fall ist, stellen Sie sicher, dass die Bibliothek richtig installiert ist.

Nebenbei bemerkt habe ich eigentlich absolut keinen Code für dieses Projekt geschrieben. Ich begann mit dem Versuch, die PS2KeyboardExt2-Bibliothek zu verwenden, aber diese Bibliothek basiert auf Interrupts und obwohl sie auf einem Arduino laufen kann, der auch seriell mit 9600 bps spricht, funktionierten die Interrupts, sobald ich die Serie auf 19200 bps hochgefahren hatte, nicht mehr stabiler Weg. Also habe ich den ganzen schönen Code aus PS2KeyboardExt2 geholt, einschließlich der Tastendefinitionen und der netten Handhabung von Shifts und Caps Lock, und ihn in ein Programm umgearbeitet, das keine Interrupts verwendet und eine andere, viel einfachere PS/2-Bibliothek verwendet. Dies macht es in der Lage, 19200 bps seriell zuverlässig zu handhaben.

Nun, um den Arduino zu programmieren!

Trennen Sie die Leitung zu Pin 1 des Arduino. Verbinden Sie dann den Arduino über ein USB-Kabel mit Ihrem Computer. Möglicherweise müssen Sie die Arduino-Anwendung neu starten, damit sie das neue serielle USB-Gerät richtig erkennt. Laden Sie die gespeicherte Skizze mit der Quelle und klicken Sie dann auf die Schaltfläche Hochladen, um das Arduino zu programmieren.

Nachdem das Programm hochgeladen wurde, schließen Sie die Tastatur an den PS/2-Anschluss an. Sie sollten die Lichter blinken sehen. Sie können den Serial Monitor in der Arduino-Anwendung öffnen und versuchen, einige Buchstaben auf der Tastatur einzugeben. Sie sollten diese Buchstaben im Serial Monitor sehen. Versuchen Sie, die Feststelltaste ein- und auszuschalten, das Licht auf der Tastatur sollte ein- und ausgehen und die Zeichen sollten richtig groß geschrieben werden.

Schritt 10: Das IPhone-Client-Programm

Nun zum Einrichten des iPhone-Client-Programms.

Für den Client-Code verwende ich ein Programm, das ich auf der Google Code-Seite von Anthony Pray gefunden habe. Dieses Programm liest die Eingabe von der seriellen Schnittstelle mit 19200 bps und injiziert dann das entsprechende Tastaturereignis mithilfe einer VNC-Clientbibliothek. Ich habe hier einen lokalen Nur-Text-Spiegel der Quelle erstellt, der leicht mit wget abgerufen werden kann.

Da wir Tastendrücke von VNC injizieren, müssen Sie auch einen VNC-Server auf dem iPhone ausführen. Wir werden Veency verwenden (was großartig ist und Sie sowieso installieren sollten).

Gehen Sie zu Cydia oder Icy und installieren Sie die folgenden Pakete:

  • Veency - Stellt den VNC-Server bereit, konfigurieren Sie ihn so, dass er beim Start ausgeführt wird
  • LibVNCServer - Bietet libvncclient
  • iPhone 2.0 Toolchain - Bietet eine Build-Umgebung (gcc, libgcc, ldid, libz sind erforderlich, wenn Sie einen anderen Weg gehen)
  • MobileTerminal - Damit Sie auf das iPhone-Terminal zugreifen können
  • wget - Damit Sie die Quelldatei herunterziehen können

Jetzt die Quelle herunterladen und erstellen. Öffnen Sie entweder MobileTerminal oder SSH in Ihrem Telefon und gehen Sie dann wie folgt vor:

  • wget
  • gcc -static-libgcc -o TouchClient TouchClient.c -lvncclient
  • ldid -S TouchClient

Der letzte Schritt mit ldid täuscht das Signieren der Binärdatei vor. Ohne sie beendet das iPhone OS Ihren Prozess sofort.

Um das Programm zu starten, führen Sie es vom Mobile Terminal aus mit:

./TouchClient

Dadurch öffnet Veency einen Dialog, in dem Sie gefragt werden, ob Sie die VNC-Verbindung akzeptieren möchten. Klicken Sie auf Akzeptieren.

Mir ist aufgefallen, dass die Ausführung von MobileTerminal das Programm am Leben hält, auch wenn Sie MobileTerminal verlassen, aber es wäre besser, launchd zu verwenden. Das habe ich noch nicht herausgefunden.

Schritt 11: Feinschliff und zukünftige Arbeit

Zum Abschluss verbinden Sie das Kabel von Pin 13 am iPhone-Breakout wieder mit dem TX-Pin (Pin 1) am Arduino. Trennen Sie das USB-Kabel und schalten Sie den Arduino auf externe Stromversorgung um. Schließen Sie den iPhone-Breakout an Ihr iPhone an.

Wenn:

  • TouchClient läuft auf Ihrem iPhone
  • Die PS2-Software läuft auf Ihrem Arduino
  • Die Tastatur ist in den Anschluss eingesteckt und der Anschluss richtig mit dem Arduino verdrahtet
  • Veency läuft und Sie haben die Verbindung vom TouchClient akzeptiert
  • Nichts anderes ist vermasselt

Sie sollten in der Lage sein, auf der PS/2-Tastatur zu tippen und diese Tastenanschläge in die entsprechenden iPhone-Tastenanschläge übersetzen zu lassen. Dies funktioniert überall auf dem iPhone, in jeder App oder nativen Funktion.

Diese Lösung ist nicht perfekt, aber es ist ein universeller Ansatz zur Verwendung des Arduino, um PS/2-Tastaturunterstützung für fast alles hinzuzufügen, das einfache serielle Nachrichten lesen kann.

Zukünftige Arbeit:

  • Das Scan-Code-Mapping könnte vollständig auf das iPhone verlagert werden, und der Hardware-Teil dieses Projekts könnte auf einem viel billigeren und stromsparenderen Chip wie einem PIC neu implementiert werden. Dies würde die Kosten des Geräts um etwa 30 US-Dollar senken, obwohl ein PIC-Programmierer erforderlich wäre.
  • Nicht alle Sondertasten sind korrekt zugeordnet, aber wenn Sie sich den Arduino-Code und dann den iPhone-Code ansehen, werden Sie feststellen, dass dies ein unglaublich einfacher Vorgang ist. Bitte posten Sie alle Änderungen, die Sie vornehmen, hier als Kommentar!
  • Anstatt ein verrückter Kabel-Hack zu sein, würde ich gerne sehen, dass dies in ein gemütliches kleines Gehäuse passt, um echte Portabilität zu erzielen. Alle Ideen in dieser Abteilung würden geschätzt.
  • Ich möchte TouchClient ein Passwort für Veency geben, damit es nicht das nervige Popup-Fenster Akzeptieren/Ablehnen gibt.
  • Diese genaue Methode könnte verwendet werden, um eine Bluetooth-Tastatur hinzuzufügen. Fügen Sie einfach ein Bluetooth-Seriell-Modul zum iPhone Breakout hinzu und verwenden Sie TouchClient & Veency weiter.

Das ist es. Ich hoffe, Sie haben das Instructable genossen! Ich freue mich auf Ihre Kommentare. Grüße, - awgh

Empfohlen: