INHOUDSOPGAWE:

Gebruik Palm -infrarooi sleutelbord met Android -toestelle: 5 stappe
Gebruik Palm -infrarooi sleutelbord met Android -toestelle: 5 stappe

Video: Gebruik Palm -infrarooi sleutelbord met Android -toestelle: 5 stappe

Video: Gebruik Palm -infrarooi sleutelbord met Android -toestelle: 5 stappe
Video: How to Screenshot on PC 2024, November
Anonim
Gebruik Palm -infrarooi sleutelbord met Android -toestelle
Gebruik Palm -infrarooi sleutelbord met Android -toestelle
Gebruik Palm -infrarooi sleutelbord met Android -toestelle
Gebruik Palm -infrarooi sleutelbord met Android -toestelle
Gebruik Palm -infrarooi sleutelbord met Android -toestelle
Gebruik Palm -infrarooi sleutelbord met Android -toestelle

Ek het 'n PalmOne Wireless Keyboard gehad en ek wou 'n Bluetooth -sleutelbord vir my foon hê. Die enigste probleem was dat die PalmOne-sleutelbord infrarooi was.

Ek het ook 'n Brainlink -toestel gehad. Dit is 'n redelik oulike apparaatjie om tussen verskillende toestelle te bemiddel. Dit het 'n atxmega16 -verwerker, 'n herlaaibare battery, 'n paar sensors, 'n Bluetooth -radio, 'n klomp hawens, 'n omhulsel en 'n paar opgradeerbare firmware om dit alles te beheer. Die Brainlink word gestaak, maar SurplusShed het dit vir $ 39, en hulle het gereeld 30-50% afslag op alles. Ek het dit vir $ 20 gekry. U kan ook u eie atxmega plus Bluetooth -bord gebruik (skema's hier), maar u koste is moontlik nie laer nie.

In elk geval, nadat dit geïdentifiseer is waar die seinlyn op die sleutelbord is, 'n firmware -opgradering vir die Brainlink gemaak het en 'n Android -bestuurder vir die sleutelbord geskryf het, werk dit redelik goed. Aangesien die meeste werk ondersoek en sagteware was, is dit nou 'n maklike projek vir almal wat 'n Brainlink het. Jy benodig:

  • PalmOne draadlose sleutelbord
  • Breinskakel
  • 'N 3- of 8-pins tether vir die Brainlink (1,25 mm steek JST-styl connector); u kan die 8-pins tether gebruik wat by die Brainlink ingesluit is, maar u wil meer bestel vir ander projekte
  • Soldeer en yster
  • Elektriese band
  • Opsioneel: klittenband

In die verlede het ek die Brainlink gebruik om aan te sluit op 'n Mindflex EEG -headset en op 'n Roomba. Dit is regtig wonderlik vir seriële-tot-Bluetooth-oorbruggingstake. Ek maak net verskillende verbindings vir verskillende toestelle, en ek kan die breinkoppeling tussen hulle skuif.

Stap 1: Agtergrond

Agtergrond
Agtergrond
Agtergrond
Agtergrond
Agtergrond
Agtergrond

Slaan hierdie agtergrondbeskrywing oor.

Die PalmOne Wireless Keyboard stuur sy data deur 'n IR -LED op 'n steel, met behulp van IrDA. Alhoewel u 'n IR -detektor kan gebruik om die data te dekodeer, is daar 'n makliker manier. As u die sleutelbord halfvou, word drie koperstroke blootgestel. Die middelste is gemaal en die onderste een is 'n transmissielyn. Om dit na 'n ossilloskoop te plaas, verifieer dat die sein op die stuurlyn by ongeveer 9600 (meer presies: 9760) 8 N 2 ingekodeer is, met die hoë vlak rondom 1,56V, en met die vorming van irDA -pols: 1 is hoog en positiewe pulse neem 3/16 van die bietjie tyd.

Dit beteken ongelukkig dat ons dit nie net in 'n eenvoudige Bluetooth -module kan koppel nie (ten minste nie sonder om 'n aangepaste firmware daarvoor te maak nie), soos ek in my Mindflex -projek gedoen het. Gelukkig het die atxmega in die Brainlink 'n irDA -modus vir sy UART. Dit is eenvoudig om 'n bietjie kode by die Brainlink -firmware te voeg, sodat 'n "J1" -kode dit na die IrDA -modus kan oorskakel. Ek het verwag dat die 1.56V hoë vlak onvoldoende sou wees vir die atxmega, maar ek was aangenaam verras toe ek die koperstroke verbind met GND en UART Receive op die Brainlink en die resultate in Realterm bekyk: ek kry goeie ses -byte -rye van die sleutelbord.

Dit het geblyk dat die volgorde van ses byte slegs verpakking is vir 'n enkele byte -skanderingskode (met vrystelling van 'n hoë bitmerk). Die volgorde is spesifiek FF C0 xx yy zz C1, waar xx die skanderingskode is, yy xx xor'ed met FF en zz xx xor'ed met 67. (In werklikheid word die skanderingskode drie keer oorgedra: een keer duidelik en twee keer gekodeer. Ek vermoed dit is omdat irDA geneig is tot korrupsie, en dus kan u meerderheids-dekodering gebruik om die byte te kry.) Daarna was die enigste hardeware moeilikheid om 'n plek te vind om 'n aansluiting op die sleutelbord te soldeer. En dit was nie moeilik nie.

Aan die sagtewarekant, terwyl ek miskien die RN-42 Bluetooth-module in die Brainlink na HID-modus kon oorskakel, wat 'n baksteenpotensiaal gehad het, want as die module nie na SPP terugskakel nie, sou ek nie kon praat nie die Brainlink oor sy Bluetooth -protokol.

Die maklikste ding om te doen was om die open source BluezIME-sleutelbordprogram te gebruik waarmee verskillende Bluetooth-gamepads as Android-beheerders kan funksioneer en 'n modus kan byvoeg vir die Palm One Wireless Keyboard se ses-byte rye. Die gevolglike app is nou die gratis P1 -sleutelbord in Google Play (bronkode op github).

Stap 2: Opgradering van Brainklink -firmware

Opgradering van die Firmware vir Brainklink
Opgradering van die Firmware vir Brainklink
Opgradering van Brainklink -firmware
Opgradering van Brainklink -firmware

Om ondersteuning vir seriële data in IrDA-formaat op die Brainlink moontlik te maak, moet u my persoonlike firmware laai. Dit is maklik met 'n Android -toestel en 'n firmware -oplaaier wat ek geskryf het (terloops, u kan die oplaaier verander om 'n algemene doel te wees atmega/atxmega AVR109 flitsoplaaier).

  1. Koppel die Brainlink (PIN 1234) met 'n Android-toestel-u moet dit in elk geval doen om die sleutelbord aan te sluit
  2. Laai my Brainlink Firmware Uploader af van Google Play (bron vir oplaaier en firmware op github).
  3. Skakel Brainlink uit en verbind penne 8 en 2 (vreemd genoeg is pen 8 die pen wat die linkerkantste is en pen 1 aan die regterkant) op die 8-pen-poort.
  4. Skakel die Brainlink aan terwyl u die penne verbind hou. Sy LED moet blou word.
  5. Kies die aangepaste firmware wat u wil hê (as u 'n Roomba het, werk een van die firmware beter met nuwer Roombas en die ander met ouer), en druk op "Laai op".
  6. Dit behoort dit te wees, maar as u probleme ondervind met die verbinding, moet u miskien meer as een keer probeer.

U Brainlink is nou slimmer: dit ondersteun nie net die lees van data van sommige IrDA-toestelle nie (sodra u 'n ongemoduleerde sein opspoor), maar funksioneer ook as 'n standaard Roomba-na-Bluetooth-skakel en kan data opneem van 'n Mindflex EEG-headset. En die firmware is agteruit versoenbaar.

Stap 3: Koppel Brainlink aan die sleutelbord

Koppel Brainlink aan die sleutelbord
Koppel Brainlink aan die sleutelbord
Koppel Brainlink aan die sleutelbord
Koppel Brainlink aan die sleutelbord
Koppel Brainlink aan die sleutelbord
Koppel Brainlink aan die sleutelbord

U benodig 'n tether-aansluiting wat pas by die drie penne links op die 8-pen-poort van die Brainlink. Dit is verbindings in JST-styl met 'n spasiëring van 1.25 mm. U kan 'n drie-pins aansluiting (my keuse) of 'n 8-pen aansluiting gebruik. U kan die 8-pins aansluiting wat by die Brainlink is, gebruik, maar dan wil u meer daarvan bestel (ek het 3- en 8-pins verbindings goedkoop op eBay gevind).

Maak die batteryvak van die sleutelbord oop en verwyder die batterye. Naby die minkant van die batterye vind u twee paar drade wat met mekaar verbind is via 'n JST-aansluiting. As u kleure soos myne is, word die swart drade gemaal (u kan net die weerstand tussen die en die minus -aansluiting op die battery nagaan) en die ander kleure (bruin en grys) is die sein.

Op u 8-pen-poort van die Brainlink word die verbinding wat die linkerkantste is, vasgemaak (die pen van die linkerkant van die 8-pen-poort) en die derde pen van links is die seriële ontvangs. Soldeer die gronddraad op u Brainlink-aansluiting aan die grondlyn op die sleutelbord en die ontvangdraad op die Brainlink na die seinlyn. U vind moontlik dat daar geen ruimte in die sleutelbordarea is vir die soldeerkonneksie en die JST-aansluiting nie dit was binne die sleutelbord. As dit die geval is, verwyder u net die JST-aansluiting en soldeer albei trio's van relevante drade (twee sleutelbord gronddrade en een Brainlink gronddraad; twee sleutelbord seindrade en een Brainlink ontvang draad).

Dit is aanloklik om die IR LED-kant van die JST-aansluiting te ontkoppel om die batterylewe te bespaar. Moenie dit doen nie. Die sein val uitmekaar as u dit doen. Ek het met my ossilloskoop nagegaan.

Maak 'n gaatjie op die lip van die batteryklep sodat die drade van die Brainlink-tou deur kan gaan, gebruik elektriese band om die twee verbindings geïsoleerd te hou en bind 'n klein knoop met spanningverligting.

Laastens, as alles klaar is, bedek u irrelevante kontakte op die Brainlink -tou of bedek die irrelevante drade.

U kan ook 'n klittenband op die Brainlink en die sleutelbord plak om die Brainlink op sy plek te hou.

Stap 4: Gebruik met Android -toestel

Gebruik met Android -toestel
Gebruik met Android -toestel
  1. Koppel die Brainlink met u Android -toestel (PIN 1234).
  2. Installeer my P1 -sleutelbordprogram.
  3. Begin P1 -sleutelbordinstellings ('n ikoon daarvoor moet in u lanseerder verskyn).
  4. Aktiveer P1 -sleutelbord in Android -invoermetode -instellings. Op nuwer Android -weergawes kan u die P1 -sleutelbord aktiveer deur 'Kies IME' in die P1 -sleutelbordinstellings te kies en op 'Stel invoermetodes' in te tik. (U kry 'n waarskuwing dat die sleutelbord al u wagwoorde sien, ens. Dit is 'n standaard Android -waarskuwing: 'n sleutelbordbestuurder sien natuurlik alles wat u tik. As u bang is, kyk dan na die bronkode van die sleutelbord en bou jou eie.)
  5. Tik op 'Kies toestel' en kies u Brainlink (myne verskyn as RN42-A308).
  6. Tik op "Kies IME" in die P1 -sleutelbordinstellings en kies P1 -sleutelbord.
  7. Dit kan 'n rukkie neem om aan te sluit, maar u moet 'n boodskap ontvang as alles goed is

En jy is klaar! Skenk gerus aan die skrywer van BluezIME waarop die P1 -sleutelbord gebaseer is.

Op Android 4.0+ sal daar 'n kennisgewing in die teksvelde wees wat toelaat dat die invoer metodes verander word, sodat u maklik kan terugskakel na 'n ander invoer metode.

Die bestuurder wat ek vir die sleutelbord geskryf het, is baie eenvoudig. Dit ondersteun die gewone sleutels, maar ondersteun nie baie van die spesiale sleutels met spesiale aksent of ander spesiale dinge nie. die Windows-sleutel en FN-2 as Menu en FN-3 as Search. Ctrl-a, c, v, x werk ook soos verwag.

Dit werk goed genoeg dat ek die volledige eerste konsep van hierdie Instructable op my Galaxy S2 -telefoon met die sleutelbord geskryf het.

Stap 5: Ander sleutelborde

Ander sleutelborde
Ander sleutelborde
Ander sleutelborde
Ander sleutelborde

As u met ander infrarooi sleutelborde wil eksperimenteer, moet u uitvind watter seine hulle stuur en met watter baud -tempo. Met die Brainlink opgedateer na die IrDA-versoenbare sagteware, kan u met RealTerm skakel met die Brainlink. As u die herhalende "BL" sein sien, wat die handtekening van die breinkoppel is, tik:

*J1Z

Die asterisk vra aandag, J1 skakel oor na 9600 baud IrDA (moet die 1 vinnig tik na die J, of u kry 'n fout). Die Z is vir seriële-tot-Bluetooth-brugmodus.

Skakel RealTerm om hex -kodes te vertoon, en druk die sleutels op die sleutelbord om te sien of u dit kan verstaan.

Skakel die Brainlink aan om die seriële brugmodus te verlaat.

Ek vermoed dat 9600 baud die regte baud -tempo is. As u dit nie regkry nie, kan u die baudsnelheid van die Brainlink verander. Ek sou begin deur 57600 baud te probeer:

*J1u57Z

en dan 1200 baud:

*J1u12Z

Sodra u agtergekom het hoe die sleutelbord sy data stuur, verander net die kode van my bestuurder. Waarskynlik is dit net genoeg om die getalle in PalmOneWirelessKeyboard.java te verander.

Aanbeveel: