Talaan ng mga Nilalaman:

Gumamit ng Palm Infrared Keyboard Sa Mga Android Device: 5 Hakbang
Gumamit ng Palm Infrared Keyboard Sa Mga Android Device: 5 Hakbang

Video: Gumamit ng Palm Infrared Keyboard Sa Mga Android Device: 5 Hakbang

Video: Gumamit ng Palm Infrared Keyboard Sa Mga Android Device: 5 Hakbang
Video: PAANO GAWING REMOTE CONTROL ANG CELLPHONE MO. PWEDI SA LAHAT NG APPLIANCES SA BAHAY. 2024, Disyembre
Anonim
Gumamit ng Palm Infrared Keyboard Sa Mga Android Device
Gumamit ng Palm Infrared Keyboard Sa Mga Android Device
Gumamit ng Palm Infrared Keyboard Sa Mga Android Device
Gumamit ng Palm Infrared Keyboard Sa Mga Android Device
Gumamit ng Palm Infrared Keyboard Sa Mga Android Device
Gumamit ng Palm Infrared Keyboard Sa Mga Android Device

Nagkaroon ako ng isang PalmOne Wireless Keyboard na nakaupo at nais kong magkaroon ng isang Bluetooth keyboard para sa aking telepono. Ang nag-iisang problema ay ang keyboard ng PalmOne na batay sa infrared.

Nagkaroon din ako ng isang aparatong Brainlink. Ito ay isang medyo nakatutuwa maliit na aparato para sa pamamagitan sa pagitan ng iba't ibang mga aparato. Mayroon itong isang atxmega16 processor, isang rechargeable na baterya, ilang mga sensor, isang Bluetooth radio, isang grupo ng mga port, isang kaso at ilang mga nai-upgrade na firmware para sa pagkontrol sa lahat ng ito. Ang Brainlink ay hindi na ipinagpatuloy ngunit mayroon ito ng SurplusShed sa halagang $ 39, at mayroon silang pana-panahong 30-50% na bawas sa lahat. Nakuha ko ito sa halagang $ 20. Maaari mo ring gamitin ang iyong sariling atxmega plus Bluetooth board (eskematiko dito), ngunit maaaring hindi mas mababa ang iyong mga gastos.

Gayunpaman, pagkatapos makilala kung nasaan ang linya ng signal sa keyboard, gumagawa ng isang pag-upgrade sa firmware para sa Brainlink at pagsulat ng isang Android driver para sa keyboard, gumagana ito nang maayos. Dahil ang karamihan sa trabaho ay nag-iimbestiga at software, ngayon na tapos na ito ay medyo isang madaling proyekto para sa sinumang may isang Brainlink. Kailangan mo:

  • PalmOne Wireless Keyboard
  • Utak
  • Isang 3- o 8-pin tether para sa Brainlink (1.25mm pitch JST-style konektor); maaari mong gamitin ang 8-pin tether na kasama sa Brainlink ngunit gugustuhin mong mag-order ng higit pa para sa iba pang mga proyekto
  • Panghinang at bakal
  • Electrical tape
  • Opsyonal: Hook at loop fastener

Sa nakaraan ginamit ko ang Brainlink upang kumonekta sa isang Mindflex EEG headset at sa isang Roomba. Talagang mahusay ito para sa mga gawain sa serial-to-Bluetooth bridging. Gumagawa lang ako ng iba't ibang mga konektor para sa iba't ibang mga aparato, at maaaring ilipat ang Brainlink sa pagitan nila.

Hakbang 1: Background

Background
Background
Background
Background
Background
Background

Huwag mag-atubiling laktawan ang paglalarawan sa background.

Ang PalmOne Wireless Keyboard ay nagpapadala ng data nito sa pamamagitan ng isang IR LED sa isang tangkay, gamit ang IrDA. Habang ang isang ay maaaring gumamit ng isang IR detector upang i-decode ang data, mayroong isang mas madaling paraan. Kung kalahating tiklop mo ang keyboard, ang tatlong mga strip ng tanso ay nakalantad. Ang gitna ay may lupa at ang ilalim ay isang linya ng paghahatid. Ang paglalagay sa kanila sa isang oscilloscope ay nagpapatunay na ang signal sa linya ng paghahatid ay naka-encode sa humigit-kumulang na 9600 (mas tiyak: 9760) 8 N 2, na may mataas na antas sa paligid ng 1.56V, at sa may hugis na irDA pulse: 1 ay mataas, at positibong pulso kumuha ng 3/16 ng kaunting oras.

Sa kasamaang palad, ang lahat ng ito ay nangangahulugang hindi lamang natin ito mai-plug sa isang simpleng module ng Bluetooth (hindi bababa sa hindi nang hindi ginagawa ang pasadyang firmware para dito), tulad ng ginawa ko sa aking proyekto sa Mindflex. Sa kasamaang palad, ang atxmega sa Brainlink ay mayroong isang irDA mode para sa UART nito. Ito ay simple upang magdagdag ng isang piraso ng code sa Brainlink firmware na nagpapahintulot sa isang "J1" code upang ilipat ito sa IrDA mode. Inaasahan kong ang 1.56V mataas na antas ay hindi sapat para sa atxmega, ngunit nagulat ako nang ikonekta ko ang mga piraso ng tanso sa GND at UART na Makatanggap sa Brainlink at tiningnan ang mga resulta sa Realterm: Nakukuha ko ang anim na byte na pagkakasunud-sunod mula sa keyboard.

Ito ay naka-out na ang anim na byte na pagkakasunud-sunod ay packaging lamang para sa isang solong byte scan code (na may bit bit marking release). Partikular, ang pagkakasunud-sunod ay FF C0 xx yy zz C1, kung saan ang xx ay ang scan code, yy ay xx xor'ed sa FF, at ang zz ay xx xor'ed na may 67. (Bilang epekto, ang scan code ay naipadala nang tatlong beses: sa sandaling malinaw at dalawang beses na naka-encode. Hulaan ko ito ay dahil ang irDA ay madaling kapitan ng katiwalian, at sa gayon maaari mong gamitin ang pag-decode ng karamihan upang makuha ang byte.) Pagkatapos nito, ang tanging kahirapan sa hardware ay ang paghahanap ng isang lugar upang maghinang ng isang konektor sa keyboard. At hindi iyon mahirap.

Sa panig ng software, habang marahil ay maaaring mailipat ko ang RN-42 Bluetooth module sa Brainlink sa HID mode, na may potensyal na bricking, dahil kung ang module ay hindi bumalik sa SPP, hindi ako makakausap ang Brainlink sa Bluetooth protocol nito.

Ang mas madaling gawin ay gawin lamang ang bukas na mapagkukunang BluezIME keyboard app na nagbibigay-daan sa iba't ibang mga gamepad ng Bluetooth na gumana bilang mga Android controler at magdagdag ng isang mode para sa anim na byte na pagkakasunud-sunod ng Palm One Wireless Keyboard. Ang nagresultang app ay ang libreng P1 Keyboard sa Google Play ngayon (source code sa github).

Hakbang 2: Pag-upgrade ng Brainklink Firmware

Pag-a-upgrade sa Brainklink Firmware
Pag-a-upgrade sa Brainklink Firmware
Pag-a-upgrade sa Brainklink Firmware
Pag-a-upgrade sa Brainklink Firmware

Upang paganahin ang suporta ng serial data na format ng IrDA sa Brainlink, kailangan mong i-load ang aking pasadyang firmware. Madali sa isang Android device at isang firmware uploader na isinulat ko (sa pamamagitan ng paraan, maaari mong baguhin ang uploader upang maging isang pangkalahatang layunin na atmega / atxmega AVR109 flash uploader).

  1. Ipares ang Brainlink (PIN 1234) sa isang Android device - kakailanganin mong gawin iyon upang ikonekta ang keyboard
  2. I-download ang aking Brainlink Firmware Uploader mula sa Google Play (pinagmulan para sa uploader at firmware sa github).
  3. Patayin ang Brainlink at ikonekta ang mga pin na 8 at 2 (kakaiba, ang pin 8 ay ang kaliwang pin, at ang pin 1 ay nasa kanan) sa 8-pin port.
  4. Hawak ang mga pin na konektado, i-on ang Brainlink. Ang LED nito ay dapat na maging asul.
  5. Piliin ang nais mong pasadyang firmware (kung mayroon kang isang Roomba, ang isa sa mga firmwares ay gumagana nang mas mahusay sa mas bagong Roombas at ang isa pa ay may mga mas luma), at pindutin ang "I-upload".
  6. Iyon ay dapat na, kahit na kung mayroon kang mga paghihirap sa koneksyon maaaring kailanganin mong subukan ang higit sa isang beses.

Ang iyong Brainlink ay mas matalino na ngayon: hindi lamang nito sinusuportahan ang pagbabasa ng data mula sa ilang mga aparatong IrDA (sa sandaling mahahanap mo ang isang hindi nabago na signal), ngunit gumaganap din bilang isang karaniwang link ng Roomba-to-Bluetooth, at maaaring makuha ang data mula sa isang Mindflex EEG headset. At ang firmware ay pabalik na katugma.

Hakbang 3: Pagkonekta sa Brainlink sa Keyboard

Pagkonekta sa Brainlink sa Keyboard
Pagkonekta sa Brainlink sa Keyboard
Pagkonekta sa Brainlink sa Keyboard
Pagkonekta sa Brainlink sa Keyboard
Pagkonekta sa Brainlink sa Keyboard
Pagkonekta sa Brainlink sa Keyboard

Kakailanganin mo ang isang konektor ng tether na umaangkop sa tatlong kaliwang pin sa port ng Brainlink na 8-pin. Ito ang mga konektor na estilo ng JST na may 1.25mm pin spacing. Maaari kang gumamit ng isang konektor na tatlong-pin (aking pinili) o isang konektor na 8-pin. Maaari mong gamitin ang konektor na 8-pin na kasama ng Brainlink, ngunit pagkatapos ay gugustuhin mong mag-order ng higit sa kanila (Natagpuan ko ang 3 at 8-pin na konektor na mura sa ebay).

Buksan ang baterya ng keyboard at alisin ang mga baterya. Malapit sa minus na bahagi ng mga baterya, mahahanap mo ang dalawang pares ng mga wire na konektado nang magkasama sa pamamagitan ng isang konektor na estilo ng JST. Kung ang iyong mga kulay ay tulad ng minahan, ang mga itim na wires ay ground (maaari mo lamang suriin ang paglaban sa pagitan nito at ng minus terminal sa baterya) at ang iba pang mga kulay (kayumanggi at kulay-abo) ang signal.

Sa iyong Brainlink 8-pin port, ang kaliwang koneksyon ay ground (kaliwa pin ng 8-pin port) at ang pangatlong pin mula sa kaliwa ay serial na natanggap. Paghinang ng ground wire sa iyong konektor sa Brainlink sa ground line sa keyboard, at ang pagtanggap ng wire sa Brainlink sa linya ng signal. Maaari mong malaman na walang puwang sa lugar ng keyboard para sa koneksyon ng solder at konektor ng JST-style nasa loob ng keyboard iyon. Kung gayon, alisin lamang ang konektor na estilo ng JST, at solder ang parehong mga trios ng mga nauugnay na wires (dalawang keyboard ground wires at isang Brainlink ground wire; dalawang keyboard signal wires at isang Brainlink ang tumatanggap ng wire).

Nakakaakit na idiskonekta ang panig ng IR LED ng konektor na estilo ng JST upang mai-save ang buhay ng baterya. Wag mo na gawin Ang signal ay nabagsak kung gagawin mo iyon. Nagcheck ako gamit ang aking oscilloscope.

Gumawa ng isang butas sa labi ng takip ng baterya para dumaan ang mga wires ng Brainlink tether, gumamit ng electrical tape upang mapanatili ang dalawang koneksyon na ihiwalay, at itali ang isang maliit na buhol ng pag-igting ng pag-igting.

Panghuli, kapag tapos na ang lahat, alinman sa takpan ang mga hindi kaugnay na contact sa Brainlink tether o i-cut lang ang mga hindi kaugnay na mga wire.

Maaari mo ring pag-pandikit ang ilang Velcro sa Brainlink at ang keyboard para sa pagpapanatili ng Brainlink sa lugar.

Hakbang 4: Paggamit Sa Android Device

Paggamit Gamit ang Android Device
Paggamit Gamit ang Android Device
  1. Ipares ang Brainlink sa iyong Android device (PIN 1234).
  2. I-install ang aking P1 Keyboard app.
  3. Ilunsad ang Mga Setting ng P1 Keyboard (isang icon para dito dapat nasa iyong launcher).
  4. Paganahin ang P1 Keyboard sa mga setting ng pamamaraan ng pag-input ng Android. Sa mga mas bagong bersyon ng Android, maaari mong paganahin ang P1 Keyboard sa pamamagitan ng pagpili ng "Piliin ang IME" sa P1 Mga Setting ng Keyboard, at pag-tap sa "I-set up ang mga pamamaraan ng pag-input." (Makakakuha ka ng isang babala na nakikita ng keyboard ang lahat ng iyong mga password, atbp. Iyon ay isang karaniwang babala sa Android: syempre, nakikita ng isang driver ng keyboard ang lahat ng nai-type mo. Kung natatakot ka, tingnan ang source code ng keyboard at bumuo iyong sarili.)
  5. Mag-tap sa "Piliin ang aparato" at piliin ang iyong Brainlink (ang minahan ay ipinapakita bilang RN42-A308).
  6. Mag-tap sa "Piliin ang IME" sa Mga setting ng P1 Keyboard at piliin ang P1 Keyboard.
  7. Maaaring tumagal ng kaunting oras upang kumonekta, ngunit dapat kang makakuha ng isang mensahe tungkol sa pagkonekta kung maayos ang lahat

At tapos ka na! Huwag mag-atubiling magbigay sa may-akda ng BluezIME kung saan nakabatay ang P1 Keyboard.

Sa Android 4.0+, kapag sa mga patlang ng teksto ay magkakaroon ng isang abiso na nagbibigay-daan sa paglipat ng mga pamamaraan ng pag-input, upang madali kang makabalik sa isa pang paraan ng pag-input.

Ang driver na isinulat ko para sa keyboard ay napaka-simple. Sinusuportahan nito ang mga ordinaryong key, ngunit hindi sinusuportahan ang marami sa mga espesyal na accent key o iba pang mga espesyal na bagay. Nagdagdag ako ng suporta para sa paggamit ng dalawang mga pindutan na may isang bahay (FN-1 at ang susi sa kaliwa ng puwang) bilang Home, gamit ang Windows key at FN-2 bilang Menu at FN-3 bilang Search. Gayundin, ang ctrl-a, c, v, x ay gumagana tulad ng inaasahan.

Ito ay gumagana nang maayos na isinulat ko ang kumpletong unang draft ng Instructable na ito sa aking telepono sa Galaxy S2 gamit ang keyboard.

Hakbang 5: Iba Pang Mga Keyboard

Iba Pang Mga Keyboard
Iba Pang Mga Keyboard
Iba Pang Mga Keyboard
Iba Pang Mga Keyboard

Kung nais mong mag-eksperimento sa iba pang mga infrared na keyboard, malalaman mo kung anong mga senyas ang ipinadala nila at kung anong baud rate. Sa pamamagitan ng pag-update ng Brainlink sa software na katugma ng IrDA, maaari kang kumonekta sa RealTerm sa Brainlink. Kapag nakita mo ang paulit-ulit na signal na "BL" na lagda ng Brainlink, i-type ang:

* J1Z

Humihingi ng pansin ang asterisk, lumilipat ang J1 sa 9600 baud IrDA (dapat lamang na i-type ang 1 nang mabilis pagkatapos ng J o nakakuha ka ng isang error). Ang Z ay para sa serial-to-Bluetooth bridge mode.

Lumipat ng RealTerm upang maipakita ang mga hex code, at pindutin ang mga pindutan sa keyboard at tingnan kung maaari mong maintindihan ito.

Upang lumabas sa serial mode ng tulay, i-powerlight ang Brainlink.

Hinuhulaan ko na ang 9600 baud ay ang tamang rate ng baud. Nabigo iyon, maaari mong baguhin ang rate ng baudlink ng Brainlink. Magsisimula ako sa pamamagitan ng pagsubok ng 57600 baud:

* J1u57Z

at pagkatapos ay 1200 baud:

* J1u12Z

Kapag naisip mo kung paano ipinapadala ng keyboard ang data nito, baguhin lamang ang code ng aking driver. Marahil ay ang pagpapalit lamang ng mga numero sa PalmOneWirelessKeyboard.java ay sapat na.

Inirerekumendang: