Pages: 1 [2] 3   Go Down
Author Topic: [RESOLU]Ajouter un port USB pour clavier  (Read 4661 times)
0 Members and 1 Guest are viewing this topic.
France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci. Ça compile, maintenant.

Quand j'appuie sur la touche 'a', comment l'ordinateur sait si j'envoie
Code:
a a a a a a a a a a a a a a a
très rapidement ou si j'envoie
Code:
a______________________
(une pression continue) ?

Mon but est de faire une manette de jeux vidéos qui envoie à l'ordinateur des commandes clavier, et j'aimerais éviter les saccades qui peuvent êtres dérangeantes...
Je peux même en faire une manette multi-jeux : je connecte à l'ordi en USB série, j'envoie un caractère à la carte selon le jeux auquel je vais jouer, je coupe, je débranche (alim. jack) et je rebranche à la prise v-usb.

Mon shield proto arrive, avant d'acheter les composants, merci de me confirmer que c'est bien ce circuit :


Le *.pdf est téléchargé depuis usb.org, je pense que les références sont bonnes.
« Last Edit: December 31, 2012, 08:17:16 am by numero_744 » Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5413
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quand j'appuie sur la touche 'a', comment l'ordinateur sait si j'envoie
Code:
a a a a a a a a a a a a a a a
très rapidement ou si j'envoie
Code:
a______________________
(une pression continue) ?
Plusieurs appuis = plusieurs événements USB appui / relâche.
Un appui continu = un événements USB appui seul.

Mon but est de faire une manette de jeux vidéos qui envoie à l'ordinateur des commandes clavier, et j'aimerais éviter les saccades qui peuvent êtres dérangeantes...
Je peux même en faire une manette multi-jeux : je connecte à l'ordi en USB série, j'envoie un caractère à la carte selon le jeux auquel je vais jouer, je coupe, je débranche (alim. jack) et je rebranche à la prise v-usb.
Tu devras faire ta propre version de la librairie usbKeyboard en enlevant la partie relâchement "auto" de la touche.

Mon shield proto arrive, avant d'acheter les composants, merci de me confirmer que c'est bien ce circuit :
C'est bon.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mille mercis Skywodd !
Je vais sauter sur le code source de usbKeyboard et modifier la fonction sendKeyStroke façon leonardo et changer les #define des touches pour avoir un clavier plus complet.
Je suis vraiment soulagé !
Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai fait les modifications de "UsbKeyboard.h" (document ci-joint)
Est-ce bien ?
Je sais que l'exemple ne fonctionnera plus avec.
Je crains plutôt que mes if dans le sendKeyStroke soient mal placés ou que mes #define dysfonctionnent.
Encore merci !

* UsbKeyboard.h (7.11 KB - downloaded 21 times.)
Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

S'cusez-moi, y'a erreur, je remets la bonne version. Enfin, je ne sais pas si elle marche. Mais elle devrait. Elle compile (aussi avec l'exemple) mais je ne peux pas l'essayer. Donc celle qui devrait marcher, quoi !
Pouvez vous me dire si elle fonctionne correctement s'il vous plaît ?

* UsbKeyboard.h (7.61 KB - downloaded 30 times.)
Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5413
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est pas trés clair le code ...
Moi je garderai juste le nécessaire pas plus (voir pièce jointe).

(Attention: j'ai pas testé le code !)

* usbKeyboard.h (4.5 KB - downloaded 22 times.)
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour ta réponse, mais ton code ne peut pas marcher : il faut garder sendKeyStroke() (sinon ça ne compile pas smiley-evil)
J'aimerais juste savoir si
Code:
  void press(byte keyStroke) {
    while (!usbInterruptIsReady()) {
      // Note: We wait until we can send keystroke
      //       so we know the previous keystroke was
      //       sent.
    }
     
    memset(reportBuffer, 0, sizeof(reportBuffer));

    reportBuffer[0] = 0;
    reportBuffer[1] = keyStroke;
       
    usbSetInterrupt(reportBuffer, sizeof(reportBuffer));
  }
et
Code:
  void release(byte keyStroke) {
    while (!usbInterruptIsReady()) {
      // Note: We wait until we can send keystroke
      //       so we know the previous keystroke was
      //       sent.
    }
     
    // This stops endlessly repeating keystrokes:
    memset(reportBuffer, 0, sizeof(reportBuffer));     
    usbSetInterrupt(reportBuffer, sizeof(reportBuffer));
  }
marcheront (en tout cas, ça compile).

Sinon,
Code:
  void send(byte keyStroke) {
    sendKeyStroke(keyStroke);
  }
est juste un raccourcis. (Quel flemmard je suis ! smiley-yell)

Merci encore, mon proto shield devrait arriver aujourd'hui, j'irai acheter les composants demain !
« Last Edit: January 02, 2013, 06:10:23 am by numero_744 » Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5413
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour ta réponse, mais ton code ne peut pas marcher : il faut garder sendKeyStroke() (sinon ça ne compile pas smiley-evil)
Moi je part du principe que je suit l'API leonardo et que par conséquent j'oublie l'ancienne api de usbKeyboard smiley-wink

J'aimerais juste voir si
Code:
  void press(byte keyStroke) {
    while (!usbInterruptIsReady()) {
      // Note: We wait until we can send keystroke
      //       so we know the previous keystroke was
      //       sent.
    }
     
    memset(reportBuffer, 0, sizeof(reportBuffer));

    reportBuffer[0] = 0;
    reportBuffer[1] = keyStroke;
       
    usbSetInterrupt(reportBuffer, sizeof(reportBuffer));
  }
et
Code:
  void release(byte keyStroke) {
    while (!usbInterruptIsReady()) {
      // Note: We wait until we can send keystroke
      //       so we know the previous keystroke was
      //       sent.
    }
     
    // This stops endlessly repeating keystrokes:
    memset(reportBuffer, 0, sizeof(reportBuffer));     
    usbSetInterrupt(reportBuffer, sizeof(reportBuffer));
  }
marcheront (en tout cas, ça compile).
Ça marchera mais autant faire une seule fonction qui prend une touche + modificateur en argument et qui est appelé par les autres fonctions.
Copier coller du code n'est jamais une bonne solution.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut, j'ai reçu mon proto shield et je ne sais pas comment souder ma prise USB, manque de trous...
Merci !
Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5413
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut, j'ai reçu mon proto shield et je ne sais pas comment souder ma prise USB, manque de trous...
Comment ça ?
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Y'a pas de trous ! J'les mets où le broches de la prise ?
Cf image jointe à ce post.


* Image 1.png (30.93 KB, 124x116 - viewed 56 times.)
Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5413
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Y'a pas de trous ! J'les mets où le broches de la prise ?
Cf image jointe à ce post.
C'est l'emplacement pour un composant CMS !
Si tu veut souder ton port usb c'est de l'autre côté dans la zone avec des pastilles qu'il faut travailler smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oups ! smiley-eek smiley-eek-blue
 smiley-sweat Cette partie (pièce jointe) ?
Comment placer la prise pour que d+ et d-; 5V et GND ne soient pas reliés ?


* Image 2.png (59.49 KB, 156x183 - viewed 25 times.)
Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France, Lyon 6°
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

. . ./_ _ _/. . ./
. ./_ . _ ./. .//_ ./. . _/_ _/./. _ ./_ _ _//_ _ . . ./. . . . _/. . . . _/
. . ./_ _ _/. . ./
Logged

- Arduino UNO R3;
- PowerBook G4;
  - Arduino (C)
  - Eclipse (Java)
  - wxLua (µLua)
  - TextWrangler (HTML + JS)
- (3)DS et bientôt R4 (po

France
Offline Offline
God Member
*****
Karma: 4
Posts: 980
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est ton clavier USB maison qui fait du morse ?  smiley-mr-green

De quel type est l'embase USB à souder ? A ou B ? http://www.gotronic.fr/cat-connecteurs-usb-929.htm
Si c'est une embase B il faut couper deux pistes de la carte proto pour obtenir 4 pastilles 'en carré' , sans liaison entre elles.
Si c'est une embase A il ne doit pas y avoir de problème (4 broches en ligne au pas de 2,54 mm)
« Last Edit: January 07, 2013, 04:02:59 pm by al1fch » Logged

Pages: 1 [2] 3   Go Up
Jump to: