İçindekiler:

Bir PS/2 Klavyesini IPhone'a Bağlama: 11 Adım
Bir PS/2 Klavyesini IPhone'a Bağlama: 11 Adım

Video: Bir PS/2 Klavyesini IPhone'a Bağlama: 11 Adım

Video: Bir PS/2 Klavyesini IPhone'a Bağlama: 11 Adım
Video: iPhone ile Bluetooth klavye nasıl bağlanır? 2024, Kasım
Anonim
PS/2 Klavyesini iPhone'a Bağlama
PS/2 Klavyesini iPhone'a Bağlama
PS/2 Klavyesini iPhone'a Bağlama
PS/2 Klavyesini iPhone'a Bağlama
PS/2 Klavyesini iPhone'a Bağlama
PS/2 Klavyesini iPhone'a Bağlama

İnternette iPhone'lara takılı birçok PS/2 klavye resmini görmeme rağmen, henüz kimse bunun nasıl çalıştırılacağına dair ayrıntılı bir açıklama yayınlamadı. Şimdiye kadar, yani.

Bu Eğitilebilir Kitapta, tüm donanım ve yazılım talimatları da dahil olmak üzere, bir PS/2 klavyeden iPhone'a dönüştürücüyü nasıl yapabileceğinizi göstereceğim.

Önkoşullar

  • Jailbroken iPhone – Resmi SDK, Elf Conspiracy nedeniyle seri bağlantı noktasına erişime izin vermiyor, bu nedenle jailbreak gerekiyor. Jailbreak hakkında bilmeniz gereken her şey iPhone Geliştirme Ekibi Blogunda.
  • Arduino Diecimila veya Dumilanove (veya klonu), birçok yerden temin edilebilir. Bu nasıl, Arduino'nuzun monte edildiğini varsayar.
  • Sparkfun'daki buna benzer bir iPod Breakout panosu. Herhangi bir benzer ürün işe yarayacaktır.
  • Bir Dişi PS/2 (Din 6) Klavye konektörü. Eski bir bilgisayardan bir tane alın veya Digikey veya benzeri bir satıcıdan satın alın.
  • Tel, tercihen birkaç renk ve yaklaşık 24 ayar. Aşağıdaki resimlerde RadioShack'ten bir makara kullanıyorum.
  • Bir 500k Direnç. RadioShack'ten eksenel bir açık delik direnci kullanıyorum, ancak bunu Digikey siparişinize de ekleyebilirsiniz.
  • Havya ve Lehim. Lehim yapmayı bilmiyorsanız buradan ve buradan öğrenebilirsiniz.
  • (İsteğe bağlı) Pin Başlıkları, bunun gibi. Bunları koparıp kabloların uçlarına lehimliyorum, böylece Arduino'ya güzel bir şekilde takılıyorlar.
  • (İsteğe bağlı) Tatlı 9v Pil takımı, böylece Arduino'nuz Maker Store'dan taşınabilir hale gelir.
  • (İsteğe bağlı) RadioShack veya Digikey'den Stereo Kulaklık Jakı.

Adım 1: IPhone Breakout'u Lehimleyin - Bölüm 1

IPhone Breakout'u Lehimleyin - Bölüm 1
IPhone Breakout'u Lehimleyin - Bölüm 1

Tüm malzemeleriniz geldiğinde, havyayı ateşleyin ve iPod Connector Pin-Out'a hızlıca bakın.

Klavye için bu pinlerden dördünü kullanacağız: 11, 13, 16 ve 21. Pin 21'in tanımı, iPhone ile seri iletişimi sağlamak için pin 21 ile toprak arasına 500k direnç yerleştirmemiz gerektiğini söylüyor. seri topraklama olan pin 21 ve pin 16 arasına bir direnç yapıştıracağız. Ayrıca, seri iletişim için TX ve RX pinleri olarak görev yapacak pin başlıkları 11 ve 13'e ekleyeceğiz. YALNIZCA iPhone'a göndereceğimiz için, yalnızca iPhone'un RX pimini kullanıyoruz, bu nedenle kullanılmayan TX pimi olan pim 11'i doğrudan pim 16'da toprağa bağlamak için bir parça tel ekleyeceğiz.

Ayrıca isteğe bağlı olarak stereo kulaklık jakını şu anda 2, 3 ve 4 numaralı pimlere ekleyebilirsiniz ve ara bağlantı her takıldığında çalışır. Bunun klavyeyle ilgisi yoktur, ancak topal olmayan 1G iPhone'unuz varsa - standart kulaklık jakı, bu sorunu çözecektir.

2. Adım: IPhone Breakout'u Lehimleyin - Bölüm 2

IPhone Breakout'u Lehimleyin - Bölüm 2
IPhone Breakout'u Lehimleyin - Bölüm 2

Bağlantı kablosunu koparma panosunun arkasındaki pim 11 ile pim 16 arasına yerleştirdim. Her şeyi pim 16'ya takmak biraz zor olabilir, bu yüzden önce direnci delikten geçirmenizi, ardından atlama telinin ucunu etrafına sarmanızı ve direnç ucunu kesmeden önce bunları birbirine lehimlemenizi öneririm.

Burada işinize yarayabilecek bir diğer taktik, önce telinizin uçlarını kalaylamak, ardından teli yapıştırmak istediğiniz deliğe biraz lehim yapmaktır. Lehim bloğunu ısıtmak için havyanın kenarını kullanın ve telin kalaylı ucunu bloğun içine KAYDIRIN. Ütüyü çıkarın, bloğu soğumaya bırakın, ardından teli bırakın.

Adım 3: PS/2 Konektörünü Lehimleyin - Bölüm 1

PS/2 Konektörünü Lehimleyin - Bölüm 1
PS/2 Konektörünü Lehimleyin - Bölüm 1

PS/2 Konektörünün pin numaralandırmasından geçebileceğiniz, bir komite toplantısının düzensiz gevezelikleri bağlamı dışında herhangi bir anlam ifade eden bir yol yoktur. Pin numaraları hakkında fazla düşünmeyin, sadece resme bakın.

Burada dört pinden faydalanacağız ve hepsini Arduino'ya bağlayacağız. Toprak, Arduino'da Ground'a bağlanacak, VCC 5V'a bağlanacak ve Data ve Clock pinleri Arduino'nun dijital pinlerinden ikisine (3 ve 4) getirilecek.

Adım 4: PS/2 Konektörünü Lehimleyin - Bölüm 2

PS/2 Konektörünü Lehimleyin - Bölüm 2
PS/2 Konektörünü Lehimleyin - Bölüm 2

PS/2 Konektörün alt kısmı, numaralandırma şemasından bile daha az sezgiseldir. Bu resmi kontrol etmenizi, ancak herhangi bir şeyi lehimlemeden önce konektörünüzün altındaki pinlerin, olduğunu düşündüğünüz numaralı pinlerle eşleştiğini doğrulamanızı öneririm. Direnci ölçmek için ayarlayarak ve bir probu alttaki pime bağlayarak ve diğerini deliğe yapıştırarak normal bir multimetre ile bağlantıyı kontrol edebilirsiniz. Herhangi bir direnç varsa, o pim o deliğe bağlanır.

Saat pimi için Yeşil kabloyu, VCC için Kırmızı kabloyu, Veri için Beyaz kabloyu ve toprak için Siyah kabloyu kullanıyorum.

Adım 5: Pin Başlıklarını Lead'lere Lehimleme

Lehim Pim Başlıklarını Lead'lere
Lehim Pim Başlıklarını Lead'lere

Konektörleri bağladıktan sonra, tellerin diğer uçlarını soyun ve uçları pin başlıklarına lehimleyin. Bu, onları kolayca Arduino'ya takmanıza izin verecektir. Pin başlıklarını almadıysanız, Arduino pin deliklerinde daha iyi kalmalarını sağlamak için telleri dikkatlice kalaylamayı deneyebilirsiniz.

iPhone devre kartının 11 ve 13 numaralı pinlerindeki pin başlıklarına bazı kablolar bağladım. Siyah kablo Toprak'a (pim 11) ve Kırmızı kablo VCC'ye (pim 13). Ardından, devre kartından gelen iki kablonun ve PS/2 konektöründen gelen dördünün uçlarına pin başlıklarını lehimledim.

Adım 6: (Opsiyonel) 9V Pil Donanımı

(Opsiyonel) 9V Pil Demeti
(Opsiyonel) 9V Pil Demeti

Bu program daha iyi bir çip gerektirmediğinden Arduino Diecimila kullanıyorum. Bu, taşınabilirlik için SparkFun'dan bir 9V pil takımı ile gösterilmiştir.

Adım 7: PS/2 Lead'lerini Arduino'ya Bağlayın

PS/2 Lead'lerini Arduino'ya Bağlayın
PS/2 Lead'lerini Arduino'ya Bağlayın

Ardından, PS/2 Konnektörünü Arduino'ya bağlarız. Saat kablosunu Dijital Pim 3'e, Veri kablosunu Dijital Pim 4'e bağlayın ve Topraklama kablosunu Arduino'daki Toprağa ve VCC kablosunu 5V pime bağlayın.

Adım 8: IPhone Lead'lerini Arduino'ya Bağlayın

IPhone Lead'lerini Arduino'ya Bağlayın
IPhone Lead'lerini Arduino'ya Bağlayın

iPhone koparmasını bağlamak için, Pin 13'ten gelen ucu Arduino'daki (Dijital Pin 1) TX Pinine bağlayın ve ardından Pin 11'den gelen ucu Arduino'daki mevcut herhangi bir Ground'a bağlayın.

ÖNEMLİ: Arduino'nun yanıp sönmesiyle ilgili sorunlardan kaçınmak için, lütfen yanıp sönmeden önce Arduino'daki TX Pininin bağlantısını kesin. Daha sonra bunun hakkında daha fazla bilgi. Bundan sonra tüm lehimleme yapılır. Şimdi Arduino'yu programlamaya geçme zamanı!

Adım 9: Arduino Kodu

Arduino Kodu
Arduino Kodu

Arduino yazılımı, klavyeden veri saatini alır, klavye tarama kodlarını tuş kodlarına çevirir ve shift ve caps lock tuşlarına basışları yönetir.

Öncelikle, Arduino geliştirme ortamını buradan indirin ve kurun. Sitedeki yönergeleri izleyin, ancak Arduino kurulumunda sürücüler dizininden uygun FTDI sürücüsünü kurduğunuzdan emin olun.

Ardından, PS/2 için ek bir Arduino kitaplığına ihtiyacınız olacak. Bu sayfadan “ps2.zip” dosyasını indirin. Yüklemek için indirmeyi bir klasöre açın ve o klasörü Arduino kurulumunuz altındaki “donanım/kütüphaneler” dizininin bir alt dizini olacak şekilde taşıyın. OSX'te önce Arduino.app'a gidebilir ve "Paket İçeriğini Göster" yapabilirsiniz.

Arduino ve ps2 kütüphanesi kurulduktan sonra kaynak kodunu buradan indirin. Arduino uygulamasını açın, yeni bir proje oluşturun ve kaynak kodunu içine yapıştırın. Kaydedin ve ardından oluşturulduğundan emin olmak için Sketch->Verify/Compile'a gidin. Olmazsa, kitaplığın doğru şekilde kurulduğundan emin olun.

Bir yandan not olarak, aslında bu proje için kesinlikle hiçbir kod yazmadım. PS2KeyboardExt2 kitaplığını kullanmaya başladım, ancak bu kitaplık kesintilere dayanıyor ve 9600 bps'de seri konuşan bir Arduino'da çalışabilirken, seriyi 19200 bps'ye yükselttiğimde, kesintiler çalışmayı durdurdu. istikrarlı yol. Bu yüzden, anahtar tanımları ve vardiya ve büyük harf kilidinin güzel kullanımı da dahil olmak üzere, PS2KeyboardExt2'nin tüm güzel kodunu çıkardım ve kesme kullanmayan ve farklı, çok daha basit bir PS/2 kitaplığından yararlanan bir programda yeniden çalıştım.. Bu, 19200 bps seriyi güvenilir bir şekilde işleme yeteneğine sahip olmasını sağlar.

Şimdi, Arduino'yu programlamak için!

Arduino'daki Pin 1'e giden kabloyu ayırın. Ardından Arduino'yu USB kablosuyla bilgisayarınıza bağlayın. Yeni USB seri cihazını doğru bir şekilde algılaması için Arduino uygulamasını yeniden başlatmanız gerekebilir. Kaydedilen çizimi kaynakla yükleyin ve ardından Arduino'yu programlamak için Yükle düğmesine basın.

Program yüklendikten sonra klavyeyi PS/2 konektörüne takın. Işıkların yanıp söndüğünü görmelisiniz. Arduino uygulamasında Seri Monitörü açabilir ve klavyede bazı harfleri yazmayı deneyebilirsiniz. Bu harflerin Seri Monitörde göründüğünü görmelisiniz. Caps Lock'u açıp kapatmayı deneyin, klavyedeki ışık açılıp kapanmalı ve karakterler doğru büyük harfle çıkmalıdır.

Adım 10: IPhone İstemci Programı

Şimdi iPhone istemci programını kurmak için.

İstemci kodu için Anthony Pray'in Google Code sayfasında bulduğum bir program kullanıyorum. Bu program, 19200 bps'de seri bağlantı noktasından girişi okur ve ardından bir VNC istemci kitaplığı kullanarak uygun klavye olayını enjekte eder. Buradaki kaynağın, wget ile kolayca getirilebilecek yerel bir salt metin aynası yaptım.

VNC tarafından tuşlara basılacağından, iPhone'da bir VNC Sunucusu çalıştırmanız gerekecek. Veency kullanacağız (ki bu harika ve yine de yüklemelisiniz).

Cydia veya Icy'ye gidin ve aşağıdaki paketleri kurun:

  • Veency - VNC Sunucusunu sağlar, başlangıçta çalışacak şekilde yapılandırır
  • LibVNCServer - libvncclient sağlar
  • iPhone 2.0 Toolchain - Bir yapı ortamı sağlar (başka bir rotaya giderseniz gcc, libgcc, ldid, libz gereklidir)
  • MobileTerminal - Böylece iPhone terminaline erişebilirsiniz
  • wget - Böylece kaynak dosyayı aşağı çekebilirsiniz

Şimdi kaynağı indirmek ve oluşturmak için. Telefonunuza MobileTerminal veya SSH'yi açın ve ardından aşağıdakileri yapın:

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

ldid kullanan son adım, ikili dosyayı imzalamayı taklit eder. Onsuz, iPhone işletim sistemi işleminizi hemen öldürür.

Programı başlatmak için Mobil Terminal'den şununla çalıştırın:

./TouchClient

Bu, Veency'nin VNC bağlantısını kabul etmek isteyip istemediğinizi soran bir iletişim kutusu açmasına neden olur. Kabul Et'e basın.

Bunu MobileTerminal'den çalıştırmanın, MobileTerminal'den ayrıldığınızda bile programı canlı tuttuğunu fark ettim, ancak launchd kullanmak daha iyi olur. Bunu henüz anlayamadım.

Adım 11: Son Dokunuşlar ve Gelecekteki Çalışmalar

Bitirmek için, iPhone koparmadaki Pin 13'ten gelen ucu Arduino'daki TX pinine (pim 1) yeniden bağlayın. USB kablosunu çıkarın ve Arduino'yu harici güce geçirin. iPhone koparmayı iPhone'unuza takın.

Eğer:

  • TouchClient iPhone'unuzda çalışıyor
  • PS2 yazılımı Arduino'nuzda çalışıyor
  • Klavye konektöre takılı ve konektör Arduino'ya doğru şekilde bağlanmış
  • Veency çalışıyor ve TouchClient bağlantısını kabul ettiniz
  • Başka bir şey berbat değil

PS/2 klavyesinde yazabilmeli ve bu tuş vuruşlarını uygun iPhone tuş vuruşlarına çevirebilmelisiniz. Bu, iPhone'un herhangi bir yerinde, herhangi bir uygulamada veya yerel özellikte çalışacaktır.

Bu çözüm mükemmel değil, ancak basit seri mesajları okuyabilen hemen hemen her şeye PS/2 klavye desteği eklemek için Arduino'yu kullanmaya yönelik genel amaçlı bir yaklaşım.

Gelecek iş:

  • Tarama kodu eşlemesi tamamen iPhone'a taşınabilir ve bu projenin donanım kısmı, PIC gibi çok daha ucuz ve daha düşük güç tüketimli bir çip üzerinde yeniden uygulanabilir. Bu, bir PIC programcısı gerektirmesine rağmen, birimin maliyetini yaklaşık 30 $ azaltacaktır.
  • Tüm özel tuşlar doğru şekilde eşlenmemiştir, ancak Arduino koduna ve ardından iPhone koduna bakarsanız, bunun inanılmaz derecede basit bir işlem olduğunu göreceksiniz. Lütfen yaptığınız değişiklikleri buraya yorum olarak gönderin!
  • Çılgın bir kablo kesmek yerine, bunun gerçek taşınabilirlik için küçük bir kasaya sığdığını görmek isterim. Bu bölümdeki herhangi bir fikir takdir edilecektir.
  • TouchClient'e Veency için bir parola vermek istiyorum, böylece can sıkıcı Kabul Et/Reddet açılır penceresi olmaz.
  • Bu kesin yöntem, bir Bluetooth klavye eklemek için kullanılabilir. iPhone dağıtımına bir Bluetooth-Seri modülü ekleyin ve TouchClient & Veency'yi kullanmaya devam edin.

Bu kadar. Umarım Eğitilebilirliği beğenmişsinizdir! Yorumlarınızı bekliyorum. Saygılarımızla, - awgh

Önerilen: