Indholdsfortegnelse:

Sådan sluttes et PS/2 -tastatur til IPhone: 11 trin
Sådan sluttes et PS/2 -tastatur til IPhone: 11 trin

Video: Sådan sluttes et PS/2 -tastatur til IPhone: 11 trin

Video: Sådan sluttes et PS/2 -tastatur til IPhone: 11 trin
Video: Феномен Бруно Грёнинг – документальный фильм — ЧАСТЬ 1 2024, November
Anonim
Sådan tilsluttes et PS/2 -tastatur til IPhone
Sådan tilsluttes et PS/2 -tastatur til IPhone
Sådan tilsluttes et PS/2 -tastatur til IPhone
Sådan tilsluttes et PS/2 -tastatur til IPhone
Sådan tilsluttes et PS/2 -tastatur til IPhone
Sådan tilsluttes et PS/2 -tastatur til IPhone

Selvom jeg har set mange billeder af PS/2 -tastaturer tilsluttet iPhones på Internettet, har ingen endnu offentliggjort en detaljeret vejledning om, hvordan du får det til at fungere selv. Indtil nu, altså.

I denne Instructable vil jeg vise dig, hvordan du kan lave et PS/2 -tastatur til iPhone -konverter, herunder alle hardware- og softwareinstruktioner.

Forudsætninger

  • Jailbroken iPhone - Den officielle SDK tillader ikke adgang til den serielle port på grund af Elf Conspiracy, så jailbreak er påkrævet. Alt hvad du behøver at vide om jailbreaking er på iPhone Dev Team Blog.
  • Arduino Diecimila eller Dumilanove (eller klon), tilgængelig mange steder. Denne vejledning forudsætter, at din Arduino er samlet.
  • Et iPod Breakout -bord, som dette fra Sparkfun. Ethvert lignende produkt vil fungere.
  • Et kvindeligt PS/2 (Din 6) tastaturstik. Træk en af en gammel computer, eller køb en fra Digikey eller lignende leverandør.
  • Tråd, gerne flere farver og ca. 24 gauge. Jeg bruger en spole fra RadioShack på billederne herunder.
  • En 500k modstand. Jeg bruger en aksial gennemgående modstand fra RadioShack, men du kan også tilføje dette til din Digikey-ordre.
  • Loddejern og lodning. Hvis du ikke ved, hvordan du lodder, kan du lære her og her.
  • (Valgfrit) Pin Headers, som disse. Jeg bryder disse af og lodder dem til enderne af ledninger, så de tilsluttes pænt i Arduino.
  • (Valgfrit) Sød 9v batterisele, så din Arduino bliver bærbar tilgængelig fra Maker Store.
  • (Valgfrit) Stereohovedtelefonstik fra RadioShack eller Digikey.

Trin 1: Lodd iPhone Breakout - Del 1

Lodde iPhone Breakout - Del 1
Lodde iPhone Breakout - Del 1

Når alle dine ingredienser ankommer, fyrer du op i loddejernet og kigger hurtigt på iPod Connector Pin-Out.

Vi skal bruge fire af disse ben til tastaturet: 11, 13, 16 og 21. Definitionen af pin 21 siger, at vi skal placere en 500k modstand mellem pin 21 og jord for at muliggøre seriel kommunikation til iPhone, så vi vil stikke en modstand mellem pin 21 og pin 16, som er den serielle jord. Vi kommer også til at tilføje pinhoveder til ben 11 og 13, som vil fungere som TX- og RX -benene til seriel kommunikation. Da vi KUN sender til iPhone, bruger vi kun iPhone's RX -pin, så vi tilføjer også et stykke ledning til at forbinde pin 11, den ubrugte TX -pin, direkte til jorden ved pin 16.

Du kan også valgfrit tilføje stero-hovedtelefonstikket til pins 2, 3 og 4 lige nu, og det vil fungere, når breakout'en er tilsluttet. Dette har intet at gøre med tastaturet, men hvis du har en 1G iPhone med den lamme ikke- standard hovedtelefonstik, dette løser det.

Trin 2: Lodde iPhone Breakout - Del 2

Lodde iPhone Breakout - Del 2
Lodde iPhone Breakout - Del 2

Jeg har lagt jumperen mellem pin 11 og pin 16 på bagsiden af breakout -kortet. Det kan være lidt vanskeligt at montere alt på pin 16, så jeg anbefaler først at stikke modstanden gennem hullet og derefter vikle enden af jumperwiren rundt om den og lodde dem sammen, inden modstandsledningen klippes af.

En anden taktik, der kan være nyttig her, er først at tinne enderne af din ledning og derefter klatre lidt loddemetal på det hul, du vil holde tråden til. Brug siden af loddejernet til at varme din klat loddemetal og SLIDE den fortinnede ende af ledningen ind i kluden. Fjern strygejernet, lad kluden køle af, og slip derefter ledningen.

Trin 3: Lodd PS/2 -stikket - del 1

Lodde PS/2 -stikket - Del 1
Lodde PS/2 -stikket - Del 1

Der er ingen vej, du kan tage gennem pin -nummereringen på PS/2 -stikket, der giver nogen form for mening uden for konteksten for de forstyrrede vandringer i et udvalgsmøde. Tænk ikke for meget over pin -numrene, tjek bare billedet.

Vi vil bruge fire pins her og forbinde dem alle med Arduino. Jorden forbindes til jorden på Arduino, VCC forbindes til 5V, og data- og urstifterne bringes til to af Arduino's digitale ben (3 og 4).

Trin 4: Lodd PS/2 -stikket - del 2

Lodde PS/2 -stikket - del 2
Lodde PS/2 -stikket - del 2

Bunden af PS/2 -stikket er endnu mindre intuitiv end nummereringsskemaet. Jeg anbefaler at kontrollere dette billede, men også at kontrollere, at benene i bunden af dit stik matcher de nummererede stifter, du tror, de gør, før du lodder noget. Du kan kontrollere, om der er forbindelse til et almindeligt multimeter ved at indstille det til at måle modstand og tilslutte den ene sonde til stiften i bunden og stikke den anden i hullet. Hvis der overhovedet er nogen modstand, er stiften forbundet til det hul.

Jeg bruger den grønne ledning til urstiften, den røde ledning til VCC, den hvide ledning til data og den sorte ledning til jord.

Trin 5: Loddepindehoveder til elektroder

Loddepindehoveder til bly
Loddepindehoveder til bly

Når du har koblet stikene op, skal du fjerne de andre ender af ledningerne og lodde ledningerne til stiftoverskrifter. Dette lader dig nemt tilslutte dem til Arduino. Hvis du ikke fik stifthovederne, kan du prøve forsigtigt at tinde ledningerne for at få dem til at blive bedre i Arduino -nålhullerne.

Jeg fastgjorde nogle ledninger til stifthovederne på ben 11 og 13 på iPhone -udbrudskortet. Den sorte ledning er til jord (pin 11) og den røde ledning er til VCC (pin 13). Jeg har derefter loddet stifthoveder til ledningerne til de to ledninger fra breakout -kortet og de fire, der kommer fra PS/2 -stikket.

Trin 6: (Valgfri) 9V batterisele

(Valgfrit) 9V batterisele
(Valgfrit) 9V batterisele

Jeg bruger en Arduino Diecimila, da dette program ikke kræver en bedre chip. Dette er vist med en 9V batterisele fra SparkFun til transport.

Trin 7: Fastgør PS/2 -elektroder til Arduino

Vedhæft PS/2 -elektroder til Arduino
Vedhæft PS/2 -elektroder til Arduino

Dernæst tilslutter vi PS/2 -stikket til Arduino. Slut urkablet til Digital Pin 3, datatråden til Digital Pin 4, og slut jordkablet til Ground på Arduino og VCC wire til 5V pin.

Trin 8: Tilslut IPhone Leads til Arduino

Vedhæft IPhone Leads til Arduino
Vedhæft IPhone Leads til Arduino

For at tilslutte iPhone -breakout skal du blot tilslutte ledningen fra Pin 13 til TX Pin på Arduino (Digital Pin 1) og derefter tilslutte elektroden fra Pin 11 til en hvilken som helst tilgængelig Ground på Arduino.

VIGTIGT: For at undgå problemer med at blinke Arduino, skal du afbryde TX -pin på Arduino, før du blinker. Mere om dette senere. Efter det er alt lodning udført. Nu er det tid til at gå videre til programmering af Arduino!

Trin 9: Arduino -koden

Arduino -koden
Arduino -koden

Arduino -softwaren lukker data ud af tastaturet, oversætter tastaturets scanningskoder til nøglekoder og håndterer tryk på shift- og caps lock -tasterne.

Først skal du downloade og installere Arduino -udviklingsmiljøet herfra. Følg anvisningerne på webstedet, men sørg for at installere den relevante FTDI -driver fra driverens bibliotek i Arduino -installationen.

Dernæst skal du bruge et ekstra Arduino -bibliotek til PS/2. Download filen “ps2.zip” fra denne side. For at installere skal du pakke downloadet ud til en mappe og flytte denne mappe til at være en underkatalog af biblioteket "hardware/biblioteker" under din Arduino -installation. På OSX kan du gå til Arduino.app og "Vis pakkeindhold" først.

Når Arduino og ps2 -biblioteket er installeret, skal du downloade kildekoden herfra. Åbn Arduino -applikationen, opret et nyt projekt, og indsæt kildekoden i det. Gem, og gå derefter til Skitse-> Verificer/kompilér for at sikre, at den bygger. Hvis det ikke gør det, skal du sørge for, at biblioteket er installeret korrekt.

På en sidebemærkning skrev jeg faktisk absolut ingen kode til dette projekt. Jeg startede med at prøve at bruge PS2KeyboardExt2 -biblioteket, men det bibliotek er baseret på afbrydelser, og selvom det kan køre på en Arduino, der også taler seriel med 9600 bps, når jeg først slog serien op til 19200 bps, stoppede afbrydelserne i en stabil måde. Så jeg slog hele den flotte kode ud af PS2KeyboardExt2, inklusive nøgledefinitionerne og den flotte håndtering af skift og caps lock og omarbejdede den til et program, der ikke bruger afbrydelser og gør brug af et anderledes, meget enklere PS/2 -bibliotek. Dette gør den i stand til at håndtere 19200 bps serie på en pålidelig måde.

Nu, for at programmere Arduino!

Afbryd ledningen til pin 1 på Arduino. Tilslut derefter Arduino til din computer via USB -kabel. Du skal muligvis genstarte Arduino -applikationen, så den registrerer den nye USB -serielle enhed korrekt. Indlæs den gemte skitse med kilden, og tryk derefter på knappen Upload for at programmere Arduino.

Når programmet er uploadet, skal du tilslutte tastaturet til PS/2 -stikket. Du skal se lysene blinke. Du kan åbne Serial Monitor i Arduino -applikationen og prøve at skrive nogle bogstaver på tastaturet. Du skulle se disse bogstaver blive vist i Serial Monitor. Prøv at tænde og slukke Caps Lock, lyset på tastaturet skal tænde og slukke, og tegnene skal komme korrekt ud med store bogstaver.

Trin 10: IPhone -klientprogrammet

Nu til at konfigurere iPhone -klientprogrammet.

Til klientkoden bruger jeg et program, jeg fandt på Anthony Prays Google Code -side. Dette program læser input fra den serielle port ved 19200 bps og injicerer derefter den relevante tastaturhændelse ved hjælp af et VNC -klientbibliotek. Jeg har lavet et lokalt tekstspejl af kilden her, som let kan hentes med wget.

Da vi vil injicere tastetryk fra VNC, skal du også køre en VNC -server på iPhone. Vi kommer til at bruge Veency (hvilket er fantastisk, og du skal installere alligevel).

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

  • Veency - Giver VNC -serveren, konfigurer den til at køre ved opstart
  • LibVNCServer - Giver libvncclient
  • iPhone 2.0 Toolchain - Giver et byggemiljø (gcc, libgcc, ldid, libz er påkrævet, hvis du går en anden vej)
  • MobileTerminal - Så du kan få adgang til iPhone -terminalen
  • wget - Så du kan trække kildefilen ned

Nu skal du downloade og bygge kilden. Du kan enten åbne MobileTerminal eller SSH i din telefon, og derefter gøre følgende:

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

Det sidste trin, ved hjælp af ldid, forfalsker underskrivelse af binæret. Uden det vil iPhone OS straks dræbe din proces.

For at starte programmet skal du køre det fra Mobile Terminal med:

./TouchClient

Dette får Veency til at åbne en dialog, der spørger, om du vil acceptere VNC -forbindelsen. Hit Accepter.

Jeg har bemærket, at kører dette fra MobileTerminal holder programmet i live, selv når du forlader MobileTerminal, men det ville være bedre at bruge launchd. Det har jeg ikke fundet ud af endnu.

Trin 11: Efterbehandling og fremtidigt arbejde

For at afslutte skal du tilslutte ledningen fra Pin 13 på iPhone -breakout til TX -pin (pin 1) på Arduino. Afbryd USB -kablet, og skift Arduino til ekstern strøm. Tilslut iPhone -breakout til din iPhone.

Hvis:

  • TouchClient kører på din iPhone
  • PS2 -softwaren kører på din Arduino
  • Tastaturet er sat i stikket, og stikket er forbundet korrekt til Arduino
  • Veency kører, og du har accepteret forbindelsen fra TouchClient
  • Intet andet er skruet op

Du bør kunne skrive på PS/2 -tastaturet og få disse tastetryk oversat til de relevante iPhone -tastetryk. Dette fungerer overalt i iPhone, i enhver app eller indbygget funktion.

Denne løsning er ikke perfekt, men det er en generel tilgang til at bruge Arduino til at tilføje PS/2-tastaturunderstøttelse til næsten alt, der kan læse simple serielle meddelelser.

Fremtidens arbejde:

  • Scanningskodekortlægningen kan helt flyttes til iPhone, og hardware -delen af dette projekt kan genimplementeres på en meget billigere og lavere strømforbrugschip, som en PIC. Dette ville reducere enhedens omkostninger med omkring $ 30, selvom det ville kræve en PIC -programmør.
  • Ikke alle specielle nøgler er korrekt kortlagt, men hvis du kigger i Arduino -koden og derefter på iPhone -koden, vil du se, at dette er en utrolig simpel proces. Send venligst de ændringer, du foretager her, som en kommentar!
  • I stedet for at være et vanvittigt wirehack, vil jeg gerne se, at dette passer ind i et lille lille kabinet for ægte bærbarhed. Eventuelle ideer i denne afdeling ville blive værdsat.
  • Jeg vil gerne give TouchClient en adgangskode til Veency, så der ikke er den irriterende pop-up Accepter/Afvis.
  • Denne nøjagtige metode kan bruges til at tilføje et Bluetooth -tastatur. Du skal blot tilføje et Bluetooth-serielt modul til iPhone-udbruddet og fortsætte med at bruge TouchClient & Veency.

Det er det. Jeg håber, at du nød Instructable! Ser frem til dine kommentarer. Hilsen, - awgh

Anbefalede: