Table des matières:

Comment connecter un clavier PS/2 à l'iPhone : 11 étapes
Comment connecter un clavier PS/2 à l'iPhone : 11 étapes

Vidéo: Comment connecter un clavier PS/2 à l'iPhone : 11 étapes

Vidéo: Comment connecter un clavier PS/2 à l'iPhone : 11 étapes
Vidéo: iPhone Clavier ne fonctionne pas ? Voici les 3 solutions ! 2024, Novembre
Anonim
Comment connecter un clavier PS/2 à l'iPhone
Comment connecter un clavier PS/2 à l'iPhone
Comment connecter un clavier PS/2 à l'iPhone
Comment connecter un clavier PS/2 à l'iPhone
Comment connecter un clavier PS/2 à l'iPhone
Comment connecter un clavier PS/2 à l'iPhone

Bien que j'aie vu de nombreuses photos de claviers PS/2 branchés sur des iPhones sur Internet, personne n'a encore publié de tutoriel détaillé sur la façon de les faire fonctionner vous-même. Jusqu'à présent, c'est.

Dans ce Instructable je vais vous montrer comment vous pouvez faire un convertisseur de clavier PS/2 vers iPhone, y compris toutes les instructions matérielles et logicielles.

Conditions préalables

  • iPhone Jailbreaké - Le SDK officiel n'autorise pas l'accès au port série en raison de l'Elf Conspiracy, le jailbreak est donc requis. Tout ce que vous devez savoir sur le jailbreak est sur le blog iPhone Dev Team.
  • Arduino Diecimila ou Dumilanove (ou clone), disponible dans de nombreux endroits. Ce howto suppose que votre Arduino est assemblé.
  • Une carte Breakout pour iPod, comme celle-ci de Sparkfun. Tout produit similaire fonctionnera.
  • Un connecteur clavier femelle PS/2 (Din 6). Retirez-en un d'un vieil ordinateur ou achetez-en un auprès de Digikey ou d'un fournisseur similaire.
  • Fil, de préférence plusieurs couleurs et calibre 24 environ. J'utilise une bobine de RadioShack dans les photos ci-dessous.
  • Une résistance de 500k. J'utilise une résistance traversante axiale de RadioShack, mais vous pouvez également l'ajouter à votre commande Digikey.
  • Fer à souder et soudure. Si vous ne savez pas souder, vous pouvez apprendre ici et ici.
  • (Facultatif) En-têtes de broche, comme ceux-ci. Je les casse et les soude aux extrémités des fils, afin qu'ils se branchent bien sur l'Arduino.
  • (Facultatif) Faisceau de batterie Sweet 9v pour que votre Arduino devienne portable disponible dans le Maker Store.
  • (En option) Prise casque stéréo de RadioShack ou Digikey.

Étape 1: Soudez l'iPhone Breakout - Partie 1

Soudez l'iPhone Breakout - Partie 1
Soudez l'iPhone Breakout - Partie 1

Une fois que tous vos ingrédients sont arrivés, allumez le fer à souder et jetez un coup d'œil au brochage du connecteur iPod.

Nous utiliserons quatre de ces broches pour le clavier: 11, 13, 16 et 21. La définition de la broche 21 indique que nous devons placer une résistance de 500 k entre la broche 21 et la masse pour permettre les communications série avec l'iPhone, donc nous allons coller une résistance entre la broche 21 et la broche 16, qui est la masse série. Nous allons également ajouter des en-têtes de broches aux broches 11 et 13, qui serviront de broches TX et RX pour les communications série. Étant donné que nous enverrons UNIQUEMENT à l'iPhone, nous n'utilisons que la broche RX de l'iPhone, nous ajouterons donc également un morceau de fil pour connecter la broche 11, la broche TX inutilisée, directement à la terre à la broche 16.

Vous pouvez également ajouter en option la prise casque stéréo aux broches 2, 3 et 4 dès maintenant et cela fonctionnera chaque fois que le breakout est branché. Cela n'a rien à voir avec le clavier, mais si vous avez un iPhone 1G avec le boiteux non- prise casque standard, cela résoudra le problème.

Étape 2: Soudez l'iPhone Breakout - Partie 2

Soudez l'iPhone Breakout - Partie 2
Soudez l'iPhone Breakout - Partie 2

J'ai mis le cavalier entre la broche 11 et la broche 16 à l'arrière de la carte de dérivation. Il peut être un peu difficile de tout mettre sur la broche 16, je recommande donc d'abord de coller la résistance à travers le trou, puis d'enrouler l'extrémité du cavalier autour et de les souder ensemble avant de couper le fil de la résistance.

Une autre tactique qui peut être utile ici consiste d'abord à étamer les extrémités de votre fil, puis à appliquer un peu de soudure sur le trou auquel vous souhaitez coller le fil. Utilisez le côté du fer à souder pour réchauffer votre goutte de soudure et faites glisser l'extrémité étamée du fil dans la goutte. Retirez le fer, laissez refroidir la goutte, puis relâchez le fil.

Étape 3: Soudez le connecteur PS/2 - Partie 1

Soudez le connecteur PS/2 - Partie 1
Soudez le connecteur PS/2 - Partie 1

Il n'y a pas de chemin que vous pouvez emprunter à travers la numérotation des broches du connecteur PS/2 qui ait un sens en dehors du contexte des divagations dérangées d'une réunion de comité. Ne réfléchissez pas trop aux numéros de broche, regardez simplement l'image.

Nous utiliserons ici quatre broches et les connecterons toutes à l'Arduino. La masse sera câblée à la masse sur l'Arduino, VCC sera câblée à 5V et les broches de données et d'horloge seront transférées à deux des broches numériques de l'Arduino (3 et 4).

Étape 4: Soudez le connecteur PS/2 - Partie 2

Soudez le connecteur PS/2 - Partie 2
Soudez le connecteur PS/2 - Partie 2

Le bas du connecteur PS/2 est encore moins intuitif que le schéma de numérotation. Je vous recommande de vérifier cette image, mais aussi de vérifier que les broches au bas de votre connecteur correspondent aux broches numérotées que vous pensez qu'elles font avant de souder quoi que ce soit. Vous pouvez vérifier la connectivité avec un multimètre ordinaire en le réglant pour mesurer la résistance et en connectant une sonde à la broche du bas et en collant l'autre dans le trou. S'il y a la moindre résistance, alors cette broche est connectée à ce trou.

J'utilise le fil vert pour la broche d'horloge, le fil rouge pour VCC, le fil blanc pour les données et le fil noir pour la terre.

Étape 5: souder les en-têtes des broches aux fils

Souder les en-têtes des broches aux fils
Souder les en-têtes des broches aux fils

Une fois que vous avez câblé les connecteurs, dénudez les autres extrémités des fils et soudez les fils aux en-têtes de broche. Cela vous permettra de les brancher facilement sur l'Arduino. Si vous n'avez pas obtenu les en-têtes de broche, vous pouvez essayer d'étamer soigneusement les fils pour qu'ils restent mieux dans les trous de broche Arduino.

J'ai attaché des fils aux en-têtes des broches 11 et 13 de la carte de dérivation de l'iPhone. Le fil noir est à la terre (broche 11) et le fil rouge est à VCC (broche 13). J'ai ensuite soudé des en-têtes de broches aux fils pour les deux fils de la carte de dérivation et les quatre provenant du connecteur PS/2.

Étape 6: (Facultatif) Faisceau de batterie 9 V

(En option) Faisceau de batterie 9V
(En option) Faisceau de batterie 9V

J'utilise un Arduino Diecimila, car ce programme ne nécessite pas une meilleure puce. Ceci est illustré avec un faisceau de batterie 9V de SparkFun pour la portabilité.

Étape 7: connectez les fils PS/2 à Arduino

Attachez les fils PS/2 à Arduino
Attachez les fils PS/2 à Arduino

Ensuite, nous connectons le connecteur PS/2 à l'Arduino. Connectez le fil de l'horloge à la broche numérique 3, le fil de données à la broche numérique 4 et connectez le fil de terre à la terre sur l'Arduino et le fil VCC à la broche 5V.

Étape 8: Attachez les fils IPhone à Arduino

Attacher les fils IPhone à Arduino
Attacher les fils IPhone à Arduino

Pour connecter le breakout de l'iPhone, connectez simplement le câble de la broche 13 à la broche TX de l'Arduino (broche numérique 1), puis connectez le câble de la broche 11 à n'importe quelle masse disponible sur l'Arduino.

IMPORTANT: pour éviter les problèmes de flashage de l'Arduino, veuillez déconnecter la broche TX de l'Arduino avant de flasher. Plus d'informations à ce sujet plus tard. Après cela, toute la soudure est terminée. Il est maintenant temps de passer à la programmation de l'Arduino !

Étape 9: Le code Arduino

Le code Arduino
Le code Arduino

Le logiciel Arduino synchronise les données du clavier, traduit les codes de balayage du clavier en codes de touche et gère les pressions sur les touches majuscules et majuscules.

Tout d'abord, téléchargez et installez l'environnement de développement Arduino à partir d'ici. Suivez les instructions sur le site, mais assurez-vous d'installer le pilote FTDI approprié à partir du répertoire des pilotes dans l'installation Arduino.

Ensuite, vous aurez besoin d'une bibliothèque Arduino supplémentaire pour PS/2. Téléchargez le fichier « ps2.zip » à partir de cette page. Pour installer, décompressez le téléchargement dans un dossier et déplacez ce dossier pour qu'il soit un sous-répertoire du répertoire « matériel/bibliothèques » sous votre installation Arduino. Sur OSX, vous pouvez d'abord accéder à Arduino.app et "Afficher le contenu du package".

Une fois Arduino et la bibliothèque ps2 installés, téléchargez le code source à partir d'ici. Ouvrez l'application Arduino, créez un nouveau projet et collez-y le code source. Enregistrez, puis accédez à Esquisse->Vérifier/Compiler pour vous assurer qu'il se construit. Si ce n'est pas le cas, assurez-vous que la bibliothèque est correctement installée.

En passant, je n'ai en fait écrit absolument aucun code pour ce projet. J'ai commencé par essayer d'utiliser la bibliothèque PS2KeyboardExt2, mais cette bibliothèque est basée sur des interruptions et bien qu'elle puisse fonctionner sur un Arduino qui parle également en série à 9600 bps, une fois que j'ai lancé la série jusqu'à 19200 bps, les interruptions ont cessé de fonctionner dans un manière stable. J'ai donc retiré tout le bon code de PS2KeyboardExt2, y compris les définitions des touches et la bonne gestion des décalages et du verrouillage des majuscules et l'ai retravaillé dans un programme qui n'utilise pas d'interruptions et utilise une bibliothèque PS/2 différente et beaucoup plus simple. Cela le rend capable de gérer une série de 19 200 bps de manière fiable.

Maintenant, pour programmer l'Arduino !

Déconnectez le fil allant à la broche 1 sur l'Arduino. Ensuite, connectez l'Arduino à votre ordinateur via un câble USB. Vous devrez peut-être redémarrer l'application Arduino pour qu'elle détecte correctement le nouveau périphérique série USB. Chargez le croquis enregistré avec la source, puis appuyez sur le bouton Télécharger pour programmer l'Arduino.

Une fois le programme téléchargé, branchez le clavier sur le connecteur PS/2. Vous devriez voir les lumières clignoter. Vous pouvez ouvrir le moniteur série dans l'application Arduino et essayer de taper quelques lettres sur le clavier. Vous devriez voir ces lettres apparaître dans le moniteur série. Essayez d'activer et de désactiver le verrouillage des majuscules, le voyant du clavier doit s'allumer et s'éteindre et les caractères doivent sortir correctement en majuscules.

Étape 10: Le programme client IPhone

Maintenant, configurez le programme client iPhone.

Pour le code client, j'utilise un programme que j'ai trouvé sur la page Google Code d'Anthony Pray. Ce programme lit l'entrée du port série à 19 200 bps, puis injecte l'événement de clavier approprié à l'aide d'une bibliothèque cliente VNC. J'ai créé un miroir local en texte uniquement de la source ici, qui peut être facilement récupéré avec wget.

Étant donné que nous injecterons des touches par VNC, vous devrez également exécuter un serveur VNC sur l'iPhone. Nous allons utiliser Veency (ce qui est génial et vous devriez l'installer de toute façon).

Allez sur Cydia ou Icy et installez les packages suivants:

  • Veency - Fournit le serveur VNC, configurez-le pour qu'il s'exécute au démarrage
  • LibVNCServer - Fournit libvncclient
  • Chaîne d'outils iPhone 2.0 - Fournit un environnement de construction (gcc, libgcc, ldid, libz sont requis si vous choisissez un autre itinéraire)
  • MobileTerminal - Pour accéder au terminal iPhone
  • wget - Vous pouvez donc extraire le fichier source

Maintenant, téléchargez et construisez la source. Ouvrez MobileTerminal ou SSH dans votre téléphone, puis procédez comme suit:

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

La dernière étape, en utilisant ldid, simule la signature du binaire. Sans cela, l'iPhone OS tuera votre processus immédiatement.

Pour démarrer le programme, lancez-le depuis Mobile Terminal avec:

./TouchClient

Cela amènera Veency à afficher une boîte de dialogue vous demandant si vous souhaitez accepter la connexion VNC. Appuyez sur Accepter.

J'ai remarqué que l'exécution de cela à partir de MobileTerminal maintient le programme en vie même lorsque vous quittez MobileTerminal, mais il serait préférable d'utiliser launchd. Je n'ai pas encore compris cela.

Étape 11: Touches finales et travaux futurs

Pour finir, reconnectez le fil de la broche 13 de la sortie iPhone à la broche TX (broche 1) de l'Arduino. Déconnectez le câble USB et basculez l'Arduino sur une alimentation externe. Branchez le breakout de l'iPhone sur votre iPhone.

Si:

  • TouchClient s'exécute sur votre iPhone
  • Le logiciel PS2 s'exécute sur votre Arduino
  • Le clavier est branché sur le connecteur, et le connecteur câblé à l'Arduino correctement
  • Veency est en cours d'exécution et vous avez accepté la connexion de TouchClient
  • Rien d'autre n'est foutu

Vous devriez pouvoir taper sur le clavier PS/2 et traduire ces frappes en frappes iPhone appropriées. Cela fonctionnera n'importe où dans l'iPhone, dans n'importe quelle application ou fonctionnalité native.

Cette solution n'est pas parfaite, mais c'est une approche générale de l'utilisation de l'Arduino pour ajouter la prise en charge du clavier PS/2 à presque tout ce qui peut lire des messages série simples.

Travail futur:

  • Le mappage du code de balayage pourrait être entièrement déplacé vers l'iPhone, et la partie matérielle de ce projet pourrait être réimplémentée sur une puce beaucoup moins chère et à faible consommation d'énergie, comme un PIC. Cela réduirait le coût de l'unité d'environ 30 $, même si cela nécessiterait un programmeur PIC.
  • Toutes les touches spéciales ne sont pas correctement mappées, mais si vous regardez dans le code Arduino puis dans le code iPhone, vous verrez qu'il s'agit d'un processus incroyablement simple. S'il vous plaît poster tous les changements que vous apportez ici en tant que commentaire !
  • Plutôt que d'être un hack de fil fou, j'aimerais que cela s'intègre dans un petit boîtier confortable pour une réelle portabilité. Toutes les idées dans ce département seraient appréciées.
  • Je voudrais donner à TouchClient un mot de passe pour Veency afin qu'il n'y ait pas cette fenêtre contextuelle d'acceptation/de refus ennuyeuse.
  • Cette méthode exacte pourrait être utilisée pour ajouter un clavier Bluetooth. Ajoutez simplement un module Bluetooth-Série à l'extension iPhone et continuez à utiliser TouchClient & Veency.

C'est ça. J'espère que vous avez apprécié l'Instructable ! Dans l'attente de vos commentaires. Cordialement, - awgh

Conseillé: