Spisu treści:

Użyj klawiatury na podczerwień Palm na urządzeniach z Androidem: 5 kroków
Użyj klawiatury na podczerwień Palm na urządzeniach z Androidem: 5 kroków

Wideo: Użyj klawiatury na podczerwień Palm na urządzeniach z Androidem: 5 kroków

Wideo: Użyj klawiatury na podczerwień Palm na urządzeniach z Androidem: 5 kroków
Wideo: 🟡 POCO X5 PRO - NAJBARDZIEJ SZCZEGÓŁOWA RECENZJA I TESTY 2024, Lipiec
Anonim
Używaj klawiatury na podczerwień Palm z urządzeniami z Androidem
Używaj klawiatury na podczerwień Palm z urządzeniami z Androidem
Używaj klawiatury na podczerwień Palm z urządzeniami z Androidem
Używaj klawiatury na podczerwień Palm z urządzeniami z Androidem
Używaj klawiatury na podczerwień Palm z urządzeniami z Androidem
Używaj klawiatury na podczerwień Palm z urządzeniami z Androidem

Miałem bezprzewodową klawiaturę PalmOne i chciałem mieć klawiaturę Bluetooth do mojego telefonu. Jedynym problemem było to, że klawiatura PalmOne była oparta na podczerwieni.

Miałem też urządzenie Brainlink. To dość urocze małe urządzenie do pośredniczenia między różnymi urządzeniami. Ma procesor atxmega16, akumulator, kilka czujników, radio Bluetooth, kilka portów, obudowę i oprogramowanie, które można aktualizować do kontrolowania tego wszystkiego. Brainlink został wycofany, ale SurplusShed ma go za 39 USD i ma okresowo 30-50% zniżki na wszystko. Dostałem to za 20 dolarów. Możesz także użyć własnej karty atxmega plus Bluetooth (schemat tutaj), ale Twoje koszty mogą nie być niższe.

W każdym razie, po zidentyfikowaniu, gdzie znajduje się linia sygnału na klawiaturze, wykonaniu aktualizacji oprogramowania układowego dla Brainlink i napisaniu sterownika Androida dla klawiatury, działa całkiem nieźle. Ponieważ większość pracy dotyczyła badań i oprogramowania, teraz, gdy to się skończyło, jest to dość łatwy projekt dla każdego, kto ma Brainlink. Potrzebujesz:

  • Bezprzewodowa klawiatura PalmOne
  • Brainlink
  • 3- lub 8-pinowa linka do Brainlink (złącze typu JST z rastrem 1,25 mm); możesz użyć 8-pinowej linki dołączonej do Brainlink, ale będziesz chciał zamówić więcej do innych projektów
  • Lut i żelazo
  • Taśma elektryczna
  • Opcjonalnie: zapięcie na rzep

W przeszłości używałem Brainlink do łączenia się z zestawem słuchawkowym Mindflex EEG i Roombą. Świetnie nadaje się do zadań mostkowania połączenia szeregowego z Bluetooth. Po prostu robię różne złącza dla różnych urządzeń i mogę przenosić Brainlink między nimi.

Krok 1: Tło

Tło
Tło
Tło
Tło
Tło
Tło

Możesz pominąć ten opis tła.

Bezprzewodowa klawiatura PalmOne przesyła dane przez diodę podczerwieni na ramieniu, używając IrDA. Chociaż do dekodowania danych można użyć detektora podczerwieni, istnieje prostszy sposób. Jeśli złożysz klawiaturę do połowy, odsłonięte zostaną trzy miedziane paski. Środkowa jest uziemiona, a dolna to linia transmisyjna. Przyłożenie ich do oscyloskopu weryfikuje, że sygnał na linii transmisyjnej jest zakodowany przy ok. 9600 (dokładniej: 9760) 8 N 2, przy wysokim poziomie ok. 1,56V i przy kształtowaniu impulsów irDA: 1 to wysoki, a dodatnie impulsy weź 3/16 czasu bitowego.

Niestety, wszystko to oznacza, że nie możemy po prostu podłączyć tego do prostego modułu Bluetooth (przynajmniej nie bez robienia dla niego niestandardowego oprogramowania), tak jak zrobiłem to w moim projekcie Mindflex. Na szczęście atxmega w Brainlink ma tryb irDA dla swojego UARTa. Dodanie kawałka kodu do oprogramowania Brainlink jest proste, dzięki czemu kod „J1” przełącza go w tryb IrDA. Spodziewałem się, że wysoki poziom 1,56V będzie niewystarczający dla atxmega, ale byłem mile zaskoczony, gdy podłączyłem miedziane paski do GND i UART Receive na Brainlink i obejrzałem wyniki w Realterm: otrzymywałem ładne sześciobajtowe sekwencje z klawiatury.

Okazało się, że sześciobajtowa sekwencja jest tylko pakowaniem dla jednobajtowego kodu skanującego (z zwolnieniem znacznika wysokiego bitu). Konkretnie, sekwencja to FF C0 xx yy zz C1, gdzie xx to kod skanowania, yy to xx xoredowane z FF, a zz to xx xoreded z 67. (W efekcie kod skanu jest przesyłany trzy razy: raz czysty i dwukrotnie zakodowany. Zgaduję, że dzieje się tak dlatego, że irDA jest podatny na korupcję, więc możesz użyć dekodowania większościowego, aby uzyskać bajt.) Potem jedyną trudnością sprzętową było znalezienie miejsca do przylutowania złącza na klawiaturze. A to nie było trudne.

Po stronie oprogramowania, a może mógłbym przełączyć moduł Bluetooth RN-42 w Brainlink na tryb HID, który miał potencjał do murowania, ponieważ gdyby moduł nie przełączył się z powrotem na SPP, nie byłbym w stanie rozmawiać z Brainlink przez swój protokół Bluetooth.

Łatwiej było po prostu wziąć aplikację klawiatury BluezIME o otwartym kodzie źródłowym, która pozwala różnym gamepadom Bluetooth działać jako kontrolery Androida i dodać tryb dla sześciobajtowych sekwencji bezprzewodowej klawiatury Palm One. Powstała aplikacja to darmowa klawiatura P1 w Google Play (kod źródłowy na github).

Krok 2: Aktualizacja oprogramowania Brainklink

Aktualizacja oprogramowania Brainklink
Aktualizacja oprogramowania Brainklink
Aktualizacja oprogramowania Brainklink
Aktualizacja oprogramowania Brainklink

Aby włączyć obsługę danych szeregowych w formacie IrDA w Brainlink, musisz załadować moje niestandardowe oprogramowanie układowe. Jest to łatwe z urządzeniem z Androidem i oprogramowaniem do przesyłania oprogramowania, które napisałem (swoją drogą, możesz zmodyfikować uploader tak, aby był uniwersalnym programem do przesyłania flashowego atmega/atxmega AVR109).

  1. Sparuj Brainlink (PIN 1234) z urządzeniem z Androidem – i tak musisz to zrobić, aby podłączyć klawiaturę
  2. Pobierz mój Brainlink Firmware Uploader z Google Play (źródło do przesyłania i oprogramowania układowego na github).
  3. Wyłącz Brainlink i połącz piny 8 i 2 (o dziwo, pin 8 jest skrajnym lewym pinem, a pin 1 po prawej) w porcie 8-pinowym.
  4. Trzymając połączone piny, włącz Brainlink. Jego dioda powinna zmienić kolor na niebieski.
  5. Wybierz niestandardowe oprogramowanie układowe, które chcesz (jeśli masz robota Roomba, jedno z nich działa lepiej z nowszymi robotami Roombas, a drugie ze starszymi) i naciśnij „Prześlij”.
  6. To powinno być to, ale jeśli masz problemy z połączeniem, być może będziesz musiał spróbować więcej niż raz.

Twój Brainlink jest teraz inteligentniejszy: nie tylko obsługuje odczytywanie danych z niektórych urządzeń IrDA (po zlokalizowaniu niemodulowanego sygnału), ale także działa jako standardowe łącze Roomba-Bluetooth i może przechwytywać dane z zestawu słuchawkowego Mindflex EEG. Oprogramowanie jest kompatybilne wstecz.

Krok 3: Podłączanie Brainlink do klawiatury

Podłączanie Brainlink do klawiatury
Podłączanie Brainlink do klawiatury
Podłączanie Brainlink do klawiatury
Podłączanie Brainlink do klawiatury
Podłączanie Brainlink do klawiatury
Podłączanie Brainlink do klawiatury

Będziesz potrzebować złącza tether, które pasuje do trzech skrajnych lewych pinów w 8-pinowym porcie Brainlink. Są to złącza typu JST z rozstawem pinów 1,25 mm. Możesz użyć złącza trzypinowego (mój wybór) lub złącza 8-pinowego. Możesz użyć 8-pinowego złącza, które jest dostarczane z Brainlink, ale wtedy będziesz chciał zamówić ich więcej (znalazłem tanie 3- i 8-pinowe złącza na ebayu).

Otwórz komorę baterii klawiatury i wyjmij baterie. W pobliżu ujemnej strony baterii znajdziesz dwie pary przewodów połączonych ze sobą za pomocą złącza w stylu JST. Jeśli twoje kolory są takie jak moje, czarne przewody są uziemione (możesz po prostu sprawdzić rezystancję między tym a minusem na baterii), a pozostałe kolory (brązowy i szary) są sygnałem.

W 8-stykowym porcie Brainlink skrajne lewe połączenie to uziemienie (najbardziej lewy styk 8-stykowego portu), a trzeci styk od lewej to odbiór szeregowy. Przylutuj przewód uziemiający na złączu Brainlink do linii uziemienia na klawiaturze, a przewód odbiorczy na złączu Brainlink do linii sygnałowej. Może się okazać, że w obszarze klawiatury nie ma miejsca na połączenie lutowane i złącze typu JST to było wewnątrz klawiatury. Jeśli tak, po prostu usuń złącze typu JST i przylutuj obie trio odpowiednich przewodów (dwa przewody uziemiające klawiatury i jeden przewód uziemiający Brainlink; dwa przewody sygnałowe klawiatury i jeden przewód odbiorczy Brainlink).

Kuszące jest odłączenie strony diody podczerwieni złącza typu JST, aby oszczędzić baterię. Nie rób tego. Sygnał się rozpadnie, jeśli to zrobisz. Sprawdziłem oscyloskopem.

Zrób otwór na krawędzi pokrywy baterii, przez który przejdą przewody liny Brainlink, użyj taśmy elektrycznej, aby odizolować dwa połączenia i zawiąż mały węzeł odciążający.

Wreszcie, kiedy wszystko jest zrobione, albo zakryj nieistotne kontakty na uwięzi Brainlink, albo po prostu odetnij nieistotne przewody.

Możesz również przykleić rzepy na Brainlink i klawiaturze, aby utrzymać Brainlink na swoim miejscu.

Krok 4: Korzystanie z urządzenia z Androidem

Korzystanie z urządzenia z systemem Android
Korzystanie z urządzenia z systemem Android
  1. Sparuj Brainlink z urządzeniem z systemem Android (PIN 1234).
  2. Zainstaluj moją aplikację Klawiatura P1.
  3. Uruchom Ustawienia klawiatury P1 (ikona powinna znajdować się w programie uruchamiającym).
  4. Włącz klawiaturę P1 w ustawieniach metody wprowadzania w systemie Android. W nowszych wersjach Androida możesz włączyć klawiaturę P1, wybierając „Wybierz IME” w Ustawieniach klawiatury P1 i stukając w „Skonfiguruj metody wprowadzania”. (Otrzymasz ostrzeżenie, że klawiatura widzi wszystkie twoje hasła itp. To standardowe ostrzeżenie Androida: oczywiście sterownik klawiatury widzi wszystko, co wpisujesz. Jeśli się boisz, spójrz na kod źródłowy klawiatury i skompiluj Twój własny.)
  5. Stuknij w „Wybierz urządzenie” i wybierz swój Brainlink (mój wyświetla się jako RN42-A308).
  6. Stuknij w „Wybierz IME” w Ustawieniach klawiatury P1 i wybierz Klawiatura P1.
  7. Połączenie może zająć trochę czasu, ale powinieneś otrzymać komunikat o nawiązaniu połączenia, jeśli wszystko pójdzie dobrze

I jesteś skończony! Zapraszam do przekazania darowizny autorowi BluezIME, na którym oparta jest klawiatura P1.

W systemie Android 4.0+, gdy w polach tekstowych pojawi się powiadomienie umożliwiające przełączanie metod wprowadzania, dzięki czemu można łatwo przełączyć się z powrotem na inną metodę wprowadzania.

Sterownik, który napisałem do klawiatury jest bardzo prosty. Obsługuje zwykłe klawisze, ale nie obsługuje wielu specjalnych klawiszy akcentowanych ani innych specjalnych rzeczy. Dodałem obsługę dwóch przycisków z domem (FN-1 i klawiszem po lewej stronie spacji) jako Home, używając klawisz Windows i FN-2 jako Menu i FN-3 jako Szukaj. Ponadto ctrl-a, c, v, x działa zgodnie z oczekiwaniami.

Działa na tyle dobrze, że napisałem pełny pierwszy szkic tego Instructable na moim telefonie Galaxy S2 za pomocą klawiatury.

Krok 5: Inne klawiatury

Inne klawiatury
Inne klawiatury
Inne klawiatury
Inne klawiatury

Jeśli chcesz poeksperymentować z innymi klawiaturami na podczerwień, musisz dowiedzieć się, jakie sygnały wysyłają i z jaką szybkością transmisji. Po zaktualizowaniu Brainlink do oprogramowania kompatybilnego z IrDA, możesz połączyć się z RealTerm z Brainlink. Gdy zobaczysz powtarzający się sygnał „BL”, będący sygnaturą Brainlink, wpisz:

*J1Z

Gwiazdka prosi o uwagę, J1 przełącza się na 9600 bodów IrDA (wystarczy szybko wpisać 1 po J lub pojawi się błąd). Z jest dla trybu mostu szeregowego do Bluetooth.

Przełącz RealTerm, aby wyświetlać kody szesnastkowe, naciskaj klawisze na klawiaturze i sprawdź, czy możesz to zrozumieć.

Aby wyjść z trybu mostu szeregowego, wyłącz i włącz Brainlink.

Zgaduję, że 9600 bodów to właściwa szybkość transmisji. Jeśli to się nie uda, możesz zmienić szybkość transmisji Brainlink. Zacząłbym od wypróbowania 57600 bodów:

*J1u57Z

a następnie 1200 bodów:

*J1u12Z

Kiedy już zorientujesz się, jak klawiatura wysyła swoje dane, po prostu zmodyfikuj kod mojego sterownika. Prawdopodobnie wystarczy tylko zmiana cyfr w PalmOneWirelessKeyboard.java.

Zalecana: