Innehållsförteckning:

Så här ansluter du ett PS/2 -tangentbord till iPhone: 11 steg
Så här ansluter du ett PS/2 -tangentbord till iPhone: 11 steg

Video: Så här ansluter du ett PS/2 -tangentbord till iPhone: 11 steg

Video: Så här ansluter du ett PS/2 -tangentbord till iPhone: 11 steg
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Juli
Anonim
Hur man ansluter ett PS/2 -tangentbord till iPhone
Hur man ansluter ett PS/2 -tangentbord till iPhone
Hur man ansluter ett PS/2 -tangentbord till iPhone
Hur man ansluter ett PS/2 -tangentbord till iPhone
Hur man ansluter ett PS/2 -tangentbord till iPhone
Hur man ansluter ett PS/2 -tangentbord till iPhone

Även om jag har sett många bilder på PS/2 -tangentbord anslutna till iPhones på Internet, har ingen ännu publicerat en detaljerad instruktion om hur du får det att fungera själv. Fram till nu, det vill säga.

I den här instruktionsboken kommer jag att visa dig hur du kan göra ett PS/2 -tangentbord till iPhone -omvandlare, inklusive all maskin- och programvaruinstruktion.

Förkunskaper

  • Jailbroken iPhone - Den officiella SDK tillåter inte åtkomst till serieporten på grund av Elf Conspiracy, så jailbreak krävs. Allt du behöver veta om jailbreaking finns på iPhone Dev Team Blog.
  • Arduino Diecimila eller Dumilanove (eller klon), tillgänglig från många ställen. Denna howto förutsätter att din Arduino är monterad.
  • En iPod Breakout -bräda, som den här från Sparkfun. Alla liknande produkter fungerar.
  • En PS/2 (Din 6) kvinnlig tangentbordskontakt. Dra av en gammal dator eller köp en från Digikey eller liknande leverantör.
  • Tråd, gärna flera färger och cirka 24 gauge. Jag använder en trådrulle från RadioShack på bilderna nedan.
  • En 500k motstånd. Jag använder ett axiellt genomgående hålmotstånd från RadioShack, men du kan också lägga till detta i din Digikey-beställning.
  • Lödkolv och löd. Om du inte vet hur du löd kan du lära dig här och här.
  • (Valfritt) Pin Headers, som dessa. Jag bryter av dessa och lödder dem till trådändarna, så att de ansluts fint till Arduino.
  • (Valfritt) Sweet 9v batterisele så att din Arduino blir bärbar tillgänglig från Maker Store.
  • (Valfritt) Stereo -hörlursuttag från RadioShack eller Digikey.

Steg 1: Löd IPhone Breakout - Del 1

Löd iPhone Breakout - Del 1
Löd iPhone Breakout - Del 1

När alla dina ingredienser har kommit, elda upp lödkolven och ta en snabb titt på iPod Connector Pin-Out.

Vi kommer att använda fyra av dessa stift för tangentbordet: 11, 13, 16 och 21. Definitionen av stift 21 säger att vi måste placera ett 500k -motstånd mellan stift 21 och jord för att möjliggöra seriell kommunikation till iPhone, så Vi kommer att hålla ett motstånd mellan stift 21 och stift 16, som är den seriella marken. Vi kommer också att lägga till stifthuvuden till stift 11 och 13, som kommer att fungera som TX- och RX -stiften för seriell kommunikation. Eftersom vi ENDAST kommer att skicka till iPhone använder vi bara iPhone RX -stift, så vi lägger också till en bit tråd för att ansluta stift 11, den oanvända TX -stiftet, direkt till marken vid stift 16.

Du kan också välja att lägga till stero-hörlursuttaget till stift 2, 3 och 4 just nu och det kommer att fungera när breakout är inkopplad. Detta har ingenting att göra med tangentbordet, men om du har en 1G iPhone med den lama icke- standard hörlursuttag, detta kommer att fixa det.

Steg 2: Löd IPhone Breakout - Del 2

Löd iPhone Breakout - Del 2
Löd iPhone Breakout - Del 2

Jag har satt bygeln mellan stift 11 och stift 16 på baksidan av utbrottskortet. Det kan vara lite knepigt att montera allt på stift 16, så jag rekommenderar att först sticka motståndet genom hålet, sedan svepa änden av bygeln runt det och lödda ihop dem innan du klipper av motståndsledningen.

En annan taktik som kan vara användbar här är att först tina ändarna på din tråd och sedan klinga lite lödning på hålet du vill hålla tråden vid. Använd sidan av lödkolven för att värma upp din lödkula och SLIDE den förslutna änden av tråden i klumpen. Ta bort strykjärnet, låt klumpen svalna och släpp sedan tråden.

Steg 3: Löd PS/2 -kontakten - del 1

Löd PS/2 -kontakten - Del 1
Löd PS/2 -kontakten - Del 1

Det finns ingen väg du kan ta genom stiftnumreringen på PS/2 -kontakten som ger någon form av mening utanför kontexten med de förvanskade krångelarna vid ett kommittémöte. Tänk inte för hårt på pin -numren, bara kolla in bilden.

Vi kommer att använda fyra stift här och ansluta dem alla till Arduino. Marken kommer att vara ansluten till jord på Arduino, VCC kommer att vara ansluten till 5V, och data- och klockstiften kommer att överföras till två av Arduinos digitala stift (3 och 4).

Steg 4: Löd PS/2 -kontakten - del 2

Löd PS/2 -kontakten - Del 2
Löd PS/2 -kontakten - Del 2

Botten på PS/2 -kontakten är ännu mindre intuitiv än numreringsschemat. Jag rekommenderar att du kontrollerar den här bilden, men också att verifiera att stiften på undersidan av kontakten matchar de numrerade stiften du tror att de gör innan du lödar någonting. Du kan kontrollera anslutning med en vanlig multimeter genom att ställa in den för att mäta motstånd och ansluta en sond till stiftet på botten och sticka den andra i hålet. Om det finns något motstånd alls, är den stiftet anslutet till det hålet.

Jag använder den gröna tråden för klockstiftet, den röda tråden för VCC, den vita tråden för data och den svarta tråden för jord.

Steg 5: Lödstift till huvud

Lödstift till huvud
Lödstift till huvud

När du har anslutit kontakterna, ta bort de andra ändarna av ledningarna och löd kablarna till stifthuvuden. Detta låter dig enkelt ansluta dem till Arduino. Om du inte fick stifthuvudena kan du försöka tända trådarna noggrant för att få dem att stanna bättre i Arduino -stifthålen.

Jag fäst några ledningar till stifthuvudena på stift 11 och 13 på iPhone -utbrottskortet. Den svarta tråden är till jord (stift 11) och den röda tråden är till VCC (stift 13). Jag har sedan lödt stifthuvuden till ledningarna för de två ledningarna från utbrottskortet och de fyra som kommer från PS/2 -kontakten.

Steg 6: (Valfritt) 9V batterisele

(Valfritt) 9V batterisele
(Valfritt) 9V batterisele

Jag använder en Arduino Diecimila, eftersom det här programmet inte kräver ett bättre chip. Detta visas med en 9V batterisele från SparkFun för bärbarhet.

Steg 7: Anslut PS/2 -elektroder till Arduino

Fäst PS/2 -elektroder till Arduino
Fäst PS/2 -elektroder till Arduino

Därefter ansluter vi PS/2 -kontakten till Arduino. Anslut klockkabeln till digital stift 3, datakabeln till digital stift 4 och anslut jordkabeln till jord på Arduino och VCC -kabeln till 5V stift.

Steg 8: Anslut IPhone Leads till Arduino

Anslut IPhone Leads till Arduino
Anslut IPhone Leads till Arduino

För att ansluta iPhone -breakout, anslut helt enkelt kabeln från Pin 13 till TX Pin på Arduino (Digital Pin 1) och anslut sedan kabeln från Pin 11 till en tillgänglig Ground på Arduino.

VIKTIGT: För att undvika problem med att blinka Arduino, koppla bort TX -stiftet på Arduino innan du blinkar. Mer om detta senare. Efter det är all lödning klar. Nu är det dags att gå vidare till programmeringen av Arduino!

Steg 9: Arduino -koden

Arduino -koden
Arduino -koden

Arduino -programvaran klockar ut data från tangentbordet, översätter tangentbordets skanningskoder till nyckelkoder och hanterar tryck på skift- och Caps Lock -tangenterna.

Hämta och installera först Arduino -utvecklingsmiljön härifrån. Följ anvisningarna på webbplatsen, men var noga med att installera lämplig FTDI -drivrutin från drivrutinkatalogen i Arduino -installationen.

Därefter behöver du ett extra Arduino -bibliotek för PS/2. Ladda ner filen "ps2.zip" från den här sidan. För att installera, packa ner nedladdningen till en mapp och flytta den mappen till en underkatalog av "hårdvara/bibliotek" -katalogen under din Arduino -installation. På OSX kan du gå till Arduino.app och "Visa paketinnehåll" först.

När Arduino och ps2 -biblioteket har installerats kan du ladda ner källkoden härifrån. Öppna Arduino -programmet, skapa ett nytt projekt och klistra in källkoden i det. Spara och gå sedan till Sketch-> Verify/Compile för att se till att det bygger. Om det inte gör det, se till att biblioteket är korrekt installerat.

På en sida noterade jag faktiskt absolut ingen kod för detta projekt. Jag började med att försöka använda PS2KeyboardExt2 -biblioteket, men det biblioteket är baserat på avbrott och medan det kan köras på en Arduino som också talar seriell med 9600 bps, när jag vred serien upp till 19200 bps, slutade avbrotten att fungera i en stabilt sätt. Så jag tog bort den fina koden från PS2KeyboardExt2, inklusive nyckeldefinitionerna och den sköna hanteringen av skift och caps lock och omarbetade den till ett program som inte använder avbrott och använder ett annat, mycket enklare PS/2 -bibliotek. Detta gör att den kan hantera 19200 bps -serien på ett tillförlitligt sätt.

Nu, för att programmera Arduino!

Koppla bort ledningen till Pin 1 på Arduino. Anslut sedan Arduino till din dator via USB -kabel. Du kan behöva starta om Arduino -programmet så att det upptäcker den nya USB -serienheten korrekt. Ladda den sparade skissen med källan och tryck sedan på uppladdningsknappen för att programmera Arduino.

När programmet har laddats upp ansluter du tangentbordet till PS/2 -kontakten. Du borde se lamporna blinka. Du kan öppna Serial Monitor i Arduino -programmet och försöka skriva några bokstäver på tangentbordet. Du bör se att dessa bokstäver visas i Serial Monitor. Försök att slå på och av Caps Lock, lampan på tangentbordet ska tändas och släckas och tecknen ska komma ut korrekt med stora bokstäver.

Steg 10: IPhone -klientprogrammet

Nu för att konfigurera iPhone -klientprogrammet.

För klientkoden använder jag ett program som jag hittade på Anthony Prays sida på Google Code. Detta program läser inmatning från serieporten vid 19200 bps och injicerar sedan lämplig tangentbordshändelse med ett VNC -klientbibliotek. Jag har gjort en lokal text-endast spegel av källan här, som enkelt kan hämtas med wget.

Eftersom vi kommer att injicera knapptryckningar av VNC måste du också köra en VNC -server på iPhone. Vi kommer att använda Veency (vilket är fantastiskt och du bör installera ändå).

Gå till Cydia eller Icy och installera följande paket:

  • Veency - Tillhandahåller VNC -servern, konfigurera den för att köras vid start
  • LibVNCServer - Ger libvncclient
  • iPhone 2.0 Toolchain - Ger en byggmiljö (gcc, libgcc, ldid, libz krävs om du går en annan väg)
  • MobileTerminal - Så du kan komma åt iPhone -terminalen
  • wget - Så du kan dra ner källfilen

Nu för att ladda ner och bygga källan. Öppna antingen MobileTerminal eller SSH i din telefon och gör sedan följande:

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

Det sista steget, med hjälp av ldid, förfalskar signering av binären. Utan det kommer iPhone OS att döda din process omedelbart.

För att starta programmet, kör det från Mobile Terminal med:

./TouchClient

Detta kommer att få Veency att öppna en dialogruta som frågar om du vill acceptera VNC -anslutningen. Hit Acceptera.

Jag har märkt att att köra detta från MobileTerminal håller programmet vid liv även när du lämnar MobileTerminal, men det skulle vara bättre att använda launchd. Jag har inte kommit på det ännu.

Steg 11: Finisher och framtida arbete

För att avsluta, återanslut kabeln från Pin 13 på iPhone -breakout till TX -pin (pin 1) på Arduino. Koppla bort USB -kabeln och koppla Arduino till extern ström. Anslut iPhone -utbrottet till din iPhone.

Om:

  • TouchClient körs på din iPhone
  • PS2 -programvaran körs på din Arduino
  • Tangentbordet är anslutet till kontakten och kontakten är ansluten till Arduino korrekt
  • Veency körs och du har accepterat anslutningen från TouchClient
  • Inget annat är trasigt

Du bör kunna skriva på PS/2 -tangentbordet och få dessa tangenttryck översatta till lämpliga iPhone -tangenttryckningar. Detta kommer att fungera var som helst i iPhone, i vilken app eller inbyggd funktion som helst.

Denna lösning är inte perfekt, men det är en allmän metod för att använda Arduino för att lägga till PS/2-tangentbordstöd till nästan allt som kan läsa enkla seriella meddelanden.

Framtida arbete:

  • Skanningskodskartläggningen kan flyttas helt till iPhone, och hårdvarudelen i detta projekt kan återimplementeras på ett mycket billigare och lägre energiförbrukningschip, som en PIC. Detta skulle minska kostnaden för enheten med cirka $ 30, även om det skulle kräva en PIC -programmerare.
  • Alla specialnycklar är inte korrekt mappade, men om du tittar i Arduino -koden och sedan på iPhone -koden ser du att det här är en otroligt enkel process. Lägg upp alla ändringar du gör här som en kommentar!
  • I stället för att vara ett galet trådhack skulle jag vilja se detta passa in i ett litet litet hölje för verklig bärbarhet. Alla idéer på denna avdelning skulle uppskattas.
  • Jag skulle vilja ge TouchClient ett lösenord för Veency så att det inte finns det irriterande popup-fönstret Acceptera/Avvisa.
  • Denna exakta metod kan användas för att lägga till ett Bluetooth -tangentbord. Lägg helt enkelt till en Bluetooth-seriell modul till iPhone-utbrottet och fortsätt använda TouchClient & Veency.

Det är allt. Jag hoppas att du gillade Instructable! Ser fram emot dina kommentarer. Hälsningar, - awgh

Rekommenderad: