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

Ouaaaaa, un protocole de communication révolutionnaire de chez M. Igloo.
Logged

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

C'est une USB de type B (pour avoir un seul câble pour les deux prises), avec les broches qui forment un carré, où couper les pistes ? Côté d+/d- ou 5V/GND ? Lequel aura droit à deux broches ? Lequel ne l'aura pas ? C'est par 3 broches, pas 2 ou 4, 3 ! Grr ! smiley-twist
Brancher le 5V(USB) sur Vin ou 5V ? Si on peut sur 5V, puis-je couper ces deux pistes et poser la prise à l'endroit où c'est coupé ?
Couper = gratter ?

Un clavier qui écrit en morse, pourquoi pas ?
Ajouter la librairie sMorse depuis ce post, modifier les dot(), les dash() et dans le switch modifier le case ' ' et supprimer le case '.' pour qu'au lieu de faire clignoter une LED, il écrive comme un clavier, mais en morse.
(Plus qu'à trouver un clavier matriciel azerty 37 touches (26 lettres + 10 chiffres + 1 espace)).
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

Euh... S'iouplé, j'attends les instructions pour tout souder, là...
Si quelqu'un pourrait me répondre, ça me ferait vachement avancer.
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: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Euh... S'iouplé, j'attends les instructions pour tout souder, là...
Si quelqu'un pourrait me répondre, ça me ferait vachement avancer.
Je vois pas pourquoi tu te casse la tête ...
Les prises USB-B ont 4 broches aux pas standard 2.54mm

Au milieu de ta protoshield tu as deux lignes GND / 5V.
Rien ne t'empêche de couper (avec un cutter, proprement) ces deux pistes pour avoir 4 petites pistes indépendantes.
Après tu peut câbler tes 4 broches de l'usb facilement avec les deux petites pistes devant et derrière le connecteur.
(voir mon mini schéma en pièce jointe)


* protoboard.png (5.93 KB, 610x214 - viewed 23 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, je pensais la mettre perpendiculaire (90° dans le sens des aiguilles d'une montre) à ce que tu me propose.
Donc, je pourrais ne pas couper le GND, mais puis-je laisser 5V USB connecté à 5V Arduino ou dois-je impérativement le brancher à Vin (la première solution me ferait une piste recto-verso de moins à couper...).
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: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci, je pensais la mettre perpendiculaire (90° dans le sens des aiguilles d'une montre) à ce que tu me propose.
Pourquoi pas ... moi je pensait que tu voulais avoir les deux ports usb dans le même sens mais ça pose pas de problème de le mettre à 90°.

Donc, je pourrais ne pas couper le GND, mais puis-je laisser 5V USB connecté à 5V Arduino ou dois-je impérativement le brancher à Vin (la première solution me ferait une piste recto-verso de moins à couper...).
Vusb -> 5v arduino, surtout pas à VIN !
Vin c'est la tension au niveau de la prise jack, donc avant le régulateur 5v.
Si tu relie Vusb et Vin ça ne marchera pas et le jour ou tu utiliseras une pile 9v ou un adaptateur secteur tout ton montage + ce qui est branché sur l'usb va cramer.
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

OK, merci.
Je souderais tout ça c't'aprèm si j'en ai le temps (c'est plutôt mal partit !).
J'essaierai de vous montrer ce que ça donne après.
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 commencé : je gratte, je gratte, mais ça coupe pas... Je continue de gratter ou pas ?
As-tu déjà essayé ?
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: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai commencé : je gratte, je gratte, mais ça coupe pas... Je continue de gratter ou pas ?
-> Cutter, si tu grattes tu va y passer des heures smiley-wink
Il suffit de faire deux petites coupures espacé d'un mm environ puis de faire sauter le morceau de piste entre avec la lame du cutter.
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

Il faut couper toute l'épaisseur du shield ? smiley-eek
J'y retourne avec ta méthode, je reviens dans quelques minutes ! smiley-cool
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: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il faut couper toute l'épaisseur du shield ? smiley-eek
J'y retourne avec ta méthode, je reviens dans quelques minutes ! smiley-cool
Mais non ! Juste l'épaisseur de la piste de cuivre ...
Imagine le bordel si il fallait couper au travers de la shield pour faire le moindre petit montage smiley-mr-green
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

OK, vu que je n'y arrivais pas avec le cutter, j'ai pris un petit (1mm max.) forêt. En coupant creusant, j'ai vu du bleu, donc je me suis arrêté là.
Mauvaise nouvelle : la piste GND est connectée aux deux bouts => pistes de plus à couper creuser...
Je n'ai pas fini de tout couper creuser et je ne sais pas quand je pourrais souder.

Je posterai ce que ça donne après construction et avant test.
Merci et au plus tôt !
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

Salut, je suis de retour, c'est tout soudé (photos jointes), étant un débutant dans ce domaine (ça doit être le deuxième fois de ma vie), c'est (très) sale.
(Oui, j'ai cramé le port ICSP avec le côté du fer, mais j'ai refait les trous !)
J'ai vérifié et revérifié au ohmmètre, ça passe quand il faut et ça ne passe pas quand il ne faut pas. Bref, côté hardware, ça devrait marcher.
Mais ça ne marche pas, ça doit être côté software, voici mon code :
Code:
#include <UsbKeyboard.h>

//D-pad
int H = 16;//Vitesse +
int L = 17;//Vitesse -
int Dl = 18;//Direction gauche
int Dr = 19;//Direction droite
//Potar
int Tour = A1;
//inter simple A/0/B avec ressort
int R = 10;//Tir
int l = 11;//Tourelle (Free/Lock)

//Variables
boolean prH = false;
boolean prL = false;
boolean prG = false;
boolean prD = false;

boolean prW = false;
boolean prX = false;
boolean prC = false;
boolean prV = false;

void setup() {
  pinMode(H, INPUT);
  pinMode(L, INPUT);
  pinMode(Dl, INPUT);
  pinMode(Dr, INPUT);
  pinMode(Tour, INPUT);
  pinMode(R, INPUT);
  pinMode(l, INPUT);
  digitalWrite(H, HIGH);
  digitalWrite(L, HIGH);
  digitalWrite(Dl, HIGH);
  digitalWrite(Dr, HIGH);
  digitalWrite(Tour, HIGH);
  digitalWrite(R, HIGH);
  digitalWrite(l, HIGH);
}

void loop() {
  UsbKeyboard.update();
  if(digitalRead(H) == LOW) {
    if(prH != true) {
      UsbKeyboard.press(ARROW_UP);
      prH = true;
    }
  } else {
    if(prH != false) {
      UsbKeyboard.release(ARROW_UP);
      prH = false;
    }
  }
  if(digitalRead(L) == LOW) {
    if(prL != true) {
      UsbKeyboard.press(ARROW_DOWN);
      prL = true;
    }
  } else {
    if(prL != false) {
      UsbKeyboard.release(ARROW_DOWN);
      prL = false;
    }
  }
  if(digitalRead(Dl) == LOW) {
    if(prG != true) {
      UsbKeyboard.press(ARROW_LEFT);
      prG = true;
    }
  } else {
    if(prG != false) {
      UsbKeyboard.release(ARROW_LEFT);
      prG = false;
    }
  }
  if(digitalRead(Dr) == LOW) {
    if(prD != true) {
      UsbKeyboard.press(ARROW_RIGHT);
      prD = true;
    }
  } else {
    if(prD != false) {
      UsbKeyboard.release(ARROW_RIGHT);
      prD = false;
    }
  }
  if(analogRead(Tour) >= 800) {
    if(prW != true) {
      UsbKeyboard.press(KEY_W);
      prW = true;
    }
  } else {
    if(prW != false) {
      UsbKeyboard.release(KEY_W);
      prW = false;
    }
  }
  if(analogRead(Tour) < 800 && analogRead(Tour) >= 600) {
    if(prX != true) {
      UsbKeyboard.press(KEY_X);
      prX = true;
    }
  } else {
    if(prX != false) {
      UsbKeyboard.release(KEY_X);
      prX = false;
    }
  }
  //rien de 400 à 600
  if(analogRead(Tour) < 400 && analogRead(Tour) >= 200) {
    if(prC != true) {
      UsbKeyboard.press(KEY_C);
      prC = true;
    }
  } else {
    if(prC != false) {
      UsbKeyboard.release(KEY_C);
      prC = false;
    }
  }
  if(analogRead(Tour) < 200) {
    if(prV != true) {
      UsbKeyboard.press(KEY_V);
      prV = true;
    }
  } else {
    if(prV != false) {
      UsbKeyboard.release(KEY_V);
      prV = false;
    }
  }
  if(digitalRead(R) == LOW) {
    UsbKeyboard.send(KEY_SPACE);
  }
  if(digitalRead(l) == LOW) {
    UsbKeyboard.send(KEY_L);
    while(digitalRead(l) == LOW) {
      ;
    }
  }
}
Ça compile mais l'Arduino (ou l'ordinateur) ne réagit pas...
Je met la librairie complète UsbKeyboard qui est dans mon dossier "librairies" en pièce jointe.

Merci.


* Vusb+TVout front.JPG (797.55 KB, 2256x1496 - viewed 27 times.)

* Vusb+TVout back.JPG (890.84 KB, 2256x1496 - viewed 24 times.)
* UsbKeyboard.zip (114.95 KB - downloaded 10 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: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Test avec le code d'origine qui marche.
Si ça ne marche pas c'est que ton montage est foireux, si ça marche c'est que ton code est foireux smiley-wink
Logged

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

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