Съдържание:
- Предпоставки
- Стъпка 1: Запоявайте пробива на iPhone - част 1
- Стъпка 2: Запоявайте пробива на iPhone - част 2
- Стъпка 3: Запоявайте конектора PS/2 - Част 1
- Стъпка 4: Запоявайте конектора PS/2 - Част 2
- Стъпка 5: Запоявайте заглавки на щифтове към потенциални клиенти
- Стъпка 6: (По избор) 9V батериен кабел
- Стъпка 7: Прикрепете PS/2 изводи към Arduino
- Стъпка 8: Прикрепете IPhone водещи към Arduino
- Стъпка 9: Кодът на Arduino
- Стъпка 10: Клиентската програма на iPhone
- Стъпка 11: Довършителни щрихи и бъдеща работа
Видео: Как да свържете PS/2 клавиатура към iPhone: 11 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:56
Въпреки че съм виждал много снимки на 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
След като пристигнат всичките ви съставки, запалете поялника и разгледайте бързо извода за конектора на 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
Поставих джъмпера между щифт 11 и щифт 16 на гърба на пробивната дъска. Може да бъде малко трудно да поставите всичко на щифт 16, затова препоръчвам първо да прокарате резистора през отвора, след това да увиете края на джъмперния проводник около него и да ги запоите, преди да отрежете резисторния проводник.
Друга тактика, която може да бъде полезна тук, е първо да калайдите краищата на жицата си, след това да натриете малко спойка върху дупката, към която искате да залепите жицата. Използвайте отстрани на поялника, за да затоплите петното си от спойка и ПЛАСНЕТЕ калайдисания край на жицата в петното. Извадете ютията, оставете петното да се охлади, след това пуснете кабела.
Стъпка 3: Запоявайте конектора PS/2 - Част 1
Няма начин, по който можете да преминете през номерацията на щифтовете на конектора PS/2, който да има какъвто и да е смисъл извън контекста на побърканите размишления на заседание на комитет. Не мислете много за номерата на пиновете, просто проверете снимката.
Тук ще използваме четири пина и ще ги свържем с Arduino. Заземяването ще бъде свързано към земята на Arduino, VCC ще бъде свързано към 5V, а пиновете за данни и часовник ще бъдат пренесени към два от цифровите щифтове на Arduino (3 и 4).
Стъпка 4: Запоявайте конектора PS/2 - Част 2
Долната част на конектора PS/2 е дори по -малко интуитивна от схемата за номериране. Препоръчвам да проверите тази снимка, но също така да проверите дали щифтовете в долната част на вашия конектор съвпадат с номерираните щифтове, които смятате, че правят, преди да запоявате нещо. Можете да проверите за свързаност с обикновен мултицет, като го настроите за измерване на съпротивлението и свържете едната сонда към щифта на дъното, а другата поставете в отвора. Ако изобщо има някакво съпротивление, тогава този щифт е свързан към този отвор.
Използвам зеления проводник за щифта на часовника, червения проводник за VCC, белия проводник за данни и черния проводник за маса.
Стъпка 5: Запоявайте заглавки на щифтове към потенциални клиенти
След като свържете конекторите, отстранете другите краища на проводниците и запоявайте кабелите към щифтовете. Това ще ви позволи лесно да ги включите в Arduino. Ако не сте получили заглавки на щифтове, можете да опитате внимателно да калайдите проводниците, за да ги накарате да останат по -добре в дупките за щифтове на Arduino.
Прикрепих няколко проводника към щифтовете на щифтове 11 и 13 на пробивната платка на iPhone. Черният проводник е към земята (щифт 11), а червеният проводник е към VCC (щифт 13). След това съм запоил заглавки на щифтове към проводниците за двата проводника от прекъсващата платка и четирите, идващи от конектора PS/2.
Стъпка 6: (По избор) 9V батериен кабел
Използвам Arduino Diecimila, тъй като тази програма не изисква по -добър чип. Това е показано с 9V батериен сноп от SparkFun за преносимост.
Стъпка 7: Прикрепете PS/2 изводи към Arduino
След това свързваме конектора PS/2 към Arduino. Свържете проводника на часовника към цифров пин 3, проводника за данни към цифров пин 4 и свържете заземяващия проводник към земята на Arduino и VCC проводника към 5V щифта.
Стъпка 8: Прикрепете 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
Препоръчано:
Как да инсталирате, стартирате и свържете контролер към емулатор: 7 стъпки
Как да инсталирате, стартирате и свържете контролер към емулатор: Били ли сте някога да сте седяли и да си спомняте детството си като млад геймър и понякога да желаете да можете да посетите онези стари скъпоценни камъни от миналото? Е, има приложение за това … по -конкретно има общност от геймъри, които правят програма
Как да свържете NodeMCU ESP8266 към MySQL база данни: 7 стъпки
Как да свържете NodeMCU ESP8266 към MySQL база данни: MySQL е широко използвана система за управление на релационни бази данни (RDBMS), която използва структуриран език за заявки (SQL). В един момент може да искате да качите сензорни данни на Arduino/NodeMCU в базата данни MySQL. В тази инструкция ще видим как да се свържем
Как да свържете Raspberry Pi към облака с помощта на Node.js: 7 стъпки
Как да свържете Raspberry Pi към облака с помощта на Node.js: Този урок е полезен за всеки, който иска да свърже Raspberry Pi към облака, особено към платформата AskSensors IoT, използвайки Node.js. Нямате Raspberry Pi? Ако в момента не притежавате Raspberry Pi, ще ви препоръчам да вземете Raspberry
Как да свържете Raspberry Pi 4 към лаптоп: 7 стъпки
Как да свържете Raspberry Pi 4 към лаптоп: Здравейте, след дни опити да разбера как да свържа Pi към лаптоп, защото нямах малък монитор, измислих това решение. Надяваме се, че това ще ви спаси от неприятности и ще ви свърши работа. Това е много просто ръководство за това как да се свържете
Как да свържете ESP8266 NodeMCU към IoT облака: 5 стъпки
Как да свържете ESP8266 NodeMCU към облака на IoT: Тази инструкция ви показва проста демонстрация на Internet of Things, използваща ESP8266 NodeMCU и онлайн услуга на IoT, наречена AskSensors. Демонстрираме ви как бързо да получите данни от ESP8266 HTTPS клиента и да ги начертаете в графика в AskSensors Io