Kazalo:

Infrardeča tipkovnica Palm z napravami Android: 5 korakov
Infrardeča tipkovnica Palm z napravami Android: 5 korakov

Video: Infrardeča tipkovnica Palm z napravami Android: 5 korakov

Video: Infrardeča tipkovnica Palm z napravami Android: 5 korakov
Video: Брайан Китинг и Ли Кронин: Жизнь во Вселенной 2024, Julij
Anonim
Infrardečo tipkovnico Palm uporabljajte z napravami Android
Infrardečo tipkovnico Palm uporabljajte z napravami Android
Infrardečo tipkovnico Palm uporabljajte z napravami Android
Infrardečo tipkovnico Palm uporabljajte z napravami Android
Infrardečo tipkovnico Palm uporabljajte z napravami Android
Infrardečo tipkovnico Palm uporabljajte z napravami Android

Naokoli sem sedel brezžično tipkovnico PalmOne in hotel sem imeti tipkovnico Bluetooth za telefon. Edina težava je bila v tem, da je bila tipkovnica PalmOne infrardeča.

Imel sem tudi napravo Brainlink. To je precej luštna naprava za posredovanje med različnimi napravami. Ima procesor atxmega16, baterijo za ponovno polnjenje, nekaj senzorjev, radio Bluetooth, kopico vrat, ohišje in nekaj nadgradljive vdelane programske opreme za vse to. Brainlink je ukinjen, SurplusShed pa ga ima za 39 USD in imajo občasno 30-50% popusta pri prodaji vsega. Dobil sem ga za 20 dolarjev. Uporabite lahko tudi svojo ploščo atxmega plus Bluetooth (sheme tukaj), vendar vaši stroški morda niso nižji.

Kakorkoli že, potem ko je ugotovil, kje je signalna linija na tipkovnici, nadgradil vdelano programsko opremo za Brainlink in napisal gonilnik za Android za tipkovnico, deluje zelo dobro. Ker je večina dela preučevala in programsko opremo, je zdaj, ko je to storjeno, precej preprost projekt za vsakogar, ki ima Brainlink. Potrebujete:

  • Brezžična tipkovnica PalmOne
  • Brainlink
  • 3- ali 8-polni privezovalnik za Brainlink (priključek v slogu JST v slogu 1,25 mm); lahko uporabite 8-polni privez, priložen Brainlink-u, vendar boste želeli naročiti več za druge projekte
  • Spajkanje in železo
  • Električni trak
  • Izbirno: Pritrditev na kljuko

V preteklosti sem Brainlink uporabljal za povezavo s slušalkami EEG Mindflex in Roombo. Res je super za premostitvene naloge serijske povezave Bluetooth. Za različne naprave izdelam samo različne priključke in med njimi lahko premikam Brainlink.

1. korak: Ozadje

Ozadje
Ozadje
Ozadje
Ozadje
Ozadje
Ozadje

Ta opis ozadja lahko preskočite.

Brezžična tipkovnica PalmOne pošilja svoje podatke prek IR LED na steblu z uporabo IrDA. Medtem ko bi lahko za dekodiranje podatkov uporabili IR detektor, obstaja enostavnejša pot. Če tipkovnico prepognete, so izpostavljeni trije bakreni trakovi. Srednji je ozemljen, spodnji pa je oddajna linija. Če jih postavite na osciloskop, se preveri, ali je signal na oddajni liniji kodiran pri približno 9600 (natančneje: 9760) 8 N 2, z visokim nivojem okoli 1,56 V in z oblikovanjem impulza irDA: 1 je visok in pozitivni impulzi vzemite 3/16 bitnega časa.

Na žalost vse to pomeni, da tega ne moremo preprosto priključiti v preprost modul Bluetooth (vsaj ne brez izdelave vdelane programske opreme po meri), kot sem to storil v svojem projektu Mindflex. Na srečo ima atxmega v Brainlink -u način irDA za svoj UART. Preprosto je, da vdelano programsko opremo Brainlink dodate malo kode, kar omogoča, da jo koda "J1" preklopi v način IrDA. Pričakoval sem, da visoka raven 1,56 V ne bo zadostovala za atxmego, vendar sem bil prijetno presenečen, ko sem povezal bakrene trakove z GND in UART Receive na Brainlink -u in si rezultate ogledal v Realtermu: s tipkovnice sem dobil lepe šest -bajtne sekvence.

Izkazalo se je, da je šestbajtno zaporedje samo embalaža za enobajtno kodo za skeniranje (z izpuščanjem oznak z visokim bitom). Natančneje, zaporedje je FF C0 xx yy zz C1, kjer je xx koda za skeniranje, yy je xx xor'ed s FF, zz pa xx xor'ed s 67. (Dejansko se koda za skeniranje pošlje trikrat: enkrat jasno in dvakrat kodirano. Predvidevam, da je to zato, ker je irDA nagnjen k korupciji, zato lahko za večino dekodiranja uporabite bajt.) Po tem je bila edina strojna težava iskanje mesta za spajkanje priključka na tipkovnici. In to ni bilo težko.

Kar zadeva programsko opremo, čeprav bi morda lahko modul Bluetooth RN-42 v Brainlinku preklopil v način HID, je to imelo potencial za zapiranje, saj če se modul ne bi preklopil nazaj na SPP, se ne bi mogel pogovarjati Brainlink preko svojega protokola Bluetooth.

Najlažje je bilo vzeti odprtokodno aplikacijo za tipkovnico BluezIME, ki omogoča različnim igralnim podlogam Bluetooth, da delujejo kot krmilniki za Android, in dodati način za šest-bajtno zaporedje brezžične tipkovnice Palm One. Nastala aplikacija je zdaj brezplačna tipkovnica P1 v Googlu Play (izvorna koda na githubu).

2. korak: Nadgradnja vdelane programske opreme Brainklink

Nadgradnja vdelane programske opreme Brainklink
Nadgradnja vdelane programske opreme Brainklink
Nadgradnja vdelane programske opreme Brainklink
Nadgradnja vdelane programske opreme Brainklink

Če želite omogočiti podporo za serijske podatke v formatu IrDA na Brainlink-u, morate naložiti mojo vdelano programsko opremo po meri. Z napravo Android in nalagalnikom vdelane programske opreme, ki sem jo napisal, je preprosto (mimogrede, nalagalnik lahko spremenite v splošni namestitveni program atmega/atxmega AVR109).

  1. Seznanite Brainlink (PIN 1234) z napravo Android-vseeno boste morali to narediti, če želite povezati tipkovnico
  2. Prenesite moj program Brainlink Firmware Uploader iz Googla Play (vir za nalaganje in vdelano programsko opremo na githubu).
  3. Izklopite Brainlink in povežite nožici 8 in 2 (nenavadno je, da je pin 8 najbolj levi pin, pin 1 pa na desni) na 8-polnem vhodu.
  4. Ko držite nožice priključene, vklopite Brainlink. Njegova LED dioda naj postane modra.
  5. Izberite želeno vdelano programsko opremo po meri (če imate Roombo, ena od vdelanih programov bolje deluje z novejšimi Roombami, druga pa s starejšimi) in pritisnite »Naloži«.
  6. To bi moralo biti to, če pa imate težave s povezavo, boste morda morali poskusiti več kot enkrat.

Vaš Brainlink je zdaj pametnejši: ne podpira samo branja podatkov iz nekaterih naprav IrDA (ko poiščete nemoduliran signal), ampak deluje tudi kot standardna povezava Roomba-Bluetooth in lahko zajema podatke iz slušalk Mindflex EEG. In vdelana programska oprema je združljiva nazaj.

Korak: Povežite Brainlink s tipkovnico

Povezovanje Brainlinka s tipkovnico
Povezovanje Brainlinka s tipkovnico
Povezovanje Brainlinka s tipkovnico
Povezovanje Brainlinka s tipkovnico
Povezovanje Brainlinka s tipkovnico
Povezovanje Brainlinka s tipkovnico

Potrebovali boste priključek za privezovanje, ki ustreza trem levim zatičem na 8-polnih vratih Brainlink. To so priključki v slogu JST z razmikom med zatiči 1,25 mm. Uporabite lahko tri-polni konektor (po moji izbiri) ali 8-polni konektor. Uporabite lahko 8-pinski konektor, ki je priložen Brainlink-u, potem pa jih boste želeli naročiti več (3- in 8-pinski priključki so se mi zdeli poceni na ebayu).

Odprite ležišče za baterije na tipkovnici in odstranite baterije. V bližini minus strani baterij boste našli dva para žic, povezanih skupaj prek konektorja v stilu JST. Če so vaše barve podobne mojim, so črne žice ozemljene (lahko samo preverite upor med tem in minus kontaktom na bateriji), druge barve (rjava in siva) pa so signal.

Na vaših 8-polnih vratih Brainlink je skrajni levi priključek ozemljen (skrajni levi zatič za 8-pinska vrata), tretji levi zatič pa je serijski sprejem. Spajajte ozemljitveno žico na svojem priključku Brainlink z ozemljitveno črto na tipkovnici, sprejemno žico na Brainlink pa na signalno linijo. Morda boste ugotovili, da na območju tipkovnice ni prostora za spajkanje in konektor v slogu JST to je bilo v tipkovnici. Če je tako, samo odstranite konektor v slogu JST in spajkajte oba trojca ustreznih žic (dve ozemljitveni žici tipkovnice in eno ozemljitveno žico Brainlink; dve signalni žici tipkovnice in eno sprejemno žico Brainlink).

V skušnjavi je, da odklopite IR LED stran konektorja v slogu JST, da prihranite življenjsko dobo baterije. Ne stori tega. Če to storite, signal razpade. Preveril sem z osciloskopom.

Na robu pokrova baterije naredite luknjo, skozi katero bodo šle žice priveza Brainlink, z električnim trakom izolirajte obe povezavi in privežite majhen vozel za razbremenitev napetosti.

Ko je vse končano, prikrijte nepomembne stike na privezu Brainlink ali pa preprosto odrežite nepomembne žice.

Morda boste želeli prilepiti tudi Velcro na Brainlink in tipkovnico, da bo Brainlink na mestu.

4. korak: Uporaba z napravo Android

Uporaba z napravo Android
Uporaba z napravo Android
  1. Seznanite Brainlink z napravo Android (PIN 1234).
  2. Namestite mojo aplikacijo P1 Keyboard.
  3. Zaženite nastavitve tipkovnice P1 (ikona mora biti v zaganjalniku).
  4. Omogočite tipkovnico P1 v nastavitvah načina vnosa Android. V novejših različicah Android lahko tipkovnico P1 omogočite tako, da v nastavitvah tipkovnice P1 izberete »Izberi IME« in se dotaknete »Nastavi načine vnosa«. (Prejeli boste opozorilo, da tipkovnica vidi vsa vaša gesla itd. To je standardno opozorilo za Android: seveda gonilnik tipkovnice vidi vse, kar vnesete. Če vas je strah, si oglejte izvorno kodo tipkovnice in zgradite lastne.)
  5. Dotaknite se »Izberi napravo« in izberite svojo Brainlink (moja se prikaže kot RN42-A308).
  6. Dotaknite se "Select IME" v nastavitvah tipkovnice P1 in izberite P1 Keyboard.
  7. Za vzpostavitev povezave lahko traja nekaj časa, vendar bi morali dobiti sporočilo o povezavi, če je vse v redu

In končali ste! Prosto podarite avtorju BluezIME, na katerem temelji tipkovnica P1.

V sistemu Android 4.0+ bo v besedilnih poljih prikazano obvestilo, ki omogoča preklapljanje načinov vnosa, tako da se lahko preprosto preklopite nazaj na drug način vnosa.

Gonilnik, ki sem ga napisal za tipkovnico, je zelo preprost. Podpira navadne tipke, vendar ne podpira veliko tipk s posebnimi poudarki ali drugih posebnih stvari. Dodal sem podporo za uporabo obeh gumbov z domov (FN-1 in tipka levo od presledka) kot Home, z uporabo tipko Windows in FN-2 kot meni in FN-3 kot iskanje. Tudi ctrl-a, c, v, x deluje po pričakovanjih.

Deluje dovolj dobro, da sem na svoj telefon Galaxy S2 s tipkovnico napisal celoten prvi osnutek tega navodila.

5. korak: Druge tipkovnice

Druge tipkovnice
Druge tipkovnice
Druge tipkovnice
Druge tipkovnice

Če želite eksperimentirati z drugimi infrardečimi tipkovnicami, boste morali ugotoviti, katere signale pošiljajo in s kakšno hitrostjo prenosa. Ko je Brainlink posodobljen na programsko opremo, združljivo z IrDA, se lahko povežete z RealTerm na Brainlink. Ko vidite ponavljajoči se signal "BL", ki je podpis Brainlink -a, vnesite:

*J1Z

Zvezdica prosi za pozornost, J1 preklopi na 9600 baud IrDA (samo morate vnesti 1 hitro po J ali pa pride do napake). Z je za zaporedni način zaporednega povezave do Bluetooth.

Preklopite RealTerm na prikaz šestnajstiških kod in pritisnite tipke na tipkovnici in preverite, ali je to smiselno.

Če želite zapustiti način serijskega mostu, vklopite Brainlink z motorjem.

Predvidevam, da je 9600 baud prava hitrost prenosa. Če tega ne storite, lahko spremenite hitrost prenosa Brainlink. Začel bi s poskusom 57600 baud:

*J1u57Z

in potem 1200 baud:

*J1u12Z

Ko ugotovite, kako tipkovnica pošilja podatke, spremenite kodo gonilnika. Verjetno zadostuje le sprememba številk v PalmOneWirelessKeyboard.java.

Priporočena: