Sommario:

Utilizzare la tastiera a infrarossi Palm con dispositivi Android: 5 passaggi
Utilizzare la tastiera a infrarossi Palm con dispositivi Android: 5 passaggi

Video: Utilizzare la tastiera a infrarossi Palm con dispositivi Android: 5 passaggi

Video: Utilizzare la tastiera a infrarossi Palm con dispositivi Android: 5 passaggi
Video: Trasferire file da telefono a computer con questa nuova funzione! 2024, Dicembre
Anonim
Usa la tastiera a infrarossi Palm con dispositivi Android
Usa la tastiera a infrarossi Palm con dispositivi Android
Usa la tastiera a infrarossi Palm con dispositivi Android
Usa la tastiera a infrarossi Palm con dispositivi Android
Usa la tastiera a infrarossi Palm con dispositivi Android
Usa la tastiera a infrarossi Palm con dispositivi Android

Avevo una tastiera wireless PalmOne in giro e volevo avere una tastiera Bluetooth per il mio telefono. L'unico problema era che la tastiera PalmOne era basata su infrarossi.

Avevo anche un dispositivo Brainlink. Questo è un piccolo dispositivo piuttosto carino per la mediazione tra dispositivi diversi. Ha un processore atxmega16, una batteria ricaricabile, alcuni sensori, una radio Bluetooth, un sacco di porte, una custodia e un firmware aggiornabile per controllare tutto. Il Brainlink è fuori produzione ma SurplusShed lo ha per $ 39 e hanno periodici sconti del 30-50% sulle vendite su tutto. L'ho preso per $ 20. Potresti anche usare la tua scheda atxmega plus Bluetooth (schemi qui), ma i tuoi costi potrebbero non essere inferiori.

Ad ogni modo, dopo aver identificato dove si trova la linea del segnale sulla tastiera, aver effettuato un aggiornamento del firmware per Brainlink e aver scritto un driver Android per la tastiera, funziona abbastanza bene. Dal momento che la maggior parte del lavoro riguardava le indagini e il software, ora che è stato fatto è un progetto abbastanza facile per chiunque abbia un Brainlink. Hai bisogno:

  • Tastiera wireless PalmOne
  • Brainlink
  • Un cavo a 3 o 8 pin per Brainlink (connettore tipo JST con passo 1,25 mm); puoi usare il cavo a 8 pin incluso con Brainlink ma vorrai ordinarne di più per altri progetti
  • Saldare e ferro
  • Nastro elettrico
  • Opzionale: chiusura a strappo

In passato ho usato Brainlink per connettermi a un auricolare Mindflex EEG ea un Roomba. È davvero ottimo per le attività di bridging da seriale a Bluetooth. Realizzo solo connettori diversi per dispositivi diversi e posso spostare Brainlink tra di loro.

Passaggio 1: sfondo

Sfondo
Sfondo
Sfondo
Sfondo
Sfondo
Sfondo

Sentiti libero di saltare questa descrizione di base.

La Tastiera Wireless PalmOne invia i suoi dati tramite un LED IR su uno stelo, utilizzando IrDA. Sebbene si possa utilizzare un rilevatore IR per decodificare i dati, esiste un modo più semplice. Se pieghi a metà la tastiera, vengono esposte tre strisce di rame. Quella centrale è messa a terra e quella inferiore è una linea di trasmissione. Mettendoli a un oscilloscopio si verifica che il segnale sulla linea di trasmissione sia codificato a circa 9600 (più precisamente: 9760) 8 N 2, con il livello alto intorno a 1,56 V e con formazione dell'impulso irDA: 1 è alto e impulsi positivi prendi 3/16 del tempo di bit.

Sfortunatamente, tutto ciò significa che non possiamo semplicemente collegarlo a un semplice modulo Bluetooth (almeno non senza creare un firmware personalizzato per esso), come ho fatto nel mio progetto Mindflex. Fortunatamente, l'atxmega nel Brainlink ha una modalità irDA per il suo UART. È semplice aggiungere un po' di codice al firmware Brainlink consentendo a un codice "J1" di passare alla modalità IrDA. Mi aspettavo che l'alto livello di 1,56 V fosse insufficiente per l'atxmega, ma sono rimasto piacevolmente sorpreso quando ho collegato le strisce di rame a GND e UART Receive sul Brainlink e ho visto i risultati in Realterm: stavo ricevendo belle sequenze di sei byte dalla tastiera.

Si è scoperto che la sequenza di sei byte è solo un pacchetto per un codice di scansione a byte singolo (con rilascio di marcatura a bit elevato). Nello specifico, la sequenza è FF C0 xx yy zz C1, dove xx è il codice di scansione, yy è xx xo con FF e zz è xx xo con 67. (In effetti, il codice di scansione viene trasmesso tre volte: una volta chiaro e due volte codificato. Immagino che questo sia dovuto al fatto che irDA è soggetto a corruzione, quindi puoi utilizzare la decodifica di maggioranza per ottenere il byte.) Dopodiché, l'unica difficoltà hardware è stata trovare un posto per saldare un connettore sulla tastiera. E non è stato difficile.

Sul lato software, mentre forse potrei forse passare il modulo Bluetooth RN-42 nel Brainlink in modalità HID, che aveva un potenziale di bricking, poiché se il modulo non tornasse a SPP, non sarei in grado di parlare con il Brainlink tramite il suo protocollo Bluetooth.

La cosa più semplice da fare è stata semplicemente prendere l'app per tastiera BluezIME open source che consente a vari gamepad Bluetooth di funzionare come controller Android e aggiungere una modalità per le sequenze di sei byte della tastiera wireless Palm One. L'app risultante è la tastiera P1 gratuita in Google Play ora (codice sorgente su github).

Passaggio 2: aggiornamento del firmware Brainklink

Aggiornamento del firmware Brainklink
Aggiornamento del firmware Brainklink
Aggiornamento del firmware Brainklink
Aggiornamento del firmware Brainklink

Per abilitare il supporto dei dati seriali in formato IrDA su Brainlink, è necessario caricare il mio firmware personalizzato. È facile con un dispositivo Android e un uploader del firmware che ho scritto (a proposito, puoi modificare l'uploader per essere un uploader flash per atmega/atxmega AVR109 per uso generico).

  1. Associa Brainlink (PIN 1234) a un dispositivo Android: dovrai farlo comunque per collegare la tastiera
  2. Scarica il mio Brainlink Firmware Uploader da Google Play (fonte per uploader e firmware su github).
  3. Spegni Brainlink e collega i pin 8 e 2 (stranamente, il pin 8 è il pin più a sinistra e il pin 1 è a destra) sulla porta a 8 pin.
  4. Tenendo i pin collegati, accendi Brainlink. Il suo LED dovrebbe diventare blu.
  5. Seleziona il firmware personalizzato che desideri (se hai un Roomba, uno dei firmware funziona meglio con i Roombas più recenti e l'altro con quelli più vecchi) e premi "Carica".
  6. Dovrebbe essere così, anche se se hai difficoltà di connessione potresti dover provare più di una volta.

Il tuo Brainlink ora è più intelligente: non solo supporta la lettura dei dati da alcuni dispositivi IrDA (una volta individuato un segnale non modulato), ma funziona anche come collegamento standard Roomba-Bluetooth e può acquisire dati da un auricolare Mindflex EEG. E il firmware è retrocompatibile.

Passaggio 3: collegamento di Brainlink alla tastiera

Collegamento di Brainlink alla tastiera
Collegamento di Brainlink alla tastiera
Collegamento di Brainlink alla tastiera
Collegamento di Brainlink alla tastiera
Collegamento di Brainlink alla tastiera
Collegamento di Brainlink alla tastiera

Avrai bisogno di un connettore di cavo che si adatti ai tre pin più a sinistra sulla porta a 8 pin di Brainlink. Questi sono connettori in stile JST con distanza tra i pin di 1,25 mm. Puoi usare un connettore a tre pin (a mia scelta) o un connettore a 8 pin. Puoi usare il connettore a 8 pin fornito con Brainlink, ma poi vorrai ordinarne altri (ho trovato connettori a 3 e 8 pin economici su ebay).

Aprire l'alloggiamento della batteria della tastiera e rimuovere le batterie. Vicino al lato negativo delle batterie, troverai due coppie di fili collegati tra loro tramite un connettore in stile JST. Se i tuoi colori sono come i miei, i fili neri sono a terra (puoi semplicemente controllare la resistenza tra quello e il terminale meno sulla batteria) e gli altri colori (marrone e grigio) sono il segnale.

Sulla porta a 8 pin Brainlink, la connessione più a sinistra è messa a terra (pin più a sinistra della porta a 8 pin) e il terzo pin da sinistra è la ricezione seriale. Saldare il cavo di terra del connettore Brainlink alla linea di terra della tastiera e il cavo di ricezione di Brainlink alla linea del segnale. È possibile che nell'area della tastiera non vi sia spazio per la connessione a saldare e il connettore in stile JST che era all'interno della tastiera. In tal caso, rimuovere semplicemente il connettore in stile JST e saldare entrambi i tre fili di fili pertinenti (due fili di terra della tastiera e un filo di terra Brainlink; due fili del segnale della tastiera e un filo di ricezione Brainlink).

Si è tentati di scollegare il lato LED IR del connettore in stile JST per risparmiare la durata della batteria. Non farlo. Il segnale cade a pezzi se lo fai. Ho controllato con il mio oscilloscopio.

Praticare un foro sul bordo del coperchio della batteria per far passare i fili del cavo Brainlink, utilizzare del nastro isolante per mantenere isolate le due connessioni e fare un piccolo nodo anti-tensione.

Infine, quando tutto è fatto, copri i contatti irrilevanti sul cavo Brainlink o semplicemente taglia i fili irrilevanti.

Potresti anche voler incollare del velcro sul Brainlink e sulla tastiera per mantenere il Brainlink in posizione.

Passaggio 4: utilizzo con dispositivo Android

Utilizzo con dispositivo Android
Utilizzo con dispositivo Android
  1. Associa Brainlink al tuo dispositivo Android (PIN 1234).
  2. Installa la mia app per tastiera P1.
  3. Avvia le impostazioni della tastiera P1 (un'icona dovrebbe essere nel tuo launcher).
  4. Abilita la tastiera P1 nelle impostazioni del metodo di input di Android. Nelle versioni Android più recenti, puoi abilitare la tastiera P1 scegliendo "Seleziona IME" in Impostazioni tastiera P1 e toccando "Configura metodi di input". (Riceverai un avviso che la tastiera vede tutte le tue password, ecc. Questo è un avviso standard di Android: ovviamente, un driver della tastiera vede tutto ciò che scrivi. Se hai paura, guarda il codice sorgente della tastiera e crea il tuo.)
  5. Tocca "Seleziona dispositivo" e scegli il tuo Brainlink (il mio si presenta come RN42-A308).
  6. Tocca "Seleziona IME" nelle impostazioni della tastiera P1 e seleziona Tastiera P1.
  7. Potrebbe volerci un po' di tempo per connettersi, ma dovresti ricevere un messaggio sulla connessione se tutto va bene

E hai finito! Sentiti libero di donare all'autore di BluezIME su cui si basa la tastiera P1.

Su Android 4.0+, quando nei campi di testo ci sarà una notifica che consente di cambiare metodo di input, così puoi facilmente tornare a un altro metodo di input.

Il driver che ho scritto per la tastiera è molto semplice. Supporta i tasti ordinari, ma non supporta molti dei tasti accentati speciali o altre cose speciali. Ho aggiunto il supporto per l'utilizzo dei due pulsanti con una home (FN-1 e il tasto a sinistra dello spazio) come Home, utilizzando il tasto Windows e FN-2 come Menu e FN-3 come Cerca. Inoltre, ctrl-a, c, v, x funziona come previsto.

Funziona abbastanza bene da aver scritto la prima bozza completa di questo Instructable sul mio telefono Galaxy S2 con la tastiera.

Passaggio 5: altre tastiere

Altre tastiere
Altre tastiere
Altre tastiere
Altre tastiere

Se vuoi sperimentare con altre tastiere a infrarossi, dovrai capire quali segnali inviano e con quale baud rate. Con Brainlink aggiornato al software compatibile con IrDA, puoi connetterti con RealTerm a Brainlink. Quando vedi il segnale ripetuto "BL" che è la firma del Brainlink, digita:

*J1Z

L'asterisco chiede attenzione, J1 passa a 9600 baud IrDA (basta digitare l'1 subito dopo la J o si ottiene un errore). La Z è per la modalità bridge da seriale a Bluetooth.

Passa a RealTerm per visualizzare i codici esadecimali e premi i tasti sulla tastiera e vedi se riesci a capirlo.

Per uscire dalla modalità bridge seriale, spegnere e riaccendere Brainlink.

Immagino che 9600 baud sia il baud rate corretto. In caso contrario, è possibile modificare la velocità di trasmissione di Brainlink. Comincerei provando 57600 baud:

*J1u57Z

e poi 1200 baud:

*J1u12Z

Una volta capito come la tastiera invia i suoi dati, basta modificare il codice del mio driver. Probabilmente basta cambiare i numeri in PalmOneWirelessKeyboard.java.

Consigliato: