Isi kandungan:

Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android: 5 Langkah
Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android: 5 Langkah

Video: Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android: 5 Langkah

Video: Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android: 5 Langkah
Video: Fitur canggih di OPPO Reno 5 yang jarang diketahui penggunanya : Air Gesture 2024, Julai
Anonim
Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android
Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android
Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android
Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android
Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android
Gunakan Papan Kekunci Inframerah Palm Dengan Peranti Android

Saya mempunyai Papan Kekunci Tanpa Wayar PalmOne dan saya mahu mempunyai papan kekunci Bluetooth untuk telefon bimbit saya. Satu-satunya masalah ialah papan kekunci PalmOne berasaskan inframerah.

Saya juga mempunyai peranti Brainlink. Ini adalah peranti kecil yang agak comel untuk menjadi orang tengah antara peranti yang berbeza. Ia mempunyai pemproses atxmega16, bateri yang boleh dicas semula, beberapa sensor, radio Bluetooth, sekumpulan port, casing dan beberapa firmware yang boleh ditingkatkan untuk mengawal semuanya. Brainlink dihentikan tetapi SurplusShed memilikinya dengan harga $ 39, dan mereka mempunyai potongan 30-50% secara berkala untuk semua penjualan. Saya mendapatnya dengan harga $ 20. Anda juga boleh menggunakan papan Bluetooth atxmega plus anda sendiri (skema di sini), tetapi kos anda mungkin tidak lebih rendah.

Bagaimanapun, setelah mengenal pasti di mana garis isyarat pada papan kekunci, membuat peningkatan firmware untuk Brainlink dan menulis pemacu Android untuk papan kekunci, ia berfungsi dengan baik. Oleh kerana sebahagian besar pekerjaan adalah penyelidikan dan perisian, sekarang ini sudah menjadi projek yang cukup mudah bagi sesiapa sahaja yang mempunyai Brainlink. Awak perlu:

  • Papan Kekunci Tanpa Wayar PalmOne
  • Pautan Otak
  • Penambat 3 atau 8-pin untuk Brainlink (penyambung gaya JST nada 1.25mm); anda boleh menggunakan tether 8-pin yang disertakan dengan Brainlink tetapi anda ingin memesan lebih banyak untuk projek lain
  • Pateri dan besi
  • Pita elektrik
  • Pilihan: Pengikat cangkuk dan gelung

Pada masa lalu saya telah menggunakan Brainlink untuk menyambung ke alat dengar Mindflex EEG dan ke Roomba. Ia sangat bagus untuk tugas merapatkan siri ke Bluetooth. Saya hanya membuat penyambung yang berbeza untuk peranti yang berbeza, dan dapat memindahkan Brainlink di antara mereka.

Langkah 1: Latar belakang

Latar belakang
Latar belakang
Latar belakang
Latar belakang
Latar belakang
Latar belakang

Jangan lupa untuk menerangkan latar belakang ini.

Papan Kekunci Tanpa Wayar PalmOne mengirimkan datanya melalui LED IR pada tangkai, menggunakan IrDA. Walaupun seseorang dapat menggunakan detektor IR untuk menyahkod data, ada cara yang lebih mudah. Sekiranya anda melipat separuh papan kekunci, tiga jalur tembaga akan terpapar. Yang tengahnya tanah dan yang bawah adalah garis pemancar. Meletakkannya ke osiloskop mengesahkan bahawa isyarat pada saluran pemancar dikodkan pada sekitar 9600 (lebih tepat: 9760) 8 N 2, dengan tahap tinggi sekitar 1.56V, dan dengan pembentukan pulsa irDA: 1 adalah tinggi, dan denyut positif ambil 3/16 masa bit.

Sayangnya, semua ini bermakna kita tidak boleh memasukkannya ke modul Bluetooth yang mudah (sekurang-kurangnya tidak tanpa membuat firmware khusus untuknya), seperti yang saya lakukan dalam projek Mindflex saya. Nasib baik, atxmega di Brainlink mempunyai mod irDA untuk UARTnya. Sangat mudah untuk menambahkan sedikit kod ke firmware Brainlink yang membolehkan kod "J1" menukarnya ke mod IrDA. Saya menjangkakan tahap tinggi 1.56V tidak mencukupi untuk atxmega, tetapi saya terkejut apabila saya menyambungkan jalur tembaga ke GND dan UART Terima di Brainlink dan melihat hasilnya di Realterm: Saya mendapat urutan enam bait yang bagus dari papan kekunci.

Ternyata urutan enam bait hanya membungkus kod imbasan bait tunggal (dengan pelepasan penanda bit tinggi). Secara khusus, urutannya adalah FF C0 xx yy zz C1, di mana xx adalah kod imbasan, yy xx xor'ed dengan FF, dan zz xx xor'ed dengan 67. (Akibatnya, kod imbasan dihantar tiga kali: sekali jelas dan dikodkan dua kali. Saya rasa ini kerana irDA terdedah kepada kerosakan, jadi anda boleh menggunakan penyahkodan majoriti untuk mendapatkan bait.) Selepas itu, satu-satunya kesukaran perkakasan adalah mencari tempat untuk menyolder penyambung pada papan kekunci. Dan itu tidak sukar.

Dari sisi perisian, walaupun mungkin saya mungkin menukar modul Bluetooth RN-42 dalam mod Brainlink ke HID, yang berpotensi bricking, kerana jika modul tidak beralih kembali ke SPP, saya tidak dapat bercakap dengan Brainlink melalui protokol Bluetoothnya.

Perkara yang lebih mudah dilakukan hanyalah menggunakan aplikasi papan kekunci BluezIME sumber terbuka yang membolehkan pelbagai gamepad Bluetooth berfungsi sebagai pengawal Android dan menambahkan mod untuk urutan enam byte Palm One Wireless Keyboard. Aplikasi yang dihasilkan adalah P1 Keyboard percuma di Google Play sekarang (kod sumber di github).

Langkah 2: Meningkatkan Firmware Brainklink

Meningkatkan Firmware Brainklink
Meningkatkan Firmware Brainklink
Meningkatkan Firmware Brainklink
Meningkatkan Firmware Brainklink

Untuk mengaktifkan sokongan data bersiri format IrDA pada Brainlink, anda perlu memuatkan firmware khusus saya. Sangat mudah dengan peranti Android dan muat naik firmware yang saya tulis (by the way, anda boleh mengubahsuai pemuat naik menjadi pemuat naik flash atmega / atxmega AVR109 tujuan umum).

  1. Pasangkan Brainlink (PIN 1234) dengan peranti Android - anda tetap perlu melakukannya untuk menyambungkan papan kekunci
  2. Muat turun Pemuat Perisian Firmware Brainlink saya dari Google Play (sumber untuk pemuat naik dan firmware di github).
  3. Matikan Brainlink dan sambungkan pin 8 dan 2 (anehnya, pin 8 adalah pin paling kiri, dan pin 1 di sebelah kanan) di port 8-pin.
  4. Dengan memegang pin yang tersambung, hidupkan Brainlink. LEDnya harus bertukar menjadi biru.
  5. Pilih firmware tersuai yang anda mahukan (jika anda mempunyai Roomba, salah satu perisian berfungsi lebih baik dengan Roombas yang lebih baru dan yang lain dengan yang lebih lama), dan tekan "Muat Naik".
  6. Sudah semestinya, walaupun jika anda menghadapi masalah dalam hubungan, anda mungkin perlu mencuba lebih dari sekali.

Brainlink anda kini lebih pintar: ia tidak hanya menyokong membaca data dari beberapa peranti IrDA (setelah anda mencari isyarat yang tidak dimodulasi), tetapi juga berfungsi sebagai pautan Roomba-to-Bluetooth standard, dan dapat menangkap data dari headset Mindflex EEG. Dan firmware serasi ke belakang.

Langkah 3: Menghubungkan Pautan Otak ke Papan Kekunci

Menyambungkan Brainlink ke Papan Kekunci
Menyambungkan Brainlink ke Papan Kekunci
Menyambungkan Brainlink ke Papan Kekunci
Menyambungkan Brainlink ke Papan Kekunci
Menyambungkan Brainlink ke Papan Kekunci
Menyambungkan Brainlink ke Papan Kekunci

Anda memerlukan penyambung tether yang sesuai dengan tiga pin paling kiri pada port 8-pin Brainlink. Ini adalah penyambung gaya JST dengan jarak pin 1.25mm. Anda boleh menggunakan penyambung tiga pin (pilihan saya) atau penyambung 8 pin. Anda boleh menggunakan penyambung 8-pin yang disertakan dengan Brainlink, tetapi kemudian anda ingin memesan lebih banyak dari mereka (saya dapati penyambung 3- dan 8-pin murah di ebay).

Buka ruang bateri papan kekunci dan keluarkan baterinya. Berhampiran sisi bateri yang kurang, anda akan menemui dua pasang wayar yang disambungkan bersama melalui penyambung gaya JST. Sekiranya warna anda seperti warna saya, wayar hitam tanah (anda boleh memeriksa rintangan antara terminal dan minus pada bateri) dan warna lain (coklat dan kelabu) adalah isyarat.

Pada port 8-pin Brainlink anda, sambungan paling kiri adalah ground (pin paling kiri port 8-pin) dan pin ketiga dari kiri adalah penerimaan bersiri. Pateri wayar ground pada penyambung Brainlink anda ke garis bawah pada keyboard, dan wayar terima pada Brainlink ke garis isyarat. Anda mungkin mendapati bahawa tidak ada ruang di kawasan papan kekunci untuk sambungan solder dan penyambung gaya JST yang ada di dalam papan kekunci. Jika ya, lepaskan penyambung gaya JST, dan solder kedua-dua trio wayar yang berkaitan (dua wayar ground papan kekunci dan satu wayar ground Brainlink; dua wayar isyarat papan kekunci dan satu wayar penerima Brainlink).

Adalah menggoda untuk memutuskan sambungan IR LED dari penyambung gaya JST untuk menjimatkan bateri. Jangan buat. Isyarat akan hancur sekiranya anda berbuat demikian. Saya memeriksa dengan osiloskop saya.

Buat lubang di bibir penutup bateri agar wayar tetes Brainlink dapat dilalui, gunakan pita elektrik untuk memastikan kedua-dua sambungan terpencil, dan ikat simpul pelepasan ketegangan kecil.

Akhirnya, apabila semuanya selesai, tutup penutup kenalan yang tidak relevan pada Brainlink tether atau potong wayar yang tidak berkaitan.

Anda mungkin juga ingin merekatkan beberapa Velcro pada Brainlink dan papan kekunci untuk memastikan Brainlink tetap di tempat.

Langkah 4: Menggunakan Dengan Peranti Android

Menggunakan Dengan Peranti Android
Menggunakan Dengan Peranti Android
  1. Pasangkan Brainlink dengan peranti Android anda (PIN 1234).
  2. Pasang aplikasi P1 Keyboard saya.
  3. Lancarkan Tetapan Papan Kekunci P1 (ikon untuknya harus ada di pelancar anda).
  4. Aktifkan P1 Papan Kekunci dalam tetapan kaedah input Android. Pada versi Android yang lebih baru, anda dapat mengaktifkan P1 Keyboard dengan memilih "Select IME" di P1 Keyboard Settings, dan mengetuk "Set up input input." (Anda akan mendapat amaran bahawa papan kekunci melihat semua kata laluan anda, dll. Itu adalah amaran Android standard: tentu saja, pemacu papan kekunci melihat semua yang anda taipkan. Sekiranya anda takut, lihat kod sumber papan kekunci dan bina kamu punya.)
  5. Ketuk "Pilih peranti" dan pilih Brainlink anda (milik saya muncul sebagai RN42-A308).
  6. Ketuk "Pilih IME" di P1 Keyboard Settings dan pilih P1 Keyboard.
  7. Mungkin memerlukan sedikit masa untuk menyambung, tetapi anda seharusnya mendapat mesej mengenai penyambungan jika semuanya berjalan lancar

Dan anda sudah selesai! Jangan ragu untuk menderma kepada pengarang BluezIME yang menjadi asas P1 Keyboard.

Pada Android 4.0+, ketika di bidang teks akan ada pemberitahuan yang memungkinkan beralih kaedah input, sehingga Anda dapat dengan mudah beralih kembali ke metode input lain.

Pemacu yang saya tulis untuk papan kekunci sangat mudah. Ia menyokong kunci biasa, tetapi tidak menyokong banyak kunci beraksen khas atau perkara istimewa lain. Saya menambah sokongan untuk menggunakan dua butang dengan rumah (FN-1 dan kunci di sebelah kiri ruang) sebagai Rumah, menggunakan kekunci Windows dan FN-2 sebagai Menu dan FN-3 sebagai Carian. Juga, ctrl-a, c, v, x berfungsi seperti yang diharapkan.

Ia berfungsi dengan baik sehingga saya menulis draf pertama lengkap Instructable ini di telefon Galaxy S2 saya dengan papan kekunci.

Langkah 5: Papan Kekunci Lain

Papan Kekunci Lain
Papan Kekunci Lain
Papan Kekunci Lain
Papan Kekunci Lain

Sekiranya anda ingin bereksperimen dengan papan kekunci inframerah lain, anda harus mengetahui isyarat apa yang mereka hantar dan pada kadar baud apa. Dengan Brainlink dikemas kini ke perisian yang sesuai dengan IrDA, anda boleh berhubung dengan RealTerm ke Brainlink. Apabila anda melihat isyarat "BL" berulang yang merupakan tandatangan Brainlink, ketik:

* J1Z

Tanda bintang meminta perhatian, J1 beralih ke 9600 baud IrDA (hanya perlu mengetik 1 dengan cepat selepas J atau anda mendapat ralat). Z adalah untuk mod jambatan siri ke Bluetooth.

Tukar RealTerm untuk memaparkan kod hex, dan tekan kekunci pada papan kekunci dan lihat apakah anda dapat memahaminya.

Untuk keluar dari mod jambatan bersiri, kitar semula Brainlink.

Saya rasa 9600 baud adalah kadar baud yang betul. Sekiranya tidak, anda boleh mengubah kadar baud Brainlink. Saya akan mulakan dengan mencuba 57600 baud:

* J1u57Z

dan kemudian 1200 baud:

* J1u12Z

Setelah anda mengetahui bagaimana papan kekunci menghantar datanya, ubah kod pemacu saya. Mungkin hanya menukar nombor di PalmOneWirelessKeyboard.java sudah cukup.

Disyorkan: