Съдържание:

Как да свържете PS/2 клавиатура към iPhone: 11 стъпки
Как да свържете PS/2 клавиатура към iPhone: 11 стъпки

Видео: Как да свържете PS/2 клавиатура към iPhone: 11 стъпки

Видео: Как да свържете PS/2 клавиатура към iPhone: 11 стъпки
Видео: 32 Секретные Комбинации Для Вашей Клавиатуры 2024, Ноември
Anonim
Как да свържете PS/2 клавиатура към iPhone
Как да свържете PS/2 клавиатура към iPhone
Как да свържете PS/2 клавиатура към iPhone
Как да свържете PS/2 клавиатура към iPhone
Как да свържете PS/2 клавиатура към iPhone
Как да свържете PS/2 клавиатура към iPhone

Въпреки че съм виждал много снимки на PS/2 клавиатури, включени в iPhone в интернет, никой все още не е публикувал подробно как да накарате това да работи сами. Досега това е така.

В тази инструкция ще ви покажа как можете да направите PS/2 клавиатура към iPhone конвертор, включително всички хардуерни и софтуерни инструкции.

Предпоставки

  • Jailbroken iPhone - Официалният SDK не позволява достъп до серийния порт поради Elf Conspiracy, така че е необходим джейлбрейк. Всичко, което трябва да знаете за джейлбрейк, е в блога на iPhone Dev Team.
  • Arduino Diecimila или Dumilanove (или клонинг), достъпни от много места. Този метод предполага, че вашият Arduino е сглобен.
  • Дъска за пробиване на iPod, като тази на Sparkfun. Всеки подобен продукт ще работи.
  • Женски PS/2 (Din 6) конектор за клавиатура. Извадете един от стар компютър или го купете от Digikey или подобен доставчик.
  • Тел, за предпочитане няколко цвята и около 24 габарита. Използвам шпула от RadioShack на снимките по -долу.
  • Един 500k резистор. Използвам аксиален резистор през дупка от RadioShack, но можете да добавите и това към вашата поръчка Digikey.
  • Поялник и спойка. Ако не знаете как да запоявате, можете да научите тук и тук.
  • (Незадължително) Pin Headers, като тези. Прекъсвам ги и ги запоявам до краищата на проводниците, така че да се включат добре в Arduino.
  • (Незадължително) Sweet 9v батерия, така че вашият Arduino да стане преносим, наличен от Maker Store.
  • (По избор) Стерео жак за слушалки от RadioShack или Digikey.

Стъпка 1: Запоявайте пробива на iPhone - част 1

Запоявайте пробива на iPhone - част 1
Запоявайте пробива на iPhone - част 1

След като пристигнат всичките ви съставки, запалете поялника и разгледайте бързо извода за конектора на iPod.

Ще използваме четири от тези щифтове за клавиатурата: 11, 13, 16 и 21. Определението на щифт 21 казва, че трябва да поставим 500k резистор между пин 21 и земята, за да дадем възможност за серийна комуникация с iPhone, така че ще поставим резистор между щифт 21 и щифт 16, който е серийната маса. Също така ще добавим заглавки на щифтове към пинове 11 и 13, които ще действат като TX и RX щифтове за серийни комуникации. Тъй като ще изпращаме САМО към iPhone, ние използваме само RX пина на iPhone, така че ще добавим и парче тел за свързване на щифт 11, неизползвания TX щифт, директно към земята на щифт 16.

Можете също така по желание да добавите стеро жака за слушалки към щифтове 2, 3 и 4 в момента и той ще работи всеки път, когато пробивът е включен. Това няма нищо общо с клавиатурата, но ако имате 1G iPhone с куцото не стандартен жак за слушалки, това ще го поправи.

Стъпка 2: Запоявайте пробива на iPhone - част 2

Запоявайте пробива на iPhone - част 2
Запоявайте пробива на iPhone - част 2

Поставих джъмпера между щифт 11 и щифт 16 на гърба на пробивната дъска. Може да бъде малко трудно да поставите всичко на щифт 16, затова препоръчвам първо да прокарате резистора през отвора, след това да увиете края на джъмперния проводник около него и да ги запоите, преди да отрежете резисторния проводник.

Друга тактика, която може да бъде полезна тук, е първо да калайдите краищата на жицата си, след това да натриете малко спойка върху дупката, към която искате да залепите жицата. Използвайте отстрани на поялника, за да затоплите петното си от спойка и ПЛАСНЕТЕ калайдисания край на жицата в петното. Извадете ютията, оставете петното да се охлади, след това пуснете кабела.

Стъпка 3: Запоявайте конектора PS/2 - Част 1

Запоявайте конектора PS/2 - Част 1
Запоявайте конектора PS/2 - Част 1

Няма начин, по който можете да преминете през номерацията на щифтовете на конектора PS/2, който да има какъвто и да е смисъл извън контекста на побърканите размишления на заседание на комитет. Не мислете много за номерата на пиновете, просто проверете снимката.

Тук ще използваме четири пина и ще ги свържем с Arduino. Заземяването ще бъде свързано към земята на Arduino, VCC ще бъде свързано към 5V, а пиновете за данни и часовник ще бъдат пренесени към два от цифровите щифтове на Arduino (3 и 4).

Стъпка 4: Запоявайте конектора PS/2 - Част 2

Запоявайте конектора PS/2 - част 2
Запоявайте конектора PS/2 - част 2

Долната част на конектора PS/2 е дори по -малко интуитивна от схемата за номериране. Препоръчвам да проверите тази снимка, но също така да проверите дали щифтовете в долната част на вашия конектор съвпадат с номерираните щифтове, които смятате, че правят, преди да запоявате нещо. Можете да проверите за свързаност с обикновен мултицет, като го настроите за измерване на съпротивлението и свържете едната сонда към щифта на дъното, а другата поставете в отвора. Ако изобщо има някакво съпротивление, тогава този щифт е свързан към този отвор.

Използвам зеления проводник за щифта на часовника, червения проводник за VCC, белия проводник за данни и черния проводник за маса.

Стъпка 5: Запоявайте заглавки на щифтове към потенциални клиенти

Запоявайте заглавки на щифтове към водещи
Запоявайте заглавки на щифтове към водещи

След като свържете конекторите, отстранете другите краища на проводниците и запоявайте кабелите към щифтовете. Това ще ви позволи лесно да ги включите в Arduino. Ако не сте получили заглавки на щифтове, можете да опитате внимателно да калайдите проводниците, за да ги накарате да останат по -добре в дупките за щифтове на Arduino.

Прикрепих няколко проводника към щифтовете на щифтове 11 и 13 на пробивната платка на iPhone. Черният проводник е към земята (щифт 11), а червеният проводник е към VCC (щифт 13). След това съм запоил заглавки на щифтове към проводниците за двата проводника от прекъсващата платка и четирите, идващи от конектора PS/2.

Стъпка 6: (По избор) 9V батериен кабел

(По избор) 9V батериен кабел
(По избор) 9V батериен кабел

Използвам Arduino Diecimila, тъй като тази програма не изисква по -добър чип. Това е показано с 9V батериен сноп от SparkFun за преносимост.

Стъпка 7: Прикрепете PS/2 изводи към Arduino

Прикрепете PS/2 изводи към Arduino
Прикрепете PS/2 изводи към Arduino

След това свързваме конектора PS/2 към Arduino. Свържете проводника на часовника към цифров пин 3, проводника за данни към цифров пин 4 и свържете заземяващия проводник към земята на Arduino и VCC проводника към 5V щифта.

Стъпка 8: Прикрепете IPhone водещи към Arduino

Прикрепете IPhone водещи към Arduino
Прикрепете IPhone водещи към Arduino

За да свържете пробив на iPhone, просто свържете проводника от Pin 13 към TX Pin на Arduino (Digital Pin 1) и след това свържете проводника от Pin 11 към всеки наличен Ground на Arduino.

ВАЖНО: За да избегнете проблеми с мигането на Arduino, моля, изключете TX Pin на Arduino, преди да мигате. Повече за това по -късно. След това цялото запояване се извършва. Сега е време да преминем към програмиране на Arduino!

Стъпка 9: Кодът на Arduino

Кодът на Ардуино
Кодът на Ардуино

Софтуерът Arduino извежда данни от клавиатурата, превежда кодовете за сканиране на клавиатурата в кодове на клавиши и управлява натискането на клавишите Shift и Caps Lock.

Първо изтеглете и инсталирайте средата за разработка на Arduino от тук. Следвайте указанията на сайта, но не забравяйте да инсталирате подходящия драйвер за FTDI от директорията с драйвери в инсталацията на Arduino.

След това ще ви е необходима допълнителна библиотека Arduino за PS/2. Изтеглете файла „ps2.zip“от тази страница. За да инсталирате, разархивирайте изтеглянето в папка и преместете тази папка като поддиректория на директорията „хардуер/библиотеки“под вашата инсталация на Arduino. В OSX можете първо да отидете на Arduino.app и „Показване на съдържанието на пакета“.

След като Arduino и ps2 библиотеката са инсталирани, изтеглете изходния код от тук. Отворете приложението Arduino, създайте нов проект и поставете изходния код в него. Запазете и след това отидете на Sketch-> Verify/Compile, за да се уверите, че се изгражда. Ако това не стане, уверете се, че библиотеката е инсталирана правилно.

От друга страна, всъщност не написах абсолютно никакъв код за този проект. Започнах да се опитвам да използвам библиотеката PS2KeyboardExt2, но тази библиотека се основава на прекъсвания и макар да може да работи на Arduino, който също говори серийно на 9600 bps, след като стартирах серийния до 19200 bps, прекъсванията спряха да работят в стабилен начин. Така че извадих целия хубав код от PS2KeyboardExt2, включително дефинициите на ключовете и приятното боравене със смени и ограничаване и го преработих в програма, която не използва прекъсвания и използва различна, много по -проста PS/2 библиотека. Това го прави способен да управлява серийно 19200 bps по надежден начин.

Сега, за да програмирате Arduino!

Изключете кабела към Pin 1 на Arduino. След това свържете Arduino към компютъра си чрез USB кабел. Може да се наложи да рестартирате приложението Arduino, така че да открие правилно новото серийно USB устройство. Заредете запазената скица с източника и след това натиснете бутона Качване, за да програмирате Arduino.

След като програмата бъде качена, включете клавиатурата в конектора PS/2. Трябва да видите светлините да мигат. Можете да отворите Serial Monitor в приложението Arduino и да опитате да напишете някои букви на клавиатурата. Трябва да видите тези букви да се показват в серийния монитор. Опитайте да включите и изключите Caps Lock, светлината на клавиатурата трябва да свети и изключва и знаците трябва да излизат правилно с главни букви.

Стъпка 10: Клиентската програма на iPhone

Сега за настройка на клиентската програма на iPhone.

За клиентския код използвам програма, която открих на страницата на Google Code Code на Anthony Pray. Тази програма чете вход от серийния порт при 19200 bps и след това инжектира съответното клавиатурно събитие, използвайки VNC клиентска библиотека. Направих локално огледало само на текст на източника тук, което може лесно да бъде извлечено с wget.

Тъй като ще инжектираме клавиши от VNC, ще трябва да работите и с VNC сървър на iPhone. Ще използваме Veency (което е страхотно и все пак трябва да го инсталирате).

Отидете на Cydia или Icy и инсталирайте следните пакети:

  • Veency - Предоставя VNC сървъра, конфигурирайте го за стартиране при стартиране
  • LibVNCServer - Предоставя libvncclient
  • iPhone 2.0 Toolchain - Осигурява среда за изграждане (gcc, libgcc, ldid, libz са необходими, ако отидете по друг маршрут)
  • MobileTerminal - Така че можете да получите достъп до терминала на iPhone
  • wget - Така че можете да изтеглите изходния файл

Сега за изтегляне и изграждане на източника. Или отворете MobileTerminal или SSH в телефона си и след това направете следното:

  • wget
  • gcc -static -libgcc -o TouchClient TouchClient.c -lvncclient
  • ldid -S TouchClient

Последната стъпка, използвайки ldid, фалшифицира подписването на двоичния файл. Без него операционната система iPhone незабавно ще убие вашия процес.

За да стартирате програмата, стартирайте я от Mobile Terminal с:

./TouchClient

Това ще накара Veency да изскочи диалогов прозорец с въпрос дали искате да приемете VNC връзката. Натиснете Приемам.

Забелязах, че изпълнението на това от MobileTerminal поддържа програмата жива дори когато напуснете MobileTerminal, но би било по -добре да използвате launchd. Още не съм разбрал това.

Стъпка 11: Довършителни щрихи и бъдеща работа

За да завършите, свържете отново проводника от Pin 13 на пробива на iPhone към TX щифта (pin 1) на Arduino. Изключете USB кабела и превключете Arduino към външно захранване. Включете пробива на iPhone във вашия iPhone.

Ако:

  • TouchClient работи на вашия iPhone
  • Софтуерът PS2 работи на вашия Arduino
  • Клавиатурата е включена в конектора и конекторът е свързан правилно към Arduino
  • Veency работи и сте приели връзката от TouchClient
  • Нищо друго не е прецакано

Трябва да можете да пишете на клавиатурата PS/2 и тези натискания на клавиши да бъдат преведени на съответните клавиши на iPhone. Това ще работи навсякъде в iPhone, във всяко приложение или собствена функция.

Това решение не е перфектно, но е универсален подход за използване на Arduino за добавяне на поддръжка на PS/2 клавиатура към почти всичко, което може да чете прости серийни съобщения.

Бъдеща работа:

  • Съпоставянето на кода за сканиране може да бъде преместено изцяло в iPhone, а хардуерната част на този проект може да бъде пренастроена на много по -евтин и по -нисък разход на енергия чип, като PIC. Това би намалило цената на устройството с около 30 долара, въпреки че би изисквало PIC програмист.
  • Не всички специални ключове са правилно картографирани, но ако погледнете кода на Arduino и след това кода на iPhone, ще видите, че това е невероятно прост процес. Моля, публикувайте всички промени, които правите тук, като коментар!
  • Вместо да съм луд теленен хак, бих искал да видя това да се побере в плътно затворено заграждение за истинска преносимост. Всякакви идеи в този отдел ще бъдат оценени.
  • Бих искал да дам парола на TouchClient за Veency, така че да няма толкова досадно изскачащо меню Приемане/отхвърляне.
  • Този точен метод може да се използва за добавяне на Bluetooth клавиатура. Просто добавете Bluetooth-сериен модул към пробива на iPhone и продължете да използвате TouchClient & Veency.

Това е. Надявам се да ви е харесал Instructable! Очаквам вашите коментари. Поздрави, - awgh

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