Inhaltsverzeichnis:

Verwenden der Palm-Infrarottastatur mit Android-Geräten - Gunook
Verwenden der Palm-Infrarottastatur mit Android-Geräten - Gunook

Video: Verwenden der Palm-Infrarottastatur mit Android-Geräten - Gunook

Video: Verwenden der Palm-Infrarottastatur mit Android-Geräten - Gunook
Video: USB OTG/USB C mit Android: PC-Geräte, Speichersticks und mehr anschließen – TECH.tipp – GIGA.DE 2024, Juli
Anonim
Verwenden Sie die Palm-Infrarottastatur mit Android-Geräten
Verwenden Sie die Palm-Infrarottastatur mit Android-Geräten
Verwenden Sie die Palm-Infrarottastatur mit Android-Geräten
Verwenden Sie die Palm-Infrarottastatur mit Android-Geräten
Verwenden Sie die Palm-Infrarottastatur mit Android-Geräten
Verwenden Sie die Palm-Infrarottastatur mit Android-Geräten

Ich hatte eine PalmOne Wireless Keyboard herumliegen und wollte eine Bluetooth-Tastatur für mein Telefon haben. Das einzige Problem war, dass die PalmOne-Tastatur Infrarot-basiert war.

Ich hatte auch ein Brainlink-Gerät. Dies ist ein ziemlich süßes kleines Gerät zum Vermitteln zwischen verschiedenen Geräten. Es hat einen atxmega16-Prozessor, einen wiederaufladbaren Akku, einige Sensoren, ein Bluetooth-Radio, eine Reihe von Anschlüssen, ein Gehäuse und eine aktualisierbare Firmware zur Steuerung. Der Brainlink wird eingestellt, aber SurplusShed hat ihn für 39 US-Dollar und sie haben regelmäßig 30-50% Rabatt auf alles. Ich habe es für 20 Dollar bekommen. Sie können auch Ihr eigenes atxmega plus Bluetooth-Board verwenden (Schema hier), aber Ihre Kosten sind möglicherweise nicht geringer.

Wie auch immer, nachdem Sie die Signalleitung auf der Tastatur identifiziert, ein Firmware-Upgrade für das Brainlink durchgeführt und einen Android-Treiber für die Tastatur geschrieben haben, funktioniert es ziemlich gut. Da die meiste Arbeit auf Recherche und Software bestand, ist es jetzt, wo das erledigt ist, ein recht einfaches Projekt für jeden, der einen Brainlink hat. Du brauchst:

  • PalmOne Wireless-Tastatur
  • Brainlink
  • Ein 3- oder 8-Pin-Tether für den Brainlink (1,25-mm-Pitch-JST-Stecker); Sie können das im Brainlink enthaltene 8-Pin-Tether verwenden, möchten aber für andere Projekte mehr bestellen
  • Löten und Eisen
  • Isolierband
  • Optional: Klettverschluss

In der Vergangenheit habe ich Brainlink verwendet, um eine Verbindung zu einem Mindflex EEG-Headset und einem Roomba herzustellen. Es ist wirklich großartig für Serial-to-Bluetooth-Bridging-Aufgaben. Ich mache einfach unterschiedliche Anschlüsse für verschiedene Geräte und kann den Brainlink zwischen ihnen verschieben.

Schritt 1: Hintergrund

Hintergrund
Hintergrund
Hintergrund
Hintergrund
Hintergrund
Hintergrund

Überspringen Sie diese Hintergrundbeschreibung gerne.

Die drahtlose PalmOne-Tastatur sendet ihre Daten über eine IR-LED an einem Stiel unter Verwendung von IrDA. Während man einen IR-Detektor verwenden könnte, um die Daten zu dekodieren, gibt es einen einfacheren Weg. Klappt man die Tastatur halb um, kommen drei Kupferstreifen zum Vorschein. Die mittlere ist Masse und die untere ist eine Sendeleitung. Wenn man sie an ein Oszilloskop legt, wird überprüft, ob das Signal auf der Sendeleitung mit ungefähr 9600 (genauer: 9760) 8 N 2 codiert ist, mit dem hohen Pegel um 1,56 V und mit irDA-Pulsformung: 1 ist hoch und positive Impulse 3/16 der Bitzeit nehmen.

All dies bedeutet leider, dass wir dies nicht einfach in ein einfaches Bluetooth-Modul stecken können (zumindest nicht ohne eine benutzerdefinierte Firmware dafür zu erstellen), wie ich es in meinem Mindflex-Projekt getan habe. Glücklicherweise hat der atxmega im Brainlink einen irDA-Modus für seinen UART. Es ist einfach, der Brainlink-Firmware ein wenig Code hinzuzufügen, der einen "J1"-Code ermöglicht, um sie in den IrDA-Modus zu schalten. Ich hatte erwartet, dass der hohe Pegel von 1,56 V für den atxmega nicht ausreicht, aber ich war angenehm überrascht, als ich die Kupferstreifen an GND und UART Receive am Brainlink anschloss und die Ergebnisse in Realterm ansah: Ich bekam schöne Sechs-Byte-Sequenzen von der Tastatur.

Es stellte sich heraus, dass die Sechs-Byte-Sequenz nur für einen Einzelbyte-Scancode (mit High-Bit-Markierungsfreigabe) verpackt ist. Insbesondere ist die Sequenz FF C0 xx yy zz C1, wobei xx der Scan-Code ist, yy xx xor'ed mit FF und zz xx xor'ed mit 67 ist. (Der Scan-Code wird tatsächlich dreimal übertragen: einmal klar und zweimal kodiert. Ich vermute, dies liegt daran, dass irDA anfällig für Korruption ist und Sie daher die Mehrheitsdekodierung verwenden können, um das Byte zu erhalten.) Danach bestand die einzige Hardwareschwierigkeit darin, einen Platz zum Löten eines Anschlusses auf der Tastatur zu finden. Und das war nicht schwer.

Softwareseitig könnte ich zwar vielleicht das RN-42 Bluetooth Modul im Brainlink in den HID-Modus schalten, das hatte Bricking-Potenzial, denn wenn das Modul nicht wieder auf SPP zurückschalten würde, könnte ich nicht mit mir sprechen das Brainlink über sein Bluetooth-Protokoll.

Am einfachsten war es, einfach die Open-Source-BluezIME-Tastatur-App zu nehmen, die es verschiedenen Bluetooth-Gamepads ermöglicht, als Android-Controller zu fungieren, und einen Modus für die Sechs-Byte-Sequenzen des Palm One Wireless Keyboards hinzuzufügen. Die resultierende App ist die kostenlose P1-Tastatur in Google Play (Quellcode auf github).

Schritt 2: Aktualisieren der Brainklink-Firmware

Aktualisieren der Brainklink-Firmware
Aktualisieren der Brainklink-Firmware
Aktualisieren der Brainklink-Firmware
Aktualisieren der Brainklink-Firmware

Um die serielle Datenunterstützung im IrDA-Format auf dem Brainlink zu aktivieren, müssen Sie meine benutzerdefinierte Firmware laden. Es ist einfach mit einem Android-Gerät und einem von mir geschriebenen Firmware-Uploader (übrigens können Sie den Uploader in einen Allzweck-Atmega/atxmega AVR109-Flash-Uploader ändern).

  1. Koppeln Sie Brainlink (PIN 1234) mit einem Android-Gerät – das müssen Sie sowieso tun, um die Tastatur anzuschließen
  2. Laden Sie meinen Brainlink Firmware Uploader von Google Play herunter (Quelle für Uploader und Firmware auf github).
  3. Schalten Sie Brainlink aus und verbinden Sie die Pins 8 und 2 (seltsamerweise ist Pin 8 der Pin ganz links und Pin 1 rechts) am 8-Pin-Port.
  4. Halten Sie die Pins verbunden und schalten Sie Brainlink ein. Seine LED sollte blau leuchten.
  5. Wählen Sie die gewünschte benutzerdefinierte Firmware aus (wenn Sie einen Roomba haben, funktioniert eine der Firmwares besser mit neueren Roombas und die andere mit älteren) und drücken Sie "Upload".
  6. Das sollte es sein, aber wenn Sie Verbindungsprobleme haben, müssen Sie es möglicherweise mehr als einmal versuchen.

Ihr Brainlink ist jetzt intelligenter: Es unterstützt nicht nur das Lesen von Daten von einigen IrDA-Geräten (sobald Sie ein unmoduliertes Signal gefunden haben), sondern fungiert auch als Standard-Roomba-zu-Bluetooth-Verbindung und kann Daten von einem Mindflex EEG-Headset erfassen. Und die Firmware ist abwärtskompatibel.

Schritt 3: Brainlink mit der Tastatur verbinden

Verbinden von Brainlink mit der Tastatur
Verbinden von Brainlink mit der Tastatur
Verbinden von Brainlink mit der Tastatur
Verbinden von Brainlink mit der Tastatur
Verbinden von Brainlink mit der Tastatur
Verbinden von Brainlink mit der Tastatur

Sie benötigen einen Tether-Anschluss, der zu den drei am weitesten links liegenden Pins des 8-Pin-Ports des Brainlinks passt. Dies sind Steckverbinder im JST-Stil mit einem Stiftabstand von 1,25 mm. Sie können einen dreipoligen Stecker (meine Wahl) oder einen 8-poligen Stecker verwenden. Sie können den 8-Pin-Anschluss verwenden, der mit dem Brainlink geliefert wird, aber dann möchten Sie mehr davon bestellen (ich habe 3- und 8-Pin-Anschlüsse billig bei ebay gefunden).

Öffnen Sie das Batteriefach der Tastatur und entnehmen Sie die Batterien. In der Nähe der Minusseite der Batterien finden Sie zwei Kabelpaare, die über einen JST-Stecker miteinander verbunden sind. Wenn Ihre Farben wie meine sind, sind die schwarzen Drähte geerdet (Sie können einfach den Widerstand zwischen diesem und dem Minuspol der Batterie überprüfen) und die anderen Farben (braun und grau) sind das Signal.

An Ihrem Brainlink 8-Pin-Port ist der ganz linke Anschluss Masse (linker Pin des 8-Pin-Ports) und der dritte Pin von links ist serieller Empfang. Löten Sie das Massekabel Ihres Brainlink-Steckers an die Masseleitung der Tastatur und das Empfangskabel des Brainlink an die Signalleitung. Möglicherweise ist im Tastaturbereich kein Platz für die Lötverbindung und den JST-Stecker das war in der tastatur. Wenn dies der Fall ist, entfernen Sie einfach den JST-Stecker und löten Sie beide Trios der relevanten Drähte (zwei Tastatur-Erdungskabel und ein Brainlink-Erdungskabel; zwei Tastatursignalkabel und ein Brainlink-Empfangskabel).

Es ist verlockend, die IR-LED-Seite des JST-Steckers zu trennen, um die Batterielebensdauer zu verlängern. Tu es nicht. Das Signal zerfällt, wenn Sie das tun. Ich habe mit meinem Oszilloskop nachgeschaut.

Bohren Sie ein Loch in die Lippe der Batterieabdeckung, damit die Drähte des Brainlink-Tethers hindurchgehen können, verwenden Sie Isolierband, um die beiden Verbindungen isoliert zu halten, und binden Sie einen kleinen Zugentlastungsknoten.

Schließlich, wenn alles fertig ist, verdecken Sie entweder irrelevante Kontakte am Brainlink-Tether oder schneiden Sie einfach die irrelevanten Drähte ab.

Vielleicht möchten Sie auch etwas Klettband am Brainlink und der Tastatur ankleben, um das Brainlink an Ort und Stelle zu halten.

Schritt 4: Verwendung mit Android-Gerät

Verwendung mit Android-Gerät
Verwendung mit Android-Gerät
  1. Koppeln Sie Brainlink mit Ihrem Android-Gerät (PIN 1234).
  2. Installieren Sie meine P1-Tastatur-App.
  3. Starten Sie die P1-Tastatureinstellungen (ein Symbol dafür sollte sich in Ihrem Launcher befinden).
  4. Aktivieren Sie die P1-Tastatur in den Einstellungen für die Android-Eingabemethode. In neueren Android-Versionen können Sie die P1-Tastatur aktivieren, indem Sie in den P1-Tastatureinstellungen "IME auswählen" auswählen und auf "Eingabemethoden einrichten" tippen. (Sie erhalten eine Warnung, dass die Tastatur alle Ihre Passwörter usw. sieht. Das ist eine Standard-Android-Warnung: Natürlich sieht ein Tastaturtreiber alles, was Sie eingeben. Wenn Sie Angst haben, schauen Sie sich den Quellcode der Tastatur an und bauen Sie auf dein eigenes.)
  5. Tippen Sie auf "Gerät auswählen" und wählen Sie Ihren Brainlink (meiner wird als RN42-A308 angezeigt).
  6. Tippen Sie in den P1-Tastatureinstellungen auf "IME auswählen" und wählen Sie P1-Tastatur.
  7. Es kann etwas dauern, eine Verbindung herzustellen, aber Sie sollten eine Nachricht erhalten, dass die Verbindung hergestellt wurde, wenn alles gut geht

Und du bist fertig! Zögern Sie nicht, an den Autor von BluezIME zu spenden, auf dem P1 Keyboard basiert.

Unter Android 4.0 und höher wird in Textfeldern eine Benachrichtigung angezeigt, die das Wechseln der Eingabemethoden ermöglicht, sodass Sie problemlos zu einer anderen Eingabemethode zurückkehren können.

Der Treiber, den ich für die Tastatur geschrieben habe, ist sehr einfach. Es unterstützt die normalen Tasten, aber nicht viele der Sondertasten mit Akzent oder andere spezielle Dinge die Windows-Taste und FN-2 als Menü und FN-3 als Suche. Strg-a, c, v, x funktionieren auch wie erwartet.

Es funktioniert gut genug, dass ich den vollständigen ersten Entwurf dieses Instructable auf meinem Galaxy S2-Telefon mit der Tastatur geschrieben habe.

Schritt 5: Andere Tastaturen

Andere Tastaturen
Andere Tastaturen
Andere Tastaturen
Andere Tastaturen

Wenn Sie mit anderen Infrarottastaturen experimentieren möchten, müssen Sie herausfinden, welche Signale sie senden und mit welcher Baudrate. Wenn der Brainlink auf die IrDA-kompatible Software aktualisiert wurde, können Sie sich mit RealTerm mit dem Brainlink verbinden. Wenn Sie das sich wiederholende "BL"-Signal sehen, das die Signatur von Brainlink ist, geben Sie Folgendes ein:

*J1Z

Der Asterisk bittet um Aufmerksamkeit, J1 schaltet auf 9600 Baud IrDA (muss nur schnell die 1 nach dem J eingeben oder es kommt eine Fehlermeldung). Das Z ist für den Seriell-zu-Bluetooth-Bridge-Modus.

Schalten Sie RealTerm so um, dass Hex-Codes angezeigt werden, und drücken Sie die Tasten auf der Tastatur und prüfen Sie, ob Sie dies verstehen können.

Um den seriellen Bridge-Modus zu verlassen, schalten Sie Brainlink aus und wieder ein.

Ich vermute 9600 Baud ist die richtige Baudrate. Andernfalls können Sie die Baudrate des Brainlinks ändern. Ich würde mit 57600 Baud beginnen:

*J1u57Z

und dann 1200 Baud:

*J1u12Z

Sobald Sie herausgefunden haben, wie die Tastatur ihre Daten sendet, ändern Sie einfach den Code meines Treibers. Wahrscheinlich reicht es aus, nur die Zahlen in PalmOneWirelessKeyboard.java zu ändern.

Empfohlen: