Innholdsfortegnelse:

Bruk Palm Infrarødt tastatur med Android -enheter: 5 trinn
Bruk Palm Infrarødt tastatur med Android -enheter: 5 trinn

Video: Bruk Palm Infrarødt tastatur med Android -enheter: 5 trinn

Video: Bruk Palm Infrarødt tastatur med Android -enheter: 5 trinn
Video: Leap Motion SDK 2024, Juni
Anonim
Bruk Palm Infrarødt tastatur med Android -enheter
Bruk Palm Infrarødt tastatur med Android -enheter
Bruk Palm Infrarødt tastatur med Android -enheter
Bruk Palm Infrarødt tastatur med Android -enheter
Bruk Palm Infrarødt tastatur med Android -enheter
Bruk Palm Infrarødt tastatur med Android -enheter

Jeg hadde et PalmOne trådløst tastatur sittende, og jeg ønsket å ha et Bluetooth -tastatur for telefonen min. Det eneste problemet var at PalmOne-tastaturet var infrarødt.

Jeg hadde også en Brainlink -enhet. Dette er en ganske søt liten enhet for å formidle mellom forskjellige enheter. Den har en atxmega16 -prosessor, et oppladbart batteri, noen sensorer, en Bluetooth -radio, en haug med porter, et etui og litt oppgraderbar fastvare for å kontrollere alt. Brainlink er avviklet, men SurplusShed har det for $ 39, og de har periodisk 30-50% rabatt på salg på alt. Jeg fikk den for $ 20. Du kan også bruke ditt eget atxmega plus Bluetooth -kort (skjemaer her), men kostnadene er kanskje ikke lavere.

Uansett, etter å ha identifisert hvor signallinjen på tastaturet er, lage en fastvareoppgradering for Brainlink og skrive en Android -driver for tastaturet, fungerer det ganske bra. Siden det meste av arbeidet var etterforskning og programvare, er det nå et ganske enkelt prosjekt for alle som har en Brainlink. Du trenger:

  • PalmOne trådløst tastatur
  • Brainlink
  • En 3- eller 8-pinners tether for Brainlink (1,25 mm pitch JST-stilkontakt); du kan bruke 8-pinners tetheren som følger med Brainlink, men du vil bestille mer til andre prosjekter
  • Lodde og jern
  • Elektrisk tape
  • Valgfritt: Krokbøyle

Tidligere har jeg brukt Brainlink til å koble til et Mindflex EEG -headset og til en Roomba. Det er veldig bra for serie-til-Bluetooth-brooppgaver. Jeg lager bare forskjellige kontakter for forskjellige enheter, og kan flytte Brainlink mellom dem.

Trinn 1: Bakgrunn

Bakgrunn
Bakgrunn
Bakgrunn
Bakgrunn
Bakgrunn
Bakgrunn

Hopp gjerne over denne bakgrunnsbeskrivelsen.

PalmOne Wireless Keyboard sender dataene sine gjennom en IR -LED på en stilk, ved hjelp av IrDA. Selv om man kan bruke en IR -detektor for å dekode dataene, er det en enklere måte. Hvis du bretter tastaturet halvveis, avsløres tre kobberstrimler. Den midterste er malt og den nederste er en sendelinje. Å sette dem til et oscilloskop bekrefter at signalet på sendelinjen er kodet inn på omtrent 9600 (mer presist: 9760) 8 N 2, med det høye nivået rundt 1,56V, og med irDA -pulsforming: 1 er høy og positive pulser ta 3/16 av bitetiden.

Dessverre betyr alt dette at vi ikke bare kan koble dette til en enkel Bluetooth -modul (i hvert fall ikke uten å lage tilpasset fastvare for den), slik jeg gjorde i mitt Mindflex -prosjekt. Heldigvis har atxmega i Brainlink en irDA -modus for sin UART. Det er enkelt å legge til litt kode i Brainlink -fastvaren slik at en "J1" -kode kan bytte den til IrDA -modus. Jeg forventet at 1,56V høyt nivå ville være utilstrekkelig for atxmega, men jeg ble hyggelig overrasket da jeg koblet kobberstrimlene til GND og UART Receive på Brainlink og så resultatene i Realterm: Jeg fikk fine seks bytesekvenser fra tastaturet.

Det viste seg at seksset på seks byte bare er emballasje for en enkelt byte skannekode (med høy bitmarkering). Nærmere bestemt er sekvensen FF C0 xx yy zz C1, hvor xx er skannekoden, yy xx xor'ed med FF, og zz xx xor'ed med 67. (I virkeligheten overføres skanningskoden tre ganger: en gang klar og to ganger kodet. Jeg tipper at dette er fordi irDA er utsatt for korrupsjon, og så du kan bruke majoritetsdekoding for å få byten.) Etter det var den eneste maskinvareproblemet å finne et sted å lodde en kontakt på tastaturet.. Og det var ikke vanskelig.

På programvaresiden, selv om jeg kanskje kunne bytte RN-42 Bluetooth-modulen i Brainlink til HID-modus, som hadde muringspotensial, siden hvis modulen ikke byttet tilbake til SPP, ville jeg ikke kunne snakke med Brainlink over Bluetooth -protokollen.

Den enkleste tingen å gjøre var bare å ta åpen kildekode BluezIME-tastaturapp som lar forskjellige Bluetooth-gamepads fungere som Android-kontrollere og legge til en modus for Palm One Wireless Keyboards seks-bytesekvenser. Den resulterende appen er det gratis P1 -tastaturet i Google Play nå (kildekoden på github).

Trinn 2: Oppgradering av Brainklink -fastvare

Oppgraderer Brainklink -fastvare
Oppgraderer Brainklink -fastvare
Oppgraderer Brainklink -fastvare
Oppgraderer Brainklink -fastvare

For å aktivere støtte for seriell data i IrDA-format på Brainlink må du laste ned min tilpassede fastvare. Det er enkelt med en Android -enhet og en fastvareopplaster jeg skrev (forresten, du kan endre opplasteren til å være et generelt formål atmega/atxmega AVR109 flash -opplaster).

  1. Koble Brainlink (PIN 1234) med en Android-enhet-du må uansett gjøre det for å koble til tastaturet
  2. Last ned min Brainlink Firmware Uploader fra Google Play (kilde for opplasting og fastvare på github).
  3. Slå av Brainlink og koble pinnene 8 og 2 (merkelig nok er pinne 8 pinnen lengst til venstre og pinne 1 til høyre) på 8-pinners port.
  4. Hold pinnene tilkoblet, slå på Brainlink. LED -lampen skal bli blå.
  5. Velg den egendefinerte fastvaren du vil ha (hvis du har en Roomba, fungerer en av firmwarene bedre med nyere Roombas og den andre med eldre), og trykk "Last opp".
  6. Det burde være det, men hvis du har tilkoblingsproblemer, må du kanskje prøve mer enn en gang.

Brainlink er nå smartere: den støtter ikke bare lesing av data fra noen IrDA-enheter (når du har funnet et umodulert signal), men fungerer også som en standard Roomba-til-Bluetooth-kobling, og kan fange data fra et Mindflex EEG-headset. Og fastvaren er bakoverkompatibel.

Trinn 3: Koble Brainlink til tastatur

Koble Brainlink til tastatur
Koble Brainlink til tastatur
Koble Brainlink til tastatur
Koble Brainlink til tastatur
Koble Brainlink til tastatur
Koble Brainlink til tastatur

Du trenger en tether-kontakt som passer til de tre pinnene til venstre på Brainlink 8-pinners port. Dette er kontakter i JST-stil med 1,25 mm pinneavstand. Du kan bruke en tre-pinners kontakt (mitt valg) eller en 8-pinners kontakt. Du kan bruke 8-pinners kontakten som følger med Brainlink, men da vil du bestille flere av dem (jeg fant 3- og 8-pinners kontakter billig på eBay).

Åpne batterirommet på tastaturet og ta ut batteriene. Nær minus-siden av batteriene finner du to par ledninger koblet sammen via en JST-kontakt. Hvis fargene dine er som mine, er de svarte ledningene malt (du kan bare sjekke motstanden mellom det og minusterminalen på batteriet) og de andre fargene (brun og grå) er signalet.

På din 8-pinners Brainlink-port er tilkoblingen lengst til venstre jordet (pinnen til venstre med 8-pinners port) og den tredje pinnen fra venstre er seriell mottak. Lod jordkabelen på din Brainlink-kontakt til jordlinjen på tastaturet, og mottakskabelen på Brainlink til signallinjen. Du kan finne at det ikke er plass på tastaturområdet for loddetilkoblingen og JST-kontakten det var inni tastaturet. I så fall må du bare fjerne kontakten i JST-stil og lodde begge trioene med relevante ledninger (to jordede tastaturledninger og en Brainlink-jordledning; to tastatursignaltråder og en Brainlink-mottakertråd).

Det er fristende å koble fra IR LED-siden på JST-kontakten for å spare batterilevetid. Ikke gjør det. Signalet faller fra hverandre hvis du gjør det. Jeg sjekket med oscilloskopet mitt.

Lag et hull på leppen på batteridekselet slik at ledningene til Brainlink-båndet går gjennom, bruk elektrisk tape for å holde de to tilkoblingene isolert, og bind en liten spennavlastningsknute.

Til slutt, når alt er gjort, må du enten dekke til irrelevante kontakter på Brainlink -bindingen eller bare kutte av de irrelevante ledningene.

Det kan også være lurt å lime litt borrelås på Brainlink og tastaturet for å holde Brainlink på plass.

Trinn 4: Bruk med Android -enhet

Bruk med Android -enhet
Bruk med Android -enhet
  1. Koble Brainlink med Android -enheten din (PIN 1234).
  2. Installer min P1 -tastaturapp.
  3. Start P1 -tastaturinnstillinger (et ikon for det skal være i startprogrammet ditt).
  4. Aktiver P1 -tastatur i innstillinger for Android -inndatametoder. På nyere Android -versjoner kan du aktivere P1 -tastaturet ved å velge "Velg IME" i P1 -tastaturinnstillinger og trykke på "Konfigurer inndatametoder". (Du får en advarsel om at tastaturet ser alle passordene dine osv. Det er en standard Android -advarsel: selvfølgelig ser en tastaturdriver alt du skriver. Hvis du er redd, kan du se på kildekoden til tastaturet og bygge din egen.)
  5. Trykk på "Velg enhet" og velg Brainlink (min vises som RN42-A308).
  6. Trykk på "Velg IME" i P1 -tastaturinnstillingene og velg P1 -tastatur.
  7. Det kan ta litt tid å koble til, men du bør få en melding om å ha koblet til hvis alt går bra

Og du er ferdig! Doner gjerne til forfatteren av BluezIME som P1 Keyboard er basert på.

På Android 4.0+, når det i tekstfelt vil det være et varsel som tillater bytte inngangsmetoder, slik at du enkelt kan bytte tilbake til en annen inndatametode.

Driveren jeg skrev for tastaturet er veldig enkel. Den støtter de vanlige tastene, men støtter ikke mange av de spesielle aksentene eller andre spesielle ting. Jeg la til støtte for bruk av de to knappene med et hjem (FN-1 og nøkkelen til venstre for mellomrommet) som Home, Windows-tasten og FN-2 som Meny og FN-3 som Søk. Ctrl-a, c, v, x fungerer også som forventet.

Det fungerer bra nok til at jeg skrev det første første utkastet til denne Instructable på min Galaxy S2 -telefon med tastaturet.

Trinn 5: Andre tastaturer

Andre tastaturer
Andre tastaturer
Andre tastaturer
Andre tastaturer

Hvis du vil eksperimentere med andre infrarøde tastaturer, må du finne ut hvilke signaler de sender og med hvilken baudhastighet. Med Brainlink oppdatert til IrDA-kompatibel programvare, kan du koble til RealTerm til Brainlink. Når du ser det gjentatte "BL" -signalet som er signaturen til Brainlink, skriver du inn:

*J1Z

Stjernen ber om oppmerksomhet, J1 bytter til 9600 baud IrDA (må bare skrive 1 raskt etter J eller du får en feil). Z er for seriell-til-Bluetooth-bromodus.

Bytt RealTerm for å vise hex -koder, og trykk på tastene på tastaturet og se om du kan forstå det.

For å gå ut av seriebro -modus, slå på Brainlink.

Jeg tipper 9600 baud er riktig baudrate. Hvis du ikke klarer det, kan du endre Brainlink -overføringshastigheten. Jeg vil begynne med å prøve 57600 baud:

*J1u57Z

og deretter 1200 baud:

*J1u12Z

Når du har funnet ut hvordan tastaturet sender dataene sine, må du bare endre koden til driveren min. Sannsynligvis er det bare å endre tallene i PalmOneWirelessKeyboard.java.

Anbefalt: