Indholdsfortegnelse:

Brug Palm Infrarødt tastatur med Android -enheder: 5 trin
Brug Palm Infrarødt tastatur med Android -enheder: 5 trin

Video: Brug Palm Infrarødt tastatur med Android -enheder: 5 trin

Video: Brug Palm Infrarødt tastatur med Android -enheder: 5 trin
Video: Leap Motion SDK 2024, November
Anonim
Brug Palm Infrarødt tastatur med Android -enheder
Brug Palm Infrarødt tastatur med Android -enheder
Brug Palm Infrarødt tastatur med Android -enheder
Brug Palm Infrarødt tastatur med Android -enheder
Brug Palm Infrarødt tastatur med Android -enheder
Brug Palm Infrarødt tastatur med Android -enheder

Jeg havde et PalmOne trådløst tastatur siddende, og jeg ville have et Bluetooth -tastatur til min telefon. Det eneste problem var, at PalmOne-tastaturet var infrarødt baseret.

Jeg havde også en Brainlink -enhed. Dette er en ret sød lille enhed til at formidle mellem forskellige enheder. Den har en atxmega16 -processor, et genopladeligt batteri, nogle sensorer, en Bluetooth -radio, en masse porte, en sag og en opgraderbar firmware til styring af det hele. Brainlink afbrydes, men SurplusShed har det for $ 39, og de har periodisk 30-50% rabat på salget på alt. Jeg fik det for $ 20. Du kan også bruge dit eget atxmega plus Bluetooth -kort (skemaer her), men dine omkostninger er muligvis ikke lavere.

Anyway, efter at have identificeret hvor signallinjen på tastaturet er, foretaget en firmwareopgradering til Brainlink og skrevet en Android -driver til tastaturet, fungerer det ret godt. Da det meste af arbejdet var at undersøge og software, nu hvor det er gjort, er det et ganske let projekt for alle, der har en Brainlink. Du mangler:

  • PalmOne trådløst tastatur
  • Brainlink
  • En 3- eller 8-benet tether til Brainlink (1,25 mm pitch JST-stil stik); du kan bruge den 8-benede tether, der følger med Brainlink, men du vil bestille mere til andre projekter
  • Lodde og jern
  • Elektrisk tape
  • Valgfrit: Krogbøjle

Tidligere har jeg brugt Brainlink til at oprette forbindelse til et Mindflex EEG -headset og til en Roomba. Det er virkelig fantastisk til seriel-til-Bluetooth-broopgaver. Jeg laver bare forskellige stik til forskellige enheder, og kan flytte Brainlink mellem dem.

Trin 1: Baggrund

Baggrund
Baggrund
Baggrund
Baggrund
Baggrund
Baggrund

Spring gerne over denne baggrundsbeskrivelse.

PalmOne Wireless Keyboard sender sine data via en IR LED på en stilk ved hjælp af IrDA. Selvom man kunne bruge en IR -detektor til at afkode dataene, er der en lettere måde. Hvis du folder tastaturet halvt op, afsløres tre kobberstrimler. Den midterste er formalet, og den nederste er en transmitterlinje. At stille dem til et oscilloskop verificerer, at signalet på transmitterlinjen er indkodet til cirka 9600 (mere præcist: 9760) 8 N 2, med det høje niveau omkring 1,56V og med irDA -pulsudformning: 1 er høj og positive pulser tage 3/16 af bittiden.

Desværre betyder alt dette, at vi ikke bare kan tilslutte dette til et simpelt Bluetooth -modul (i hvert fald ikke uden at lave tilpasset firmware til det), som jeg gjorde i mit Mindflex -projekt. Heldigvis har atxmega i Brainlink en irDA -tilstand til sin UART. Det er enkelt at tilføje en smule kode til Brainlink -firmwaren, så en "J1" -kode kan skifte den til IrDA -tilstand. Jeg forventede, at 1,56V høje niveau ville være utilstrækkeligt til atxmega, men jeg blev glædeligt overrasket, da jeg sluttede kobberstrimlerne til GND og UART Receive på Brainlink og så resultaterne i Realterm: Jeg fik flotte seks bytesekvenser fra tastaturet.

Det viste sig, at seks bytesekvensen kun er emballage til en enkelt bytescanningskode (med frigivelse af høj bitmarkering). Specifikt er sekvensen FF C0 xx yy zz C1, hvor xx er scanningskoden, yy xx xor'ed med FF, og zz xx xor'ed med 67. (I virkeligheden transmitteres scanningskoden tre gange: en gang klar og to gange kodet. Jeg gætter på, at dette er fordi irDA er tilbøjelig til korruption, og så du kan bruge majoritetsafkodning til at få byten.) Derefter var den eneste hardware-vanskelighed at finde et sted at lodde et stik på tastaturet. Og det var ikke svært.

På softwaresiden, mens jeg måske måske kunne skifte RN-42 Bluetooth-modulet i Brainlink til HID-tilstand, der havde muringspotentiale, da hvis modulet ikke skiftede tilbage til SPP, ville jeg ikke kunne tale med Brainlink over sin Bluetooth -protokol.

Den lettere ting var bare at tage open source BluezIME-tastaturappen, der gør det muligt for forskellige Bluetooth-gamepads at fungere som Android-controllere og tilføje en tilstand til Palm One Wireless Keyboards seks-bytes sekvenser. Den resulterende app er det gratis P1 -tastatur i Google Play nu (kildekoden på github).

Trin 2: Opgradering af Brainklink Firmware

Opgradering af Brainklink Firmware
Opgradering af Brainklink Firmware
Opgradering af Brainklink -firmware
Opgradering af Brainklink -firmware

For at aktivere IrDA-format seriel datastøtte på Brainlink skal du indlæse min brugerdefinerede firmware. Det er let med en Android -enhed og en firmware -uploader, jeg skrev (i øvrigt kan du ændre uploaderen til at være et generelt formål atmega/atxmega AVR109 flash uploader).

  1. Par Brainlink (PIN 1234) med en Android-enhed-det skal du alligevel gøre for at forbinde tastaturet
  2. Download min Brainlink Firmware Uploader fra Google Play (kilde til uploader og firmware på github).
  3. Sluk for Brainlink, og tilslut stifterne 8 og 2 (mærkeligt nok, at pin 8 er stiften længst til venstre, og pin 1 er til højre) på 8-polet porten.
  4. Hold stifterne tilsluttet, og tænd Brainlink. Dens LED skal blive blå.
  5. Vælg den tilpassede firmware, du ønsker (hvis du har en Roomba, fungerer en af firmwares bedre med nyere Roombas og den anden med ældre), og tryk på "Upload".
  6. Det burde være det, men hvis du har forbindelsesproblemer, skal du muligvis prøve mere end én gang.

Dit Brainlink er nu smartere: det understøtter ikke kun læsning af data fra nogle IrDA-enheder (når du har fundet et umoduleret signal), men fungerer også som et standard Roomba-til-Bluetooth-link og kan fange data fra et Mindflex EEG-headset. Og firmwaren er bagudkompatibel.

Trin 3: Tilslutning af Brainlink til tastatur

Tilslutning af Brainlink til tastatur
Tilslutning af Brainlink til tastatur
Tilslutning af Brainlink til tastatur
Tilslutning af Brainlink til tastatur
Tilslutning af Brainlink til tastatur
Tilslutning af Brainlink til tastatur

Du skal bruge et forbindelsesstik, der passer til de tre stifter til venstre på Brainlink's 8-benede port. Disse er stik i JST-stil med 1,25 mm stiftafstand. Du kan bruge et trepolet stik (mit valg) eller et 8-benet stik. Du kan bruge det 8-benede stik, der følger med Brainlink, men så vil du gerne bestille flere af dem (jeg fandt 3- og 8-benede stik billige på ebay).

Åbn tastaturets batterirum, og fjern batterierne. Nær minus-siden af batterierne finder du to par ledninger forbundet med hinanden via et stik i JST-stil. Hvis dine farver er som mine, er de sorte ledninger formalet (du kan bare kontrollere modstanden mellem det og minusterminalen på batteriet) og de andre farver (brun og grå) er signalet.

På din Brainlink 8-benet port er forbindelsen længst til venstre jordet (pin længst til venstre i 8-polet port), og den tredje pin fra venstre er seriel modtagelse. Lod jordkablet på dit Brainlink-stik til jordlinjen på tastaturet og modtagekablet på Brainlink til signallinjen. Du vil muligvis opleve, at der ikke er plads til tastaturområdet til loddetilslutningen og stikket i JST-stil det var inde i tastaturet. Hvis det er tilfældet, skal du bare fjerne stikket i JST-stil og lodde begge trioer med relevante ledninger (to tastaturjordledninger og en Brainlink-jordledning; to tastatursignaltråde og en Brainlink-modtagekabel).

Det er fristende at afbryde IR LED-siden af JST-stil stikket for at spare batterilevetid. Gør det ikke. Signalet falder fra hinanden, hvis du gør det. Jeg tjekkede med mit oscilloskop.

Lav et hul på kanten af batteridækslet, så ledningerne i Brainlink-bindingen kan gå igennem, brug elektrisk tape til at holde de to forbindelser isolerede, og bind en lille spændingsaflastende knude.

Endelig, når alt er gjort, skal du enten tildække irrelevante kontakter på Brainlink -binderen eller bare afskære de irrelevante ledninger.

Du vil måske også lime lidt velcro på Brainlink og tastaturet for at holde Brainlink på plads.

Trin 4: Brug med Android -enhed

Brug med Android -enhed
Brug med Android -enhed
  1. Par Brainlink med din Android -enhed (PIN 1234).
  2. Installer min P1 -tastaturapp.
  3. Start P1 -tastaturindstillinger (et ikon for det skal være i din launcher).
  4. Aktiver P1 -tastatur i indstillinger for Android -inputmetode. På nyere Android -versioner kan du aktivere P1 -tastaturet ved at vælge "Vælg IME" i P1 -tastaturindstillinger og trykke på "Konfigurer inputmetoder." (Du får en advarsel om, at tastaturet ser alle dine adgangskoder osv. Det er en standard Android -advarsel: selvfølgelig ser en tastaturdriver alt, hvad du skriver. Hvis du er bange, skal du se på tastaturets kildekode og bygge din egen.)
  5. Tryk på "Vælg enhed", og vælg dit Brainlink (mit vises som RN42-A308).
  6. Tryk på "Vælg IME" i P1 -tastaturindstillingerne, og vælg P1 -tastatur.
  7. Det kan tage lidt tid at oprette forbindelse, men du bør få en besked om at have forbindelse, hvis alt går godt

Og du er færdig! Doner gerne til forfatteren af BluezIME, som P1 Keyboard er baseret på.

På Android 4.0+, når der i tekstfelter vil være en meddelelse, der gør det muligt at skifte inputmetoder, så du nemt kan skifte tilbage til en anden inputmetode.

Den driver, jeg skrev til tastaturet, er meget enkel. Det understøtter de almindelige taster, men understøtter ikke mange af de specielle accenterede taster eller andre specielle ting. Jeg tilføjede understøttelse for at bruge de to knapper med et hjem (FN-1 og nøglen til venstre for rummet) som Home, ved hjælp af Windows-tasten og FN-2 som Menu og FN-3 som Søg. Ctrl-a, c, v, x fungerer også som forventet.

Det fungerer godt nok, at jeg skrev det komplette første udkast til denne Instructable på min Galaxy S2 -telefon med tastaturet.

Trin 5: Andre tastaturer

Andre tastaturer
Andre tastaturer
Andre tastaturer
Andre tastaturer

Hvis du vil eksperimentere med andre infrarøde tastaturer, skal du finde ud af, hvilke signaler de sender og med hvilken baudhastighed. Med Brainlink opdateret til IrDA-kompatibel software, kan du oprette forbindelse med RealTerm til Brainlink. Når du ser det gentagne "BL" -signal, der er signaturen til Brainlink, skal du skrive:

*J1Z

Stjernen beder om opmærksomhed, J1 skifter til 9600 baud IrDA (skal bare skrive 1 hurtigt efter J, eller du får en fejl). Z er til seriel-til-Bluetooth-brotilstand.

Skift RealTerm for at vise hex -koder, og tryk på tasterne på tastaturet, og se om du kan få mening om det.

For at afslutte seriel brotilstand skal du køre Brainlink på motorcykel.

Jeg gætter på, at 9600 baud er den rigtige baudrate. Hvis dette ikke lykkes, kan du ændre Brainlink's baudrate. Jeg ville starte med at prøve 57600 baud:

*J1u57Z

og derefter 1200 baud:

*J1u12Z

Når du har fundet ud af, hvordan tastaturet sender sine data, skal du bare ændre koden til min driver. Sandsynligvis er det bare at ændre tallene i PalmOneWirelessKeyboard.java.

Anbefalede: