Innholdsfortegnelse:

Slik kobler du et PS/2 -tastatur til iPhone: 11 trinn
Slik kobler du et PS/2 -tastatur til iPhone: 11 trinn

Video: Slik kobler du et PS/2 -tastatur til iPhone: 11 trinn

Video: Slik kobler du et PS/2 -tastatur til iPhone: 11 trinn
Video: Собаку бросили в лесу с коробкой макарон. История собаки по имени Ринго. 2024, November
Anonim
Slik kobler du et PS/2 -tastatur til iPhone
Slik kobler du et PS/2 -tastatur til iPhone
Slik kobler du et PS/2 -tastatur til iPhone
Slik kobler du et PS/2 -tastatur til iPhone
Slik kobler du et PS/2 -tastatur til iPhone
Slik kobler du et PS/2 -tastatur til iPhone

Selv om jeg har sett mange bilder av PS/2 -tastaturer koblet til iPhones på Internett, har ingen ennå publisert en detaljert veiledning om hvordan du får dette til å fungere selv. Inntil nå, altså.

I denne instruksjonsboken vil jeg vise deg hvordan du kan lage et PS/2 -tastatur til iPhone -omformer, inkludert all maskinvare- og programvareinstruksjoner.

Forutsetninger

  • Jailbroken iPhone - Den offisielle SDK tillater ikke tilgang til serieporten på grunn av Elf Conspiracy, så jailbreak er påkrevd. Alt du trenger å vite om jailbreaking er på iPhone Dev Team Blog.
  • Arduino Diecimila eller Dumilanove (eller klon), tilgjengelig fra mange steder. Denne måten forutsetter at din Arduino er satt sammen.
  • Et iPod Breakout -brett, som dette fra Sparkfun. Ethvert lignende produkt vil fungere.
  • En kvinnelig PS/2 (Din 6) tastaturkontakt. Trekk en av en gammel datamaskin eller kjøp en fra Digikey eller lignende leverandør.
  • Tråd, gjerne flere farger og ca 24 gauge. Jeg bruker en tråd fra RadioShack på bildene nedenfor.
  • En 500k motstand. Jeg bruker en aksial gjennomgående hullmotstand fra RadioShack, men du kan også legge dette til i Digikey-bestillingen din.
  • Loddejern og loddetinn. Hvis du ikke vet hvordan du skal lodde, kan du lære her og her.
  • (Valgfritt) Pin Headers, som disse. Jeg bryter disse av og lodder dem til enden av ledningene, slik at de plugger pent inn i Arduino.
  • (Valgfritt) Søt 9v batterisele slik at Arduino blir bærbar tilgjengelig fra Maker Store.
  • (Valgfritt) Stereohodetelefonkontakt fra RadioShack eller Digikey.

Trinn 1: Lodd iPhone Breakout - Del 1

Lodd iPhone Breakout - Del 1
Lodd iPhone Breakout - Del 1

Når alle ingrediensene dine kommer, må du fyre opp loddejernet og ta en rask titt på iPod-kontakten Pin-Out.

Vi skal bruke fire av disse pinnene for tastaturet: 11, 13, 16 og 21. Definisjonen av pinne 21 sier at vi må plassere en 500k motstand mellom pinne 21 og bakken for å muliggjøre seriell kommunikasjon til iPhone, så Vi skal stikke en motstand mellom pin 21 og pin 16, som er den serielle bakken. Vi kommer også til å legge til pinnehoder til pinne 11 og 13, som vil fungere som TX- og RX -pinnene for seriell kommunikasjon. Siden vi KUN sender til iPhone, bruker vi bare iPhone RX -pinnen, så vi legger også til et stykke ledning for å koble pin 11, den ubrukte TX -pinnen, direkte til bakken ved pin 16.

Du kan også eventuelt legge til stero hodetelefonkontakten til pinne 2, 3 og 4 akkurat nå, og det vil fungere når breakout er plugget inn. Dette har ingenting å gjøre med tastaturet, men hvis du har en 1G iPhone med den lamme ikke- standard hodetelefonkontakt, vil dette fikse det.

Trinn 2: Lodd iPhone Breakout - Del 2

Lodd iPhone Breakout - Del 2
Lodd iPhone Breakout - Del 2

Jeg har satt hopperen mellom pin 11 og pin 16 på baksiden av breakout -brettet. Det kan være litt vanskelig å montere alt på pinne 16, så jeg anbefaler først å stikke motstanden gjennom hullet, deretter vikle enden av jumperwiren rundt den og lodde dem sammen før du klipper av motstandsledningen.

En annen taktikk som kan være nyttig her, er å først tinne endene på tråden din, og deretter tappe litt loddetinn på hullet du vil feste tråden til. Bruk siden av loddejernet for å varme opp kluten med loddetinn og SLIDE den tinnede enden av ledningen inn i klossen. Fjern strykejernet, la kluten avkjøles, og slipp deretter ledningen.

Trinn 3: Lodd PS/2 -kontakten - del 1

Lodd PS/2 -kontakten - del 1
Lodd PS/2 -kontakten - del 1

Det er ingen vei du kan gå gjennom pin -nummereringen til PS/2 -kontakten som gir noen form for mening utenfor konteksten for de vanvittige sammenbruddene i et komitémøte. Ikke tenk for hardt på pin -tallene, bare sjekk bildet.

Vi skal bruke fire pins her og koble dem alle til Arduino. Ground vil være kablet til Ground på Arduino, VCC vil være kablet til 5V, og Data og Clock pins vil bli overført til to av Arduino's digitale pins (3 og 4).

Trinn 4: Lodd PS/2 -kontakten - del 2

Lodd PS/2 -kontakten - del 2
Lodd PS/2 -kontakten - del 2

Bunnen av PS/2 -kontakten er enda mindre intuitiv enn nummereringsopplegget. Jeg anbefaler å sjekke dette bildet, men også å kontrollere at pinnene på undersiden av kontakten samsvarer med de nummererte pinnene du tror de gjør før du lodder noe. Du kan sjekke om det er tilkobling med et vanlig multimeter ved å sette det til å måle motstand og koble den ene sonden til pinnen på bunnen og stikke den andre i hullet. Hvis det er motstand i det hele tatt, er den pinnen koblet til hullet.

Jeg bruker den grønne ledningen for klokkestiften, den røde ledningen for VCC, den hvite ledningen for data og den svarte ledningen for jord.

Trinn 5: Loddepinnehoder til elektroder

Loddetapphoder til elektroder
Loddetapphoder til elektroder

Når du har koblet til kontaktene, fjerner du de andre endene av ledningene og lodder ledningene til pinnehoder. Dette lar deg enkelt koble dem til Arduino. Hvis du ikke fikk pinnehodene, kan du prøve å tinne ledningene forsiktig slik at de blir bedre i Arduino -pinnehullene.

Jeg festet noen ledninger til pinnehodene på pinne 11 og 13 på iPhone -brettet. Den svarte ledningen er til jord (pin 11) og den røde ledningen er til VCC (pin 13). Jeg har deretter loddet pinnehoder til ledningene for de to ledningene fra utbruddskortet og de fire som kommer fra PS/2 -kontakten.

Trinn 6: (Valgfritt) 9V batterisele

(Valgfritt) 9V batterisele
(Valgfritt) 9V batterisele

Jeg bruker en Arduino Diecimila, siden dette programmet ikke krever en bedre brikke. Dette er vist med en 9V batterisele fra SparkFun for bærbarhet.

Trinn 7: Fest PS/2 -elektroder til Arduino

Fest PS/2 -elektroder til Arduino
Fest PS/2 -elektroder til Arduino

Deretter kobler vi PS/2 -kontakten til Arduino. Koble klokkekabelen til Digital Pin 3, datakabelen til Digital Pin 4, og koble jordledningen til Ground på Arduino og VCC wire til 5V pin.

Trinn 8: Fest IPhone Leads til Arduino

Fest IPhone Leads til Arduino
Fest IPhone Leads til Arduino

For å koble iPhone -utbruddet, kobler du bare ledningen fra pin 13 til TX -pinnen på Arduino (digital pin 1) og kobler deretter ledningen fra pin 11 til en hvilken som helst tilgjengelig jord på Arduino.

VIKTIG: For å unngå problemer med å blinke Arduino, må du koble fra TX -pinnen på Arduino før du blinker. Mer om dette senere. Etter det er alt lodding gjort. Nå er det på tide å gå videre til programmeringen av Arduino!

Trinn 9: Arduino -koden

Arduino -koden
Arduino -koden

Arduino -programvaren klokker data ut av tastaturet, oversetter tastaturets skannekoder til nøkkelkoder og håndterer trykk på shift og caps lock -tastene.

Last ned og installer først Arduino -utviklingsmiljøet herfra. Følg instruksjonene på stedet, men sørg for å installere riktig FTDI -driver fra driverkatalogen i Arduino -installasjonen.

Deretter trenger du et ekstra Arduino -bibliotek for PS/2. Last ned filen "ps2.zip" fra denne siden. For å installere, pakker du ned nedlastingen til en mappe og flytter den til en underkatalog av "maskinvare/biblioteker" -katalogen under Arduino -installasjonen. På OSX kan du gå til Arduino.app og "Vis pakkeinnhold" først.

Når Arduino og ps2 -biblioteket er installert, laster du ned kildekoden herfra. Åpne Arduino -applikasjonen, lag et nytt prosjekt, og lim inn kildekoden i den. Lagre, og gå til Sketch-> Verify/Compile for å sikre at den bygger. Hvis det ikke gjør det, må du kontrollere at biblioteket er riktig installert.

På en side note, jeg faktisk skrev absolutt ingen kode for dette prosjektet. Jeg begynte med å prøve å bruke PS2KeyboardExt2 -biblioteket, men det biblioteket er basert på avbrudd, og mens det kan kjøres på en Arduino som også snakker seriell med 9600 bps, når jeg svingte serien opp til 19200 bps, stoppet avbruddene å fungere i en stabil måte. Så jeg tok ut den fine koden fra PS2KeyboardExt2, inkludert nøkkeldefinisjonene og den fine håndteringen av skift og caps lock og omarbeidet den til et program som ikke bruker avbrudd og bruker et annet, mye enklere PS/2 -bibliotek. Dette gjør den i stand til å håndtere 19200 bps serie på en pålitelig måte.

Nå, for å programmere Arduino!

Koble fra ledningen til Pin 1 på Arduino. Koble deretter Arduino til datamaskinen din via USB -kabel. Du må kanskje starte Arduino -appen på nytt slik at den oppdager den nye USB -serienheten. Last inn den lagrede skissen med kilden, og trykk deretter på Last opp -knappen for å programmere Arduino.

Når programmet er lastet opp, kobler du tastaturet til PS/2 -kontakten. Du bør se lysene blinke. Du kan åpne Serial Monitor i Arduino -programmet og prøve å skrive noen bokstaver på tastaturet. Du bør se at bokstavene dukker opp i Serial Monitor. Prøv å slå Caps Lock på og av, lyset på tastaturet skal gå av og på og tegnene skal komme ut med store bokstaver.

Trinn 10: IPhone -klientprogrammet

Nå for å sette opp iPhone -klientprogrammet.

For klientkoden bruker jeg et program jeg fant på Anthony Prays Google Code -side. Dette programmet leser input fra den serielle porten på 19200 bps og injiserer deretter den riktige tastaturhendelsen ved hjelp av et VNC -klientbibliotek. Jeg har laget et lokalt tekstspeil av kilden her, som enkelt kan hentes med wget.

Siden vi skal injisere tastetrykk fra VNC, må du også kjøre en VNC -server på iPhone. Vi kommer til å bruke Veency (som er fantastisk, og du bør installere uansett).

Gå til Cydia eller Icy og installer følgende pakker:

  • Veency - Tilbyr VNC -serveren, konfigurer den til å kjøre ved oppstart
  • LibVNCServer - Tilbyr libvncclient
  • iPhone 2.0 Toolchain - Gir et bygningsmiljø (gcc, libgcc, ldid, libz kreves hvis du går en annen rute)
  • MobileTerminal - Så du får tilgang til iPhone -terminalen
  • wget - Så du kan trekke ned kildefilen

Nå for å laste ned og bygge kilden. Enten åpner du MobileTerminal eller SSH i telefonen, og gjør deretter følgende:

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

Det siste trinnet, ved hjelp av ldid, forfalsker signering av binæren. Uten det vil iPhone OS drepe prosessen din umiddelbart.

For å starte programmet, kjør det fra Mobile Terminal med:

./TouchClient

Dette vil føre til at Veency dukker opp en dialogboks som spør om du vil godta VNC -tilkoblingen. Trykk på Godta.

Jeg har lagt merke til at å kjøre dette fra MobileTerminal holder programmet i live selv når du forlater MobileTerminal, men det ville være bedre å bruke launchd. Jeg har ikke funnet ut av det ennå.

Trinn 11: Etterbehandling og fremtidig arbeid

For å fullføre, koble ledningen fra pin 13 på iPhone -breakout til TX -pin (pin 1) på Arduino igjen. Koble fra USB -kabelen og bytt Arduino til ekstern strøm. Koble iPhone -utbruddet til iPhone.

Hvis:

  • TouchClient kjører på iPhone
  • PS2 -programvaren kjører på Arduino
  • Tastaturet er koblet til kontakten, og kontakten er koblet til Arduino riktig
  • Veency kjører, og du har godtatt tilkoblingen fra TouchClient
  • Ingenting annet er ødelagt

Du bør kunne skrive på PS/2 -tastaturet og få disse tastene oversatt til de riktige iPhone -tastetrykkene. Dette fungerer hvor som helst på iPhone, i hvilken som helst app eller innfødt funksjon.

Denne løsningen er ikke perfekt, men det er en generell tilnærming til bruk av Arduino for å legge PS/2-tastaturstøtte til nesten alt som kan lese enkle serielle meldinger.

Fremtidig arbeid:

  • Kartlegging av skannekoden kan flyttes helt til iPhone, og maskinvaredelen av dette prosjektet kan implementeres på en mye billigere og lavere strømforbruksbrikke, som en PIC. Dette vil redusere kostnadene for enheten med omtrent $ 30, selv om det vil kreve en PIC -programmerer.
  • Ikke alle spesialnøkler er riktig kartlagt, men hvis du ser i Arduino -koden og deretter på iPhone -koden, ser du at dette er en utrolig enkel prosess. Legg ut eventuelle endringer du gjør her igjen som en kommentar!
  • I stedet for å være en gal wire hack, vil jeg gjerne se at dette passer inn i et lunt lite kabinett for ekte bærbarhet. Eventuelle ideer i denne avdelingen vil bli verdsatt.
  • Jeg vil gjerne gi TouchClient et passord for Veency, slik at det ikke er det irriterende popup-vinduet Godta/avslå.
  • Denne nøyaktige metoden kan brukes til å legge til et Bluetooth -tastatur. Bare legg til en Bluetooth-seriell modul i iPhone-utbruddet og fortsett å bruke TouchClient & Veency.

Det er det. Jeg håper du likte Instructable! Gleder meg til kommentarene dine. Hilsen, - awgh

Anbefalt: