Cuprins:

Utilizați tastatura cu infraroșu Palm cu dispozitive Android: 5 pași
Utilizați tastatura cu infraroșu Palm cu dispozitive Android: 5 pași

Video: Utilizați tastatura cu infraroșu Palm cu dispozitive Android: 5 pași

Video: Utilizați tastatura cu infraroșu Palm cu dispozitive Android: 5 pași
Video: 5 TRUCURI pe care nu le stiai la telefoanele cu ANDROID ! 2021 2024, Iulie
Anonim
Utilizați tastatura cu infraroșu Palm cu dispozitive Android
Utilizați tastatura cu infraroșu Palm cu dispozitive Android
Utilizați tastatura cu infraroșu Palm cu dispozitive Android
Utilizați tastatura cu infraroșu Palm cu dispozitive Android
Utilizați tastatura cu infraroșu Palm cu dispozitive Android
Utilizați tastatura cu infraroșu Palm cu dispozitive Android

Aveam o tastatură fără fir PalmOne așezată în jur și am vrut să am o tastatură Bluetooth pentru telefon. Singura problemă a fost că tastatura PalmOne era bazată pe infraroșu.

Am avut și un dispozitiv Brainlink. Acesta este un dispozitiv destul de drăguț pentru medierea între diferite dispozitive. Are un procesor atxmega16, o baterie reîncărcabilă, niște senzori, un radio Bluetooth, o grămadă de porturi, o carcasă și un firmware actualizabil pentru controlul tuturor. Brainlink este întrerupt, dar SurplusShed îl are pentru 39 de dolari și au o reducere periodică de 30-50% din vânzări pentru orice. L-am luat cu 20 de dolari. Puteți utiliza, de asemenea, propria placă atxmega plus Bluetooth (schemă aici), dar costurile dvs. nu ar putea fi mai mici.

Oricum, după identificarea unde se află linia de semnal de pe tastatură, efectuarea unei actualizări de firmware pentru Brainlink și scrierea unui driver Android pentru tastatură, funcționează destul de bine. Întrucât cea mai mare parte a muncii a fost investigarea și software-ul, acum, după ce a fost făcut, este un proiect destul de ușor pentru oricine are un Brainlink. Ai nevoie:

  • Tastatură fără fir PalmOne
  • Brainlink
  • O ancoră cu 3 sau 8 pini pentru Brainlink (conector în stil JST de 1,25 mm); puteți utiliza tether-ul cu 8 pini inclus în Brainlink, dar veți dori să comandați mai multe pentru alte proiecte
  • Lipire și fier
  • Bandă electrică
  • Opțional: dispozitiv de fixare cu cârlig și buclă

În trecut, am folosit Brainlink pentru a mă conecta la o cască Mindflex EEG și la un Roomba. Este cu adevărat grozav pentru sarcini de conectare serial-la-Bluetooth. Fac doar conectori diferiți pentru diferite dispozitive și pot muta Brainlink între ele.

Pasul 1: fundal

fundal
fundal
fundal
fundal
fundal
fundal

Nu ezitați să ignorați această descriere de fundal.

Tastatura fără fir PalmOne își trimite datele printr-un LED IR pe o tijă, utilizând IrDA. În timp ce s-ar putea folosi un detector IR pentru a decoda datele, există o modalitate mai ușoară. Dacă tăiați jumătatea tastaturii, sunt expuse trei benzi de cupru. Cel din mijloc este împământat, iar cel de jos este o linie de transmisie. Punerea lor pe un osciloscop verifică faptul că semnalul de pe linia de transmisie este codat la aproximativ 9600 (mai precis: 9760) 8 N 2, cu un nivel ridicat în jur de 1,56 V și cu formarea impulsului irDA: 1 este mare și impulsuri pozitive ia 3/16 din timpul de biți.

Din păcate, toate acestea înseamnă că nu putem doar conecta acest lucru la un simplu modul Bluetooth (cel puțin nu fără a crea firmware personalizat pentru acesta), așa cum am făcut în proiectul meu Mindflex. Din fericire, atxmega din Brainlink are un mod irDA pentru UART. Este simplu să adăugați un pic de cod la firmware-ul Brainlink, permițând unui cod „J1” să îl comute în modul IrDA. M-am așteptat ca nivelul ridicat de 1,56V să fie insuficient pentru atxmega, dar am fost plăcut surprins când am conectat benzile de cupru la GND și UART Receive pe Brainlink și am văzut rezultatele în Realterm: obțineam secvențe frumoase de șase octeți de la tastatură.

S-a dovedit că secvența de șase octeți este ambalată doar pentru un cod de scanare cu un singur octet (cu eliberare de marcare a bitului mare). Mai exact, secvența este FF C0 xx yy zz C1, unde xx este codul de scanare, yy este xx xor'ed cu FF și zz este xx xor'ed cu 67. (De fapt, codul de scanare este transmis de trei ori: odată clar și codificat de două ori. Cred că acest lucru se datorează faptului că irDA este predispus la corupție și, prin urmare, puteți utiliza decodarea majorității pentru a obține octetul.) După aceea, singura dificultate hardware a fost găsirea unui loc unde să lipiți un conector pe tastatură.. Și asta nu a fost greu.

În ceea ce privește software-ul, în timp ce poate aș putea schimba modulul Bluetooth RN-42 în modul Brainlink la modul HID, care avea potențial de bricking, deoarece dacă modulul nu revine la SPP, nu aș putea vorbi cu Brainlink prin protocolul său Bluetooth.

Cel mai ușor de făcut a fost doar să luați aplicația de tastatură open source BluezIME care permite diverselor gamepad-uri Bluetooth să funcționeze ca controlere Android și să adauge un mod pentru secvențele de șase octeți ale tastaturii fără fir Palm One. Aplicația rezultată este tastatura gratuită P1 din Google Play acum (cod sursă pe github).

Pasul 2: Actualizarea firmware-ului Brainklink

Actualizarea firmware-ului Brainklink
Actualizarea firmware-ului Brainklink
Actualizarea firmware-ului Brainklink
Actualizarea firmware-ului Brainklink

Pentru a activa suportul de date seriale în format IrDA pe Brainlink, trebuie să încărcați firmware-ul meu personalizat. Este ușor cu un dispozitiv Android și un program de încărcare de firmware pe care le-am scris (apropo, puteți modifica programul de încărcare pentru a fi un dispozitiv de încărcare flash ATMega / atxmega AVR109 de uz general).

  1. Asociați Brainlink (PIN 1234) cu un dispozitiv Android - oricum va trebui să faceți acest lucru pentru a conecta tastatura
  2. Descărcați Brainlink Firmware Uploader de pe Google Play (sursă pentru programul de încărcare și firmware pe github).
  3. Opriți Brainlink și conectați pinii 8 și 2 (în mod ciudat, pinul 8 este pinul din stânga, iar pinul 1 este în dreapta) pe portul cu 8 pini.
  4. Ținând pinii conectați, porniți Brainlink. LED-ul său ar trebui să devină albastru.
  5. Selectați firmware-ul personalizat pe care îl doriți (dacă aveți un Roomba, unul dintre firmware-uri funcționează mai bine cu Roombas mai noi și celălalt cu cele mai vechi) și apăsați „Încărcare”.
  6. Asta ar trebui să fie, deși, dacă aveți dificultăți de conectare, poate fi necesar să încercați de mai multe ori.

Brainlink-ul dvs. este acum mai inteligent: nu numai că acceptă citirea datelor de pe unele dispozitive IrDA (odată ce ați localizat un semnal nemodulat), ci funcționează și ca o legătură standard Roomba-la-Bluetooth și poate capta date de la o cască EEG Mindflex. Iar firmware-ul este compatibil cu versiunile anterioare.

Pasul 3: Conectarea Brainlink la tastatură

Conectarea Brainlink la tastatură
Conectarea Brainlink la tastatură
Conectarea Brainlink la tastatură
Conectarea Brainlink la tastatură
Conectarea Brainlink la tastatură
Conectarea Brainlink la tastatură

Veți avea nevoie de un conector tether care să se potrivească celor trei pini din stânga de pe portul cu 8 pini al Brainlink. Acestea sunt conectori în stil JST cu distanțarea pinilor de 1,25 mm. Puteți utiliza un conector cu trei pini (alegerea mea) sau un conector cu 8 pini. Puteți utiliza conectorul cu 8 pini care vine împreună cu Brainlink, dar atunci veți dori să comandați mai mulți dintre ei (am găsit conectori cu 3 și 8 pini ieftini pe eBay).

Deschideți compartimentul bateriei tastaturii și scoateți bateriile. Lângă partea minus a bateriilor, veți găsi două perechi de fire conectate împreună printr-un conector în stil JST. Dacă culorile dvs. sunt ca ale mele, firele negre sunt măcinate (puteți verifica doar rezistența dintre acesta și terminalul minus de pe baterie), iar celelalte culori (maro și gri) sunt semnalul.

Pe portul dvs. Brainlink cu 8 pini, conexiunea din stânga este împământată (pinul din stânga al portului cu 8 pini), iar al treilea pin din stânga este recepția în serie. Lipiți firul de împământare de pe conectorul Brainlink pe linia de masă de pe tastatură și firul de recepție de pe Brainlink pe linia de semnal. Este posibil să găsiți că nu există spațiu în zona tastaturii pentru conexiunea de lipire și conectorul în stil JST asta se afla în interiorul tastaturii. Dacă da, scoateți conectorul în stil JST și lipiți ambele triouri de fire relevante (două fire de masă pentru tastatură și un fir de masă Brainlink; două fire de semnal de tastatură și un fir de recepție Brainlink).

Este tentant să deconectați partea LED IR a conectorului în stil JST pentru a economisi durata de viață a bateriei. Nu o face. Semnalul se destramă dacă faceți asta. Am verificat cu osciloscopul meu.

Faceți o gaură pe buza capacului bateriei pentru ca firele cablului de legătură Brainlink să treacă, folosiți bandă electrică pentru a menține cele două conexiuni izolate și legați un mic nod de reducere a tensiunii.

În cele din urmă, când totul este gata, fie acoperiți contactele irelevante de pe legătura Brainlink, fie pur și simplu tăiați firele irelevante.

De asemenea, poate doriți să lipiți unele Velcro pe Brainlink și tastatură pentru a menține Brainlink în poziție.

Pasul 4: Utilizarea cu dispozitivul Android

Utilizarea cu dispozitivul Android
Utilizarea cu dispozitivul Android
  1. Asociați Brainlink cu dispozitivul dvs. Android (PIN 1234).
  2. Instalați aplicația P1 Keyboard.
  3. Lansați setările tastaturii P1 (o pictogramă pentru aceasta ar trebui să fie în lansator).
  4. Activați tastatura P1 în setările metodei de introducere Android. Pe versiunile Android mai noi, puteți activa tastatura P1 alegând „Selectați IME” în Setările tastaturii P1 și atingând „Configurați metodele de introducere a textului”. (Veți primi un avertisment că tastatura vă vede toate parolele, etc. Aceasta este o avertizare standard pentru Android: desigur, un driver de tastatură vede tot ce tastați. Dacă vă este teamă, uitați-vă la codul sursă al tastaturii și construiți al tau.)
  5. Atingeți „Selectați dispozitivul” și alegeți Brainlink-ul dvs. (al meu apare ca RN42-A308).
  6. Apăsați pe „Selectați IME” în Setările tastaturii P1 și selectați tastatura P1.
  7. Poate dura puțin timp pentru a vă conecta, dar ar trebui să primiți un mesaj despre conectarea dvs. dacă totul merge bine

Și gata! Simțiți-vă liber să donați autorului BluezIME pe care se bazează tastatura P1.

Pe Android 4.0+, când în câmpurile de text va exista o notificare care permite comutarea metodelor de introducere, astfel încât să puteți reveni cu ușurință la o altă metodă de introducere.

Driverul pe care l-am scris pentru tastatură este foarte simplu. Suportă tastele obișnuite, dar nu acceptă multe dintre tastele cu accent special sau alte lucruri speciale. Am adăugat suport pentru utilizarea celor două butoane cu o casă (FN-1 și cheia din stânga spațiului) ca Acasă, folosind tasta Windows și FN-2 ca Meniu și FN-3 ca Căutare. De asemenea, ctrl-a, c, v, x funcționează conform așteptărilor.

Funcționează suficient de bine încât am scris prima schiță completă a acestui Instructable pe telefonul meu Galaxy S2 cu tastatura.

Pasul 5: Alte tastaturi

Alte tastaturi
Alte tastaturi
Alte tastaturi
Alte tastaturi

Dacă doriți să experimentați alte tastaturi cu infraroșu, va trebui să vă dați seama ce semnale trimit și cu ce viteză de transmisie. Cu Brainlink actualizat la software-ul compatibil IrDA, vă puteți conecta cu RealTerm la Brainlink. Când vedeți semnalul „BL” care se repetă, care este semnătura Brainlinkului, tastați:

* J1Z

Asteriscul cere atenție, J1 trece la 9600 baud IrDA (trebuie doar să tastați 1 rapid după J sau veți primi o eroare). Z este pentru modul de punte serial-la-Bluetooth.

Comutați la RealTerm pentru a afișa coduri hexagonale și apăsați tastele de pe tastatură și vedeți dacă puteți da sens.

Pentru a ieși din modul bridge serial, activați Brainlink.

Presupun că 9600 baud este rata de baud potrivită. În caz contrar, puteți modifica rata de transmisie a Brainlink. Aș începe prin a încerca 57600 baud:

* J1u57Z

și apoi 1200 baud:

* J1u12Z

După ce ați aflat cum își trimite datele tastatura, trebuie doar să modificați codul driverului meu. Probabil că este suficient doar să schimbi numerele din PalmOneWirelessKeyboard.java.

Recomandat: