Съдържание:

Използвайте инфрачервена клавиатура Palm с устройства с Android: 5 стъпки
Използвайте инфрачервена клавиатура Palm с устройства с Android: 5 стъпки

Видео: Използвайте инфрачервена клавиатура Palm с устройства с Android: 5 стъпки

Видео: Използвайте инфрачервена клавиатура Palm с устройства с Android: 5 стъпки
Видео: XIAOMI REDMI PAD: An Ultra-Budget King // Things To Know Before Buy 2024, Юли
Anonim
Използвайте инфрачервена клавиатура Palm с устройства с Android
Използвайте инфрачервена клавиатура Palm с устройства с Android
Използвайте инфрачервена клавиатура Palm с устройства с Android
Използвайте инфрачервена клавиатура Palm с устройства с Android
Използвайте инфрачервена клавиатура Palm с устройства с Android
Използвайте инфрачервена клавиатура Palm с устройства с Android

Имах безжична клавиатура PalmOne и исках да имам Bluetooth клавиатура за телефона си. Единственият проблем беше, че клавиатурата на PalmOne беше инфрачервена.

Имах и устройство Brainlink. Това е доста сладко малко устройство за посредничество между различни устройства. Той има процесор atxmega16, акумулаторна батерия, някои сензори, Bluetooth радио, куп портове, калъф и малко надграждащ се фърмуер за управление на всичко. Brainlink е прекратен, но SurplusShed го има за $ 39 и те имат периодични 30-50% отстъпки от продажбите за всичко. Взех го за 20 долара. Можете също така да използвате своя собствена платка atxmega плюс Bluetooth (схеми тук), но разходите ви може да не са по -ниски.

Както и да е, след като идентифицира къде е сигналната линия на клавиатурата, направи ъпгрейд на фърмуера за Brainlink и написа Android драйвер за клавиатурата, той работи доста добре. Тъй като по -голямата част от работата беше проучване и софтуер, сега, когато това е направено, това е доста лесен проект за всеки, който има Brainlink. Имате нужда от:

  • Безжична клавиатура PalmOne
  • Brainlink
  • 3- или 8-пинов тетер за Brainlink (съединител в стил JST в стил 1,25 мм); можете да използвате 8-пинов тетер, включен в Brainlink, но ще искате да поръчате повече за други проекти
  • Припой и желязо
  • Електрическо тиксо
  • По избор: Закопчалка с кука

В миналото използвах Brainlink за свързване към слушалки MEGFLEX EEG и към Roomba. Това е наистина чудесно за задачи за свързване на сериен към Bluetooth. Просто правя различни конектори за различни устройства и мога да премествам Brainlink между тях.

Стъпка 1: Предистория

Заден план
Заден план
Заден план
Заден план
Заден план
Заден план

Чувствайте се свободни да пропуснете това фоново описание.

Безжичната клавиатура PalmOne изпраща данните си чрез инфрачервен светодиод на стъбло, използвайки IrDA. Докато човек може да използва IR детектор за декодиране на данните, има по -лесен начин. Ако сгънете наполовина клавиатурата, се разкриват три медни ленти. Средният е заземен, а долният е предавателна линия. Поставянето им на осцилоскоп потвърждава, че сигналът на предавателната линия е кодиран при приблизително 9600 (по -точно: 9760) 8 N 2, с високо ниво около 1,56 V и с оформяне на импулс IrDA: 1 е висок и положителни импулси отделете 3/16 от малкото време.

За съжаление, всичко това означава, че не можем просто да включим това в обикновен Bluetooth модул (поне не без да правим персонализиран фърмуер за него), както направих в моя проект Mindflex. За щастие atxmega в Brainlink има irDA режим за своя UART. Лесно е да добавите малко код към фърмуера на Brainlink, което позволява код "J1" да го превключи в IrDA режим. Очаквах 1.56V високото ниво да е недостатъчно за atxmega, но бях приятно изненадан, когато свързах медни ленти към GND и UART Receive на Brainlink и прегледах резултатите в Realterm: Получавах хубави шест байтови последователности от клавиатурата.

Оказа се, че шест байтовата последователност е само опаковка за еднобайтов код за сканиране (с освобождаване на маркиране с голям бит). По -конкретно, последователността е FF C0 xx yy zz C1, където xx е кодът за сканиране, yy е xx xor'ed с FF, а zz е xx xor'ed с 67. (На практика кодът за сканиране се предава три пъти: веднъж ясен и два пъти кодиран. Предполагам, че това е така, защото irDA е склонен към корупция и затова можете да използвате мажоритарно декодиране, за да получите байта.) След това единствената хардуерна трудност беше намирането на място за запояване на конектор на клавиатурата. И това не беше трудно.

От софтуерна страна, макар че може би бих могъл да превключа Bluetooth модула RN-42 в Brainlink в режим HID, който имаше потенциал за затваряне, тъй като ако модулът не се върна към SPP, нямаше да мога да говоря с Brainlink през своя Bluetooth протокол.

По-лесното нещо беше просто да вземете приложението за клавиатура с отворен код BluezIME, което позволява на различните Bluetooth геймпади да функционират като контролери за Android и да добавите режим за шест байтовите последователности на Palm One Wireless Keyboard. Полученото приложение е безплатната P1 клавиатура в Google Play сега (изходен код на github).

Стъпка 2: Надстройка на фърмуера на Brainklink

Надстройка на фърмуера на Brainklink
Надстройка на фърмуера на Brainklink
Надстройка на фърмуера на Brainklink
Надстройка на фърмуера на Brainklink

За да активирате поддръжката на серийни данни във IrDA формат на Brainlink, трябва да заредите моя персонализиран фърмуер. Лесно е с устройство с Android и програма за качване на фърмуер, която написах (между другото, можете да промените качващия файл с обща цел atmega/atxmega AVR109 flash uploader).

  1. Сдвоете Brainlink (PIN 1234) с устройство с Android-така или иначе ще трябва да направите това, за да свържете клавиатурата
  2. Изтеглете моя Brainlink Firmware Uploader от Google Play (източник за качване и фърмуер на github).
  3. Изключете Brainlink и свържете щифтове 8 и 2 (странно, че пин 8 е най-левият щифт, а пин 1 е отдясно) на 8-пиновия порт.
  4. Като държите щифтовете свързани, включете Brainlink. Неговият светодиод трябва да стане син.
  5. Изберете персонализирания фърмуер, който искате (ако имате Roomba, един от фърмуерите работи по -добре с по -новите Roombas, а другият с по -стари) и натиснете „Качване“.
  6. Това трябва да е всичко, но ако имате проблеми с връзката, може да се наложи да опитате повече от веднъж.

Вашият Brainlink вече е по-интелигентен: той не само поддържа четене на данни от някои IrDA устройства (след като локализирате немодулиран сигнал), но също така функционира като стандартна връзка Roomba към Bluetooth и може да улавя данни от EEG слушалки Mindflex. Фърмуерът е обратно съвместим.

Стъпка 3: Свързване на Brainlink към клавиатурата

Свързване на Brainlink към клавиатурата
Свързване на Brainlink към клавиатурата
Свързване на Brainlink към клавиатурата
Свързване на Brainlink към клавиатурата
Свързване на Brainlink към клавиатурата
Свързване на Brainlink към клавиатурата

Ще ви е необходим конектор за връзване, който пасва на трите най-леви пина на 8-пиновия порт на Brainlink. Това са съединители в стил JST с 1,25 мм разстояние между щифтовете. Можете да използвате три-пинов конектор (по мой избор) или 8-пинов конектор. Можете да използвате 8-пиновия конектор, който се доставя с Brainlink, но след това ще искате да поръчате повече от тях (намерих 3- и 8-пинови конектори евтини в ebay).

Отворете отделението за батерии на клавиатурата и извадете батериите. В близост до минусовата страна на батериите ще намерите два чифта проводници, свързани заедно чрез конектор в стил JST. Ако вашите цветове са като моите, черните проводници са заземени (можете просто да проверите съпротивлението между това и минусовия извод на батерията), а другите цветове (кафяво и сиво) са сигнал.

На вашия 8-пинов порт Brainlink най-лявата връзка е заземена (най-левият пин на 8-пинов порт), а третият пин отляво е сериен прием. Запоявайте заземяващия проводник на вашия конектор Brainlink към заземяващата линия на клавиатурата и приемния проводник по Brainlink към сигналната линия. Може да откриете, че в областта на клавиатурата няма място за връзката за запояване и съединителя в стил JST това беше вътре в клавиатурата. Ако е така, просто извадете съединителя в стил JST и запойте двата триа съответните проводници (два проводника за заземяване на клавиатурата и един проводник за заземяване Brainlink; два сигнални проводника на клавиатурата и един кабел за приемане на Brainlink).

Изкушаващо е да изключите IR LED страната на конектора в стил JST, за да спестите живота на батерията. Не го правете. Сигналът се разпада, ако го направите. Проверих с осцилоскопа.

Направете дупка на ръба на капака на батерията, за да преминат проводниците на връзката Brainlink, използвайте електрическа лента, за да държите двете връзки изолирани, и завържете малък възел за облекчаване на напрежението.

И накрая, когато всичко приключи, или прикрийте неподходящи контакти на връзката Brainlink, или просто отрежете несъответстващите проводници.

Може също да искате да залепите малко велкро върху Brainlink и клавиатурата, за да поддържате Brainlink на място.

Стъпка 4: Използване с устройство с Android

Използване с устройство с Android
Използване с устройство с Android
  1. Сдвоете Brainlink с вашето Android устройство (PIN 1234).
  2. Инсталирайте моето приложение за клавиатура P1.
  3. Стартирайте настройките на клавиатурата P1 (икона за нея трябва да е във вашия стартер).
  4. Активирайте клавиатурата P1 в настройките на метода за въвеждане на Android. В по -новите версии на Android можете да активирате клавиатурата P1, като изберете „Избор на IME“в настройките на клавиатурата P1 и докоснете „Настройване на методи за въвеждане“. (Ще получите предупреждение, че клавиатурата вижда всичките ви пароли и т.н. Това е стандартно предупреждение за Android: разбира се, драйверът на клавиатурата вижда всичко, което пишете. Ако се страхувате, погледнете изходния код на клавиатурата и изградете твой собствен.)
  5. Докоснете „Избор на устройство“и изберете своя Brainlink (моят се показва като RN42-A308).
  6. Докоснете „Избор на IME“в настройките на клавиатурата P1 и изберете клавиатура P1.
  7. Може да отнеме известно време за свързване, но трябва да получите съобщение за свързване, ако всичко върви добре

И сте готови! Чувствайте се свободни да дарите на автора на BluezIME, на който се основава клавиатурата P1.

В Android 4.0+, когато в текстовите полета ще има известие, което позволява превключване на методите за въвеждане, така че можете лесно да превключите обратно към друг метод на въвеждане.

Драйверът, който написах за клавиатурата, е много прост. Той поддържа обикновените клавиши, но не поддържа много от клавишите със специални акценти или други специални неща. Добавих поддръжка за използването на двата бутона с начало (FN-1 и клавиша вляво от интервала) като Home, използвайки клавиша Windows и FN-2 като меню и FN-3 като търсене. Също така, ctrl-a, c, v, x работи според очакванията.

Работи достатъчно добре, че написах пълния първи проект на тази инструкция на моя Galaxy S2 телефон с клавиатурата.

Стъпка 5: Други клавиатури

Други клавиатури
Други клавиатури
Други клавиатури
Други клавиатури

Ако искате да експериментирате с други инфрачервени клавиатури, ще трябва да разберете какви сигнали изпращат и с каква скорост на предаване. С Brainlink, актуализиран до IrDA-съвместим софтуер, можете да се свържете с RealTerm към Brainlink. Когато видите повтарящия се сигнал "BL", който е подпис на Brainlink, въведете:

*J1Z

Звездичката моли за внимание, J1 превключва на 9600 бод IrDA (просто трябва да въведете 1 бързо след J или получавате грешка). Z е за режим на серийно свързване към Bluetooth.

Превключете RealTerm за показване на шестнадесетични кодове и натиснете клавишите на клавиатурата и вижте дали можете да го осмислите.

За да излезете от режима на сериен мост, включете Brainlink.

Предполагам, че 9600 бода е правилната скорост на предаване. В противен случай можете да промените скоростта на предаване на Brainlink. Бих започнал, като опитам 57600 бода:

*J1u57Z

и след това 1200 бода:

*J1u12Z

След като разберете как клавиатурата изпраща своите данни, просто променете кода на моя драйвер. Вероятно само промяната на числата в PalmOneWirelessKeyboard.java е достатъчна.

Препоръчано: