İçindekiler:

Android Cihazlarda Palm Kızılötesi Klavyeyi Kullanın: 5 Adım
Android Cihazlarda Palm Kızılötesi Klavyeyi Kullanın: 5 Adım

Video: Android Cihazlarda Palm Kızılötesi Klavyeyi Kullanın: 5 Adım

Video: Android Cihazlarda Palm Kızılötesi Klavyeyi Kullanın: 5 Adım
Video: Samsung telefonlarda bunu yapın! 2024, Temmuz
Anonim
Android Cihazlarla Palm Kızılötesi Klavyeyi Kullanın
Android Cihazlarla Palm Kızılötesi Klavyeyi Kullanın
Android Cihazlarla Palm Kızılötesi Klavyeyi Kullanın
Android Cihazlarla Palm Kızılötesi Klavyeyi Kullanın
Android Cihazlarla Palm Kızılötesi Klavyeyi Kullanın
Android Cihazlarla Palm Kızılötesi Klavyeyi Kullanın

Bir PalmOne Kablosuz Klavyem vardı ve telefonum için bir Bluetooth klavyeye sahip olmak istedim. Tek sorun, PalmOne klavyesinin kızılötesi tabanlı olmasıydı.

Bir de Brainlink cihazım vardı. Bu, farklı cihazlar arasında arabuluculuk yapmak için oldukça sevimli küçük bir cihazdır. Bir atxmega16 işlemcisi, şarj edilebilir pili, bazı sensörleri, Bluetooth radyosu, bir dizi bağlantı noktası, bir kasası ve hepsini kontrol etmek için bazı yükseltilebilir bellenimi var. Brainlink üretilmiyor, ancak SurplusShed 39 dolara sahip ve her şeyde periyodik olarak %30-50 indirime sahipler. 20 dolara aldım. Kendi atxmega plus Bluetooth kartınızı da kullanabilirsiniz (şemalar burada), ancak maliyetleriniz daha düşük olmayabilir.

Her neyse, klavyedeki sinyal hattının nerede olduğunu belirledikten, Brainlink için bir firmware yükseltmesi yaptıktan ve klavye için bir Android sürücüsü yazdıktan sonra oldukça iyi çalışıyor. İşin çoğu araştırma ve yazılım olduğundan, şimdi bu yapıldıktan sonra, Brainlink'i olan herkes için oldukça kolay bir proje. Şunlara ihtiyacınız var:

  • PalmOne Kablosuz Klavye
  • beyin bağı
  • Brainlink için 3 veya 8 pinli bir bağlantı (1,25 mm aralıklı JST tarzı konektör); Brainlink ile birlikte verilen 8 pinli ipi kullanabilirsiniz, ancak diğer projeler için daha fazla sipariş vermek isteyeceksiniz.
  • Lehim ve demir
  • Elektrik bandı
  • Opsiyonel: Cırt cırtlı tutturucu

Geçmişte bir Mindflex EEG kulaklığına ve bir Roomba'ya bağlanmak için Brainlink'i kullandım. Seriden Bluetooth'a köprüleme görevleri için gerçekten harika. Sadece farklı cihazlar için farklı konektörler yapıyorum ve Brainlink'i aralarında hareket ettirebiliyorum.

Adım 1: Arka Plan

Arka plan
Arka plan
Arka plan
Arka plan
Arka plan
Arka plan

Bu arka plan açıklamasını atlamaktan çekinmeyin.

PalmOne Kablosuz Klavye, verilerini IrDA kullanarak bir sap üzerindeki bir IR LED aracılığıyla gönderir. Verileri çözmek için bir IR dedektörü kullanılabilirken, daha kolay bir yol var. Klavyeyi yarıya katlarsanız, üç bakır şerit ortaya çıkar. Ortadaki toprak ve alttaki bir iletim hattıdır. Bunları bir osiloskopa yerleştirmek, iletim hattındaki sinyalin yaklaşık 9600 (daha kesin olarak: 9760) 8 N 2'de, yüksek seviye 1.56V civarında ve irDA darbe şekillendirme ile kodlandığını doğrular: 1 yüksek ve pozitif darbeler bit süresinin 3/16'sını alır.

Ne yazık ki, tüm bunlar, Mindflex projemde yaptığım gibi, bunu basit bir Bluetooth modülüne (en azından bunun için özel bellenim yapmadan) bağlayamayacağımız anlamına geliyor. Neyse ki Brainlink'teki atxmega'nın UART'ı için bir irDA modu var. Brainlink ürün yazılımına bir "J1" kodunun IrDA moduna geçmesine izin veren bir miktar kod eklemek kolaydır. 1.56V yüksek seviyenin atxmega için yetersiz olmasını bekliyordum ama bakır şeritleri GND ve UART Receive'a Brainlink üzerinden bağladığımda ve Realterm'de sonuçları gördüğümde hoş bir şekilde şaşırdım: Klavyeden güzel altı baytlık diziler alıyordum.

Altı baytlık sıranın yalnızca tek bir baytlık tarama kodu için paketleme olduğu ortaya çıktı (yüksek bit işaretleme sürümü ile). Spesifik olarak, dizi FF C0 xx yy zz C1'dir, burada xx tarama kodudur, yy, FF ile xx xor'lanmıştır ve zz, 67 ile xx xor'lanmıştır. (Aslında, tarama kodu üç kez iletilir: bir kez açık ve iki kez kodlanmış. Sanırım bunun nedeni irDA'nın bozulmaya meyilli olması ve bu nedenle baytı almak için çoğunluk kod çözme özelliğini kullanabilirsiniz.) Bundan sonra, tek donanım zorluğu klavyede bir konektör lehimlemek için bir yer bulmaktı.. Ve bu zor değildi.

Yazılım tarafında, belki Brainlink'teki RN-42 Bluetooth modülünü, tuğla yapma potansiyeli olan HID moduna geçirebilirken, modül SPP'ye geri dönmeseydi, konuşamazdım. Bluetooth protokolü üzerinden Brainlink.

Yapılması en kolay şey, çeşitli Bluetooth gamepad'lerin Android denetleyicileri olarak işlev görmesine ve Palm One Kablosuz Klavyenin altı baytlık dizileri için bir mod eklemesine izin veren açık kaynaklı BluezIME klavye uygulamasını almaktı. Ortaya çıkan uygulama, şimdi Google Play'deki ücretsiz P1 Klavyesidir (github'daki kaynak kodu).

Adım 2: Brainklink Ürün Yazılımını Yükseltme

Brainklink Ürün Yazılımını Yükseltme
Brainklink Ürün Yazılımını Yükseltme
Brainklink Ürün Yazılımını Yükseltme
Brainklink Ürün Yazılımını Yükseltme

Brainlink'te IrDA-formatlı seri veri desteğini etkinleştirmek için özel ürün yazılımımı yüklemeniz gerekir. Bir Android cihaz ve yazdığım bir ürün yazılımı yükleyicisi ile çok kolay (bu arada yükleyiciyi genel amaçlı bir atmega/atxmega AVR109 flash yükleyici olarak değiştirebilirsiniz).

  1. Brainlink'i (PIN 1234) bir Android cihazla eşleştirin; klavyeyi bağlamak için bunu yine de yapmanız gerekir
  2. Brainlink Firmware Uploader'ımı Google Play'den indirin (github'daki yükleyici ve bellenim kaynağı).
  3. Brainlink'i kapatın ve 8 ve 2 pimlerini (garip bir şekilde, pim 8 en soldaki pimdir ve pim 1 sağdadır) 8 pimli bağlantı noktasına bağlayın.
  4. Pinleri bağlı tutarak Brainlink'i açın. LED'i maviye dönmelidir.
  5. İstediğiniz özel bellenimi seçin (bir Roomba'nız varsa, bellenimlerden biri daha yeni Roombas ile, diğeri daha eski olanlarla daha iyi çalışır) ve "Yükle"ye basın.
  6. Öyle olmalı, ancak bağlantı zorluklarınız varsa, birden fazla denemeniz gerekebilir.

Brainlink'iniz artık daha akıllı: yalnızca bazı IrDA cihazlarından veri okumayı desteklemekle kalmıyor (modüle edilmemiş bir sinyali bulduğunuzda), aynı zamanda standart bir Roomba-Bluetooth bağlantısı olarak işlev görüyor ve bir Mindflex EEG kulaklığından veri yakalayabilir. Ve bellenim geriye dönük olarak uyumludur.

Adım 3: Brainlink'i Klavyeye Bağlama

Brainlink'i Klavyeye Bağlama
Brainlink'i Klavyeye Bağlama
Brainlink'i Klavyeye Bağlama
Brainlink'i Klavyeye Bağlama
Brainlink'i Klavyeye Bağlama
Brainlink'i Klavyeye Bağlama

Brainlink'in 8 pimli bağlantı noktasındaki en soldaki üç pime uyan bir bağlantı konektörüne ihtiyacınız olacak. Bunlar, 1,25 mm pin aralığına sahip JST tarzı konektörlerdir. Üç pimli bir konektör (benim seçimim) veya 8 pimli bir konektör kullanabilirsiniz. Brainlink ile birlikte gelen 8 pinli konektörü kullanabilirsiniz, ancak daha sonra daha fazlasını sipariş etmek isteyeceksiniz (ebay'de 3 ve 8 pinli konektörleri ucuz buldum).

Klavyenin pil yuvasını açın ve pilleri çıkarın. Pillerin eksi tarafının yakınında, JST tarzı bir konektörle birbirine bağlanmış iki çift kablo bulacaksınız. Renkleriniz benimki gibiyse, siyah teller topraklıdır (bununla pil üzerindeki eksi terminal arasındaki direnci kontrol edebilirsiniz) ve diğer renkler (kahverengi ve gri) sinyaldir.

Brainlink 8 pimli bağlantı noktanızda, en soldaki bağlantı topraklıdır (8 pimli bağlantı noktasının en sol pimi) ve soldan üçüncü pim seri alımdır. Brainlink konektörünüzdeki topraklama kablosunu klavyedeki toprak hattına ve Brainlink üzerindeki alıcı telini sinyal hattına lehimleyin. Klavye alanında lehim bağlantısı ve JST tarzı konektör için yer olmadığını görebilirsiniz. klavyenin içindeydi. Öyleyse, JST tarzı konektörü çıkarın ve ilgili kabloların her iki üçlüsünü de lehimleyin (iki klavye topraklama kablosu ve bir Brainlink topraklama kablosu; iki klavye sinyal kablosu ve bir Brainlink alıcı kablosu).

Pil ömründen tasarruf etmek için JST tarzı konektörün IR LED tarafının bağlantısını kesmek caziptir. yapma. Bunu yaparsanız sinyal dağılır. Osiloskopumla kontrol ettim.

Brainlink ipinin kablolarının geçmesi için pil kapağının dudağına bir delik açın, iki bağlantıyı izole tutmak için elektrik bandı kullanın ve küçük bir gerilim giderme düğümü bağlayın.

Son olarak, her şey bittiğinde, ya Brainlink ipindeki alakasız temasları örtün ya da alakasız kabloları kesin.

Ayrıca Brainlink'i yerinde tutmak için Brainlink'e ve klavyeye biraz Velcro yapıştırmak isteyebilirsiniz.

4. Adım: Android Cihazla Kullanma

Android Cihazla Kullanma
Android Cihazla Kullanma
  1. Brainlink'i Android cihazınızla eşleştirin (PIN 1234).
  2. P1 Klavye uygulamamı yükleyin.
  3. P1 Klavye Ayarlarını başlatın (başlatıcınızda bunun için bir simge olmalıdır).
  4. Android giriş yöntemi ayarlarında P1 Klavyeyi etkinleştirin. Daha yeni Android sürümlerinde, P1 Klavye Ayarlarında "IME Seç"i seçip "Giriş yöntemlerini ayarla" seçeneğine dokunarak P1 Klavyesini etkinleştirebilirsiniz. (Klavyenin tüm şifrelerinizi vb. gördüğüne dair bir uyarı alırsınız. Bu standart bir Android uyarısıdır: elbette, bir klavye sürücüsü yazdığınız her şeyi görür. Eğer korkuyorsanız, klavyenin kaynak koduna bakın ve kendi.)
  5. "Cihaz seç" üzerine dokunun ve Brainlink'inizi seçin (benimki RN42-A308 olarak görünüyor).
  6. P1 Klavye Ayarlarında "IME Seç" üzerine dokunun ve P1 Klavye'yi seçin.
  7. Bağlanmak biraz zaman alabilir, ancak her şey yolunda giderse bağlantı kurulduğuna dair bir mesaj almalısınız.

Ve işin bitti! P1 Klavyenin temel aldığı BluezIME'nin yazarına bağış yapmaktan çekinmeyin.

Android 4.0+ sürümünde, metin alanlarında giriş yöntemlerinin değiştirilmesine izin veren bir bildirim olacak, böylece başka bir giriş yöntemine kolayca geri dönebilirsiniz.

Klavye için yazdığım driver çok basit. Sıradan tuşları destekler, ancak özel aksanlı tuşların veya diğer özel şeylerin çoğunu desteklemez. İki düğmeyi bir ev (FN-1 ve alanın solundaki tuş) ile Ev olarak kullanmak için destek ekledim. Windows tuşu ve Menü olarak FN-2 ve Arama olarak FN-3. Ayrıca ctrl-a, c, v, x beklendiği gibi çalışır.

Bu Talimatın ilk taslağını klavyeyle Galaxy S2 telefonumda yazmam yeterince iyi çalışıyor.

Adım 5: Diğer Klavyeler

Diğer Klavyeler
Diğer Klavyeler
Diğer Klavyeler
Diğer Klavyeler

Diğer kızılötesi klavyeleri denemek istiyorsanız, hangi sinyalleri ve hangi baud hızında gönderdiklerini bulmanız gerekir. IrDA uyumlu yazılıma güncellenen Brainlink ile RealTerm ile Brainlink'e bağlanabilirsiniz. Beyin Bağlantısının imzası olan yinelenen "BL" sinyalini gördüğünüzde, şunu yazın:

*J1Z

Yıldız işareti dikkat ister, J1, 9600 baud IrDA'ya geçer (J'den hemen sonra 1'i yazmanız gerekir, aksi takdirde bir hata alırsınız). Z, seri-Bluetooth köprü modu içindir.

Hex kodlarını görüntülemek için RealTerm'i değiştirin ve klavyedeki tuşlara basın ve bunu anlayıp anlamadığınızı görün.

Seri köprü modundan çıkmak için Brainlink'i kapatıp açın.

9600 baud'un doğru baud hızı olduğunu tahmin ediyorum. Bunu başaramazsanız, Brainlink'in baud hızını değiştirebilirsiniz. 57600 baud'u deneyerek başlardım:

*J1u57Z

ve ardından 1200 baud:

*J1u12Z

Klavyenin verilerini nasıl gönderdiğini anladıktan sonra, sadece sürücümün kodunu değiştirin. Muhtemelen PalmOneWirelessKeyboard.java'daki sayıları değiştirmek yeterlidir.

Önerilen: