2013-10-06 4 views
0

J'ai écrit un simple firmware pour arduino pour répliquer toutes les données entrantes qu'il reçoit en série à la sortie série. Quelque chose comme ceci: int serialData = 0;Arduino étant reconnu comme clavier par android

void setup() 
{ 
    Serial.begin(9600); 
} 

void loop() 
{ 
    if (Serial.available() > 0) 
    { 
    serialData = Serial.read(); 
    Serial.println(serialData); 
    } 
} 

Maintenant, je voulais le connecter à mon Nexus 7 fonctionne sur Android 4.3 en utilisant un microUSB-> câble OTG + USB-> câble microUSB. J'ai installé une application de moniteur série (https://play.google.com/store/apps/details?id=jp.ksksue.app.terminal&hl=en) et m'attendais à écrire des données série dessus. Une fois que j'ai connecté cela à la tablette, j'ai fini par recevoir une notification au clavier. Android reconnaît cette connexion en tant que clavier. Cela effondre le clavier Android comme il a détecté un clavier externe. Cependant, j'ai une option pour coller dans la boîte de saisie. Ce qui semble fonctionner.

Est-il possible

  • désactiver le montage des claviers dans Android. Ou
  • Rendre arduino reconnu comme autre chose qu'un clavier.

Répondre

0

Une solution de contournement à ce problème consistait à installer une autre application de clavier comme Go clavier ou swype. Cela conduit à une notification lors de la connexion arduinp à l'appareil Android, à partir de laquelle vous pouvez éteindre le matériel externe et revenir sur le clavier de l'écran. Pas persistant mais fonctionne!

0

Je pense que vous avez un Leonardo, non?

AFAIK vous ne pouvez pas désactiver le KeyboardEmulation mais vous pouvez essayer une des options suivantes:

  • Utilisez un USB -> Câble série et utiliser le deuxième port série de votre Leonardo
  • Si vous avez un enraciné téléphone, essayez de désactiver le Keyboarddriver USB à l'aide adb ou un émulateur Shell
  • Modifier l'Arduino Firmware et retirez la partie Emulation (Si vous avez une autre Arduino pour reprogrammer votre Leonardo)

Je pense que c'est tout ce que vous pouvez faire.

+0

une solution de contournement est, Si j'installe une autre application du clavier comme aller ou Swype puis je reçois une notification à choisir la méthode d'entrée. à partir de là, je peux désactiver le matériel externe et cela ramène mon clavier. Travaille pour moi! – whizzzkid

2

Modifier /usr/share/arduino/hardware/arduino/cores/arduino/USBDesc.h et commentez la ligne

#define HID_ENABLED 

afin qu'il se lise à la place:

/* #define HID_ENABLED */ 

Cette fait partie du code qui est compilé dans chaque esquisse pour permettre la prise en charge USB, et cette modification empêchera le compilage HID d'être compilé dans de futures esquisses. Vous devrez être root ou utiliser sudo pour écrire vos changements dans le fichier. (Est-il nécessaire de redémarrer l'IDE Arduino après avoir effectué cette modification?) Vous ne savez pas.) Sous Windows ou OS X, vous devez déterminer où les fichiers de support d'Arduino sont installés et éditer le fichier analogue.

Mots-clés: clavier virtuel Android désactivé tout Arduino est connecté

+0

va essayer cela, permet de voir comment ça se passe! .. – whizzzkid

Questions connexes