Table des matières:

Utiliser le clavier infrarouge Palm avec les appareils Android : 5 étapes
Utiliser le clavier infrarouge Palm avec les appareils Android : 5 étapes

Vidéo: Utiliser le clavier infrarouge Palm avec les appareils Android : 5 étapes

Vidéo: Utiliser le clavier infrarouge Palm avec les appareils Android : 5 étapes
Vidéo: Utiliser son Smartphone comme Souris et Clavier pour le PC ►Tuto Fr 2024, Novembre
Anonim
Utiliser le clavier infrarouge Palm avec les appareils Android
Utiliser le clavier infrarouge Palm avec les appareils Android
Utiliser le clavier infrarouge Palm avec les appareils Android
Utiliser le clavier infrarouge Palm avec les appareils Android
Utiliser le clavier infrarouge Palm avec les appareils Android
Utiliser le clavier infrarouge Palm avec les appareils Android

J'avais un clavier sans fil PalmOne et je voulais avoir un clavier Bluetooth pour mon téléphone. Le seul problème était que le clavier PalmOne était basé sur l'infrarouge.

J'avais aussi un appareil Brainlink. C'est un petit appareil plutôt mignon pour la médiation entre différents appareils. Il a un processeur atxmega16, une batterie rechargeable, des capteurs, une radio Bluetooth, un tas de ports, un boîtier et un micrologiciel évolutif pour tout contrôler. Le Brainlink est abandonné, mais SurplusShed l'a pour 39 $, et ils ont des réductions périodiques de 30 à 50 % sur tout. Je l'ai eu pour 20$. Vous pouvez également utiliser votre propre carte atxmega plus Bluetooth (schémas ici), mais vos coûts pourraient ne pas être inférieurs.

Quoi qu'il en soit, après avoir identifié l'emplacement de la ligne de signal sur le clavier, effectué une mise à niveau du micrologiciel pour le Brainlink et écrit un pilote Android pour le clavier, cela fonctionne plutôt bien. Étant donné que la plupart du travail consistait en des recherches et des logiciels, maintenant que c'est fait, c'est un projet assez facile pour quiconque possède un Brainlink. Vous avez besoin:

  • Clavier sans fil PalmOne
  • Brainlink
  • Une attache à 3 ou 8 broches pour le Brainlink (connecteur de style JST au pas de 1,25 mm); vous pouvez utiliser l'attache à 8 broches incluse avec le Brainlink, mais vous voudrez en commander plus pour d'autres projets
  • Soudure et fer
  • Ruban électrique
  • En option: fermeture auto-agrippante

Dans le passé, j'ai utilisé le Brainlink pour me connecter à un casque Mindflex EEG et à un Roomba. C'est vraiment génial pour les tâches de pontage série-Bluetooth. Je fais juste différents connecteurs pour différents appareils, et je peux déplacer le Brainlink entre eux.

Étape 1: Contexte

Fond
Fond
Fond
Fond
Fond
Fond

N'hésitez pas à sauter cette description de fond.

Le clavier sans fil PalmOne envoie ses données via une LED IR sur une tige, en utilisant IrDA. Bien que l'on puisse utiliser un détecteur IR pour décoder les données, il existe un moyen plus simple. Si vous pliez le clavier à moitié, trois bandes de cuivre sont exposées. Celui du milieu est la masse et celui du bas est une ligne de transmission. Les mettre à un oscilloscope vérifie que le signal sur la ligne de transmission est encodé à environ 9600 (plus précisément: 9760) 8 N 2, avec le niveau haut autour de 1,56 V, et avec la mise en forme d'impulsion irDA: 1 est haut, et des impulsions positives prendre 3/16 du temps de bit.

Malheureusement, tout cela signifie que nous ne pouvons pas simplement le brancher sur un simple module Bluetooth (du moins pas sans créer un firmware personnalisé pour celui-ci), comme je l'ai fait dans mon projet Mindflex. Heureusement, l'atxmega du Brainlink dispose d'un mode irDA pour son UART. Il est simple d'ajouter un peu de code au firmware Brainlink permettant à un code "J1" de le faire passer en mode IrDA. Je m'attendais à ce que le niveau élevé de 1,56 V soit insuffisant pour l'atxmega, mais j'ai été agréablement surpris lorsque j'ai connecté les bandes de cuivre à GND et UART Receive sur le Brainlink et j'ai vu les résultats dans Realterm: j'obtenais de belles séquences de six octets du clavier.

Il s'est avéré que la séquence de six octets n'est empaquetée que pour un code de balayage d'un seul octet (avec une libération de marquage de bits élevée). Plus précisément, la séquence est FF C0 xx yy zz C1, où xx est le scan code, yy est xx xor'ed avec FF, et zz est xx xor'ed with 67. (En effet, le scan code est transmis trois fois: une fois clair et encodé deux fois. Je suppose que c'est parce que irDA est sujet à la corruption, et vous pouvez donc utiliser le décodage majoritaire pour obtenir l'octet.) Après cela, la seule difficulté matérielle était de trouver un endroit pour souder un connecteur sur le clavier. Et ce n'était pas difficile.

Du côté du logiciel, alors que je pourrais peut-être basculer le module Bluetooth RN-42 dans le Brainlink en mode HID, cela avait un potentiel de brique, car si le module ne repassait pas en SPP, je ne serais pas en mesure de parler à le Brainlink via son protocole Bluetooth.

La chose la plus simple à faire était simplement de prendre l'application de clavier open source BluezIME qui permet à diverses manettes de jeu Bluetooth de fonctionner comme des contrôleurs Android et d'ajouter un mode pour les séquences de six octets du clavier sans fil Palm One. L'application résultante est le clavier P1 gratuit dans Google Play maintenant (code source sur github).

Étape 2: mise à niveau du micrologiciel Brainklink

Mise à niveau du micrologiciel Brainklink
Mise à niveau du micrologiciel Brainklink
Mise à niveau du micrologiciel Brainklink
Mise à niveau du micrologiciel Brainklink

Pour activer la prise en charge des données série au format IrDA sur le Brainlink, vous devez charger mon firmware personnalisé. C'est facile avec un appareil Android et un téléchargeur de firmware que j'ai écrit (en passant, vous pouvez modifier le téléchargeur pour qu'il devienne un téléchargeur flash atmega/atxmega AVR109 à usage général).

  1. Associez le Brainlink (PIN 1234) à un appareil Android - vous devrez de toute façon le faire pour connecter le clavier
  2. Téléchargez mon Brainlink Firmware Uploader depuis Google Play (source pour l'uploader et le firmware sur github).
  3. Éteignez Brainlink et connectez les broches 8 et 2 (étrangement, la broche 8 est la broche la plus à gauche et la broche 1 est à droite) sur le port à 8 broches.
  4. En maintenant les broches connectées, allumez le Brainlink. Sa LED doit devenir bleue.
  5. Sélectionnez le firmware personnalisé que vous souhaitez (si vous avez un Roomba, l'un des firmwares fonctionne mieux avec les nouveaux Roombas et l'autre avec les plus anciens), et appuyez sur "Télécharger".
  6. Cela devrait être le cas, mais si vous rencontrez des difficultés de connexion, vous devrez peut-être essayer plus d'une fois.

Votre Brainlink est désormais plus intelligent: il prend non seulement en charge la lecture des données de certains appareils IrDA (une fois que vous avez localisé un signal non modulé), mais fonctionne également comme une liaison standard Roomba-to-Bluetooth et peut capturer des données à partir d'un casque Mindflex EEG. Et le firmware est rétrocompatible.

Étape 3: Connecter Brainlink au clavier

Connecter Brainlink au clavier
Connecter Brainlink au clavier
Connecter Brainlink au clavier
Connecter Brainlink au clavier
Connecter Brainlink au clavier
Connecter Brainlink au clavier

Vous aurez besoin d'un connecteur d'attache qui s'adapte aux trois broches les plus à gauche sur le port à 8 broches du Brainlink. Ce sont des connecteurs de style JST avec un espacement des broches de 1,25 mm. Vous pouvez utiliser un connecteur à trois broches (mon choix) ou un connecteur à 8 broches. Vous pouvez utiliser le connecteur à 8 broches fourni avec le Brainlink, mais vous voudrez alors en commander plus (j'ai trouvé des connecteurs à 3 et 8 broches bon marché sur ebay).

Ouvrez le compartiment à piles du clavier et retirez les piles. Près du côté négatif des batteries, vous trouverez deux paires de fils connectés ensemble via un connecteur de style JST. Si vos couleurs sont comme les miennes, les fils noirs sont à la masse (vous pouvez simplement vérifier la résistance entre cela et la borne moins de la batterie) et les autres couleurs (marron et gris) sont le signal.

Sur votre port Brainlink à 8 broches, la connexion la plus à gauche est la masse (broche la plus à gauche du port à 8 broches) et la troisième broche à partir de la gauche est la réception série. Soudez le fil de terre de votre connecteur Brainlink à la ligne de terre du clavier et le fil de réception du Brainlink à la ligne de signal. Vous constaterez peut-être qu'il n'y a pas d'espace dans la zone du clavier pour la connexion à souder et le connecteur de style JST c'était à l'intérieur du clavier. Si c'est le cas, retirez simplement le connecteur de style JST et soudez les deux trios de fils appropriés (deux fils de terre du clavier et un fil de terre Brainlink; deux fils de signal de clavier et un fil de réception Brainlink).

Il est tentant de déconnecter le côté LED IR du connecteur de style JST pour économiser la batterie. Ne le fais pas. Le signal s'effondre si vous faites cela. J'ai vérifié avec mon oscilloscope.

Faites un trou sur le rebord du couvercle de la batterie pour le passage des fils de l'attache Brainlink, utilisez du ruban isolant pour maintenir les deux connexions isolées et faites un petit nœud de soulagement de tension.

Enfin, lorsque tout est terminé, couvrez les contacts non pertinents sur l'attache Brainlink ou coupez simplement les fils non pertinents.

Vous pouvez également coller du Velcro sur le Brainlink et le clavier pour maintenir le Brainlink en place.

Étape 4: Utilisation avec un appareil Android

Utilisation avec un appareil Android
Utilisation avec un appareil Android
  1. Associez le Brainlink à votre appareil Android (PIN 1234).
  2. Installez mon application P1 Keyboard.
  3. Lancez les paramètres du clavier P1 (une icône devrait être dans votre lanceur).
  4. Activez le clavier P1 dans les paramètres de méthode de saisie Android. Sur les nouvelles versions d'Android, vous pouvez activer le clavier P1 en choisissant "Sélectionner IME" dans les paramètres du clavier P1 et en appuyant sur "Configurer les méthodes de saisie". (Vous recevrez un avertissement indiquant que le clavier voit tous vos mots de passe, etc. C'est un avertissement Android standard: bien sûr, un pilote de clavier voit tout ce que vous tapez. Si vous avez peur, regardez le code source du clavier et construisez le tien.)
  5. Appuyez sur "Sélectionner un appareil" et choisissez votre Brainlink (le mien apparaît sous le nom RN42-A308).
  6. Appuyez sur "Sélectionner IME" dans les paramètres du clavier P1 et sélectionnez Clavier P1.
  7. La connexion peut prendre un peu de temps, mais vous devriez recevoir un message indiquant que vous vous êtes connecté si tout se passe bien

Et tu as fini! N'hésitez pas à faire un don à l'auteur de BluezIME sur lequel est basé le clavier P1.

Sur Android 4.0+, dans les champs de texte, il y aura une notification qui permet de changer de méthode de saisie, vous pouvez donc facilement revenir à une autre méthode de saisie.

Le pilote que j'ai écrit pour le clavier est très simple. Il prend en charge les touches ordinaires, mais ne prend pas en charge la plupart des touches accentuées spéciales ou d'autres choses spéciales. J'ai ajouté la prise en charge de l'utilisation des deux boutons avec une maison (FN-1 et la touche à gauche de l'espace) la touche Windows et FN-2 comme menu et FN-3 comme recherche. De plus, ctrl-a, c, v, x fonctionne comme prévu.

Cela fonctionne assez bien pour que j'aie écrit le premier brouillon complet de ce Instructable sur mon téléphone Galaxy S2 avec le clavier.

Étape 5: Autres claviers

Autres claviers
Autres claviers
Autres claviers
Autres claviers

Si vous souhaitez expérimenter avec d'autres claviers infrarouges, vous devrez déterminer quels signaux ils envoient et à quel débit en bauds. Avec le Brainlink mis à jour vers le logiciel compatible IrDA, vous pouvez vous connecter avec RealTerm au Brainlink. Lorsque vous voyez le signal « BL » répété qui est la signature du Brainlink, tapez:

*J1Z

L'astérisque demande de l'attention, J1 passe à 9600 baud IrDA (il suffit de taper le 1 rapidement après le J ou vous obtenez une erreur). Le Z est pour le mode pont série-Bluetooth.

Basculez RealTerm pour afficher les codes hexadécimaux, appuyez sur les touches du clavier et voyez si vous pouvez le comprendre.

Pour quitter le mode pont série, redémarrez le Brainlink.

Je suppose que 9600 bauds est le bon débit en bauds. A défaut, vous pouvez modifier le débit en bauds de Brainlink. Je commencerais par essayer 57600 bauds:

*J1u57Z

puis 1200 bauds:

*J1u12Z

Une fois que vous avez compris comment le clavier envoie ses données, il suffit de modifier le code de mon pilote. Il suffit probablement de changer les chiffres dans PalmOneWirelessKeyboard.java.

Conseillé: