Robotique-Projet
Bonjour et bienvenu sur le forum ROBOTIQUE-PROJET

Merci de nous rejoindre, pour avoir accès aux forum en entier,

il suffis juste de s'inscrire sa prends 2 minutes, et bien sur de faire sa

présentation, au plaisir de se croisé sur le forum.
Robotique-Projet

Forum sur la Robotique & Informatique & Programmation


Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

Seb03000

avatar
Fondateur
Fondateur
Voici un tuto trouvais sur le net fore intéressent.

Réalisateur de se tuto se nomme TWal.


Voici à quoi ressemble la carte Arduino leonardo.



Récemment, je me suis intéressé au contrôle du clavier avec l'arduino, et je suis tombé sur l'arduino leonardo.

- Pourquoi l'arduino leonardo ?

Les arduinos possèdent deux puces électroniques : une permettant de faire la conversion USB -> série, et l'autre que l'on programme. L'arduino leonardo diffère de ses confrères sur ce point : sa puce qu'on programme gère nativement l'usb ! On peut donc l'utiliser comme clavier, souris, clé usb, etc.

- Avant de commencer...

Si vous possédez une version récente de l'IDE arduino, il devrait y avoir une librairie pour contrôler très facilement la souris et le clavier.

Avant de commencer, je vous met en garde : l'arduino leonardo tapant sur votre clavier et utilise votre souris à votre place, il peut être rapidement gênant. C'est pourquoi on utilise un bouton pour le contrôler.

Le clavier se pilote avec l'objet Keyboard, et la souris avec l'objet Mouse. C'est compliqué, hein ? :D

Dans mes exemples, j'utilise un bouton cablé sur le pin 7 .ici

- Contrôler le clavier

L'objet Keyboard possède les méthodes suivantes :

void Keyboard.begin() : démarre la communication avec l'ordinateur
void Keyboard.end() : termine la communication avec l'ordinateur
void Keyboard.press(char key) : appuie sur la touche key. Faites attention si vous n'utilisez pas un clavier qwerty (voir ci-dessous)
int Keyboard.print(char* keys) ou (char key) : appuie sur la ou les touches key ou keys, et retourne le nombre d'octets envoyés (même avertissement)
int Keyboard.println(char* keys) ou (char key) : comme print, mais retourne à la ligne après. (encore le même avertissement)
int Keyboard.release(char key) : relache la touche key. Retourne le nombre de touches relachées (toujours le même avertissement)
int Keyboard.write(char key) : appuie puis relache la touche key, et retourne le nombre d'octets envoyés (je suppose que vous savez ce qui va entre ces parenthèses, à présent)
int Keyboard.releaseAll() : relache toutes les touches. Retourne le nombre de touches relachées


L'avertissement si vous n'utilisez pas de clavier qwerty : si vous dites à l'arduino d'écrire un "a", il va vous écrire un "q". En fait, l'arduino va envoyer la position de la touche "a", mais sur clavier qwerty, ça sera la position de la touche "q". Quand l'ordinateur inteprétera cet appui, il transformera ça en fonction de la disposition de clavier que vous utilisez. Ce sera sûrement azerty, chez vous.
Il faudra donc donner la position de la touche à appuyer en qwerty pour que ça marche.

Voici quelques exemples (qui supposera que vous êtes en qwerty, pour simplifier) :

Votre touche "A" ne marche plus ? Pas de problème ! Vous avez votre arduino leonardo.

Code:
const int buttonPin = 7;

void setup() {
    Keyboard.begin();
    pinMode(buttonPin, INPUT);
}

void loop() {
    if(digitalRead(buttonPin)) {
        Keyboard.press('a'); //Quand on appuie sur le bouton, on appuie sur "A"
    } else {
        Keyboard.release('a'); //Quand on relache le bouton, on relache "A"
    }
}

Vous voulez vous distinguer de vos compagnons sur IRC pendant votre salut ? Facile ! L'arduino leonardo est là.

Code:
const int buttonPin = 7;

void setup() {
    Keyboard.begin();
    pinMode(buttonPin, INPUT);
}

void loop() {
    while(!digitalRead(buttonPin)); //Tant qu'on appuie pas sur le bouton on fait rien

    //Un fois qu'on a appuyé sur le bouton, on affiche notre message trop classe
    Keyboard.println(" _________________________________");
    Keyboard.println("< Bien le bonsoir tout le monde ! >");
    Keyboard.println(" --------------------------------- ");
    Keyboard.println("        \\  ^__^");
    Keyboard.println("          \\  (oo)\\_______");
    Keyboard.println("            (__)\\      )\\/\\");
    Keyboard.println("                ||----w |");
    Keyboard.println("                ||    ||");

    //Puis on ne fait plus rien, (a ce moment, vous êtes sensés débrancher l'arduino leonardo)
    while(true);
}

Cela affichera le message suivant :

Code:
 _________________________________
< Bien le bonsoir tout le monde ! >
 ---------------------------------
        \  ^__^
          \  (oo)\_______
            (__)\      )\/\
                ||----w |
                ||    ||

- Contrôler la souris

L'objet Mouse possède les méthodes suivantes :

void Mouse.begin() : démarre la communication avec l'ordinateur
void Mouse.end() : termine la communication avec l'ordinateur
void Mouse.move(int x, int y, int wheel) : bouge la souris de x pixels sur l'axe horizontal, et de y pixels sur l'axe vertical, et bouge la roulette de wheel crans
void Mouse.press(char button) : appuie sur le bouton button. Button est une de ces trois constantes : MOUSE_LEFT, MOUSE_MIDDLE, MOUSE_RIGHT
void Mouse.release(char button) : relache le bouton button.
bool Mouse.isPressed(char button) : retourne si le bouton button est enfoncé
void Mouse.click(char button) : appuie puis relache le bouton button



Voici un exemple (presque utile !) :

Votre bureau est trop bien rangé ? Les icônes sont trop bien organisées ? Votre arduino leonardo peut vous les mélanger.

Code:
const int buttonPin = 7;

void setup() {
  Mouse.begin();
  pinMode(buttonPin, INPUT);
  randomSeed(analogRead(0));
}

void loop() {
  if(digitalRead(buttonPin)) {
      //Si on appuie sur la souris, on relache, sinon on appuie
      if(Mouse.isPressed(MOUSE_LEFT)) {
        Mouse.release(MOUSE_LEFT);
      } else {
        Mouse.press(MOUSE_LEFT);
      }

      //On écarte le pointeur de 50 a 100 pixels de la position actuelle
      int x = random(50, 100) * (random(0,2) * 2 - 1);
      int y = random(50, 100) * (random(0,2) * 2 - 1);
      Mouse.move(x, y);
  } else {
      if(Mouse.isPressed(MOUSE_LEFT)) {
        Mouse.release(MOUSE_LEFT);
      }
  }
}

Voilà tout, j'espère vous avoir donné des idées de hack avec le leonardo. Pour plus d'informations, je vous recommande de consulter la documentation .ici

Amateurs de VIM, vous n'avez plus qu'à vous fabriquer une pédale !ici


_________________
Voici ma chaîne YouTube: Drone-250-Time https://www.youtube.com/channel/UC3ArL72UR4AjpaF5r-pXpSg
Voici ma chaîne YouTube: Dark-Best https://www.youtube.com/channel/UCqHLYZ9IJyfguosa8_rz9Jg
Faite passé l'information les amies , merci a vous tous.
http://jarvise.atspace.cc/

Invité


Invité
A vrai dire on peut déjà envoyer des instructions à une Arduino simple juste avec le clavier tu sais ?

Seb03000

avatar
Fondateur
Fondateur
Je pense que tu n'a pas bien saisi se tuto , tu devrais re-lir afin de mieux comprendre , afin de ne pas marquer en ( gros que sa ne serre a rien ).

Merci.


_________________
Voici ma chaîne YouTube: Drone-250-Time https://www.youtube.com/channel/UC3ArL72UR4AjpaF5r-pXpSg
Voici ma chaîne YouTube: Dark-Best https://www.youtube.com/channel/UCqHLYZ9IJyfguosa8_rz9Jg
Faite passé l'information les amies , merci a vous tous.
http://jarvise.atspace.cc/

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum