J'essaie d'utiliser un arduino leonardo pour "ajouter" des boutons à ma souris.
je n'arrive à simuler que les 3 premiers boutons avec les valeurs 1 (bouton gauche),2 (bouton droit) et 4(bouton de la molette) dans les fonctions Mouse.press et Mouse.release mais les autres boutons de 4 à 15...
Pouvez-vous me donner votre avis, s'il vous plait ?
D'avance merci.
Je vous joins le code complet.
#include <Mouse.h>
#define Bp_Nb 8
bool Bp_flag[Bp_Nb];
int Bp_num[]={2,3,4,5,6,7,8,9};
char Bp_code[]={1,2,4,3,16,32,8,1};
int Num;
void setup() {
Mouse.begin();
for (Num=0;Num<Bp_Nb;Num++){
pinMode(Bp_num[Num], INPUT);
Bp_flag[Num]=false;
}
}
void loop() {
for (Num=0; Num<Bp_Nb; Num++){
if (digitalRead(Bp_num[Num]) == HIGH){
if (!Bp_flag[Num]) {
Mouse.press(Bp_code[Num]);
Bp_flag[Num]=true;
}
}else{
if (Bp_flag[Num]) {
Mouse.release(Bp_code[Num]);
Bp_flag[Num]=false;
}
}
}
delay(100);
}
A priori, il faudrait modifier la table de description (_hidReportDescriptor dans Mouse.h) car celle-ci décrit par défaut une souris à 3 boutons.
Mais franchement, les doc de la norme USB sont particulièrement indigestes.
Bonne chance.
Dans le lien donné par @lesept tu peut voir qu'il y a des exemples.
En général ces exemples sont aussi disponible à partir de l'IDE d'Arduino quand tu as installé la librairie.
J'ai vu les exemples sur le site et non sur l'application. Je viens de les voir (grâce à vous).
Je suis peut-être (pour pas dire surement) bête. Mais, je retrouve la phrase:
const uint8_t MouseInput = MOUSE_LEFT;
Je me demande comment coder les autres boutons si 1 c'est gauche, 2 droit, 4 milieu.
Faut-il continuer avec 8,16,32,64....????
Pour ton cas, je pense qu'il ne faut pas regarder du coté de la souris, car je pense qu'une souris peut avoir que 3 boutons.
Les souris qui ont plus de bouton(gamer), doivent je suppose créer tes boutons de type "joystick".
Comme les pilotes HID, gére aussi bien une souris, un clavier ou un joystick.
Pour tes boutons supplémentaire, prend comme exemple JoystickButton.ino
J'ai survolé ton post, mais les boutons 4 à 15 sont censés quoi faire exactement.
Quel logiciel est censé les intercepter?
Mon logiciel de dessin industriel est (censé) pouvoir gérer des souris avec 15 boutons...
avec les quels il est possible de lancer directement des actions, des fonctions.
de plus il est possible d'utiliser les combinaisons avec shit, alt et ctrl, sans compter les combinaisons entre les boutons. après cela devient une centrale nucléaire.
j'aimerais pouvoir simplement avoir un bouton pour copier, déplacer,... histoire de me faciliter la vie...
je viens de changer la bibliothèque joystick et j'obtiens le message:
In file included from C:\Users\CHEVAL~1\AppData\Local\Temp\arduino_modified_sketch_988385\JoystickButton.ino:34:0:
C:\Temp\Perso\Arduino\libraries\Joystick/Joystick.h:24:10: fatal error: DynamicHID/DynamicHID.h: No such file or directory #include "DynamicHID/DynamicHID.h"
^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Erreur de compilation pour la carte Arduino Leonardo
Savez vous ce que cela veut dire???
Ca signifie qu'il ne trouve pas cette bibliothèque : il faut que tu l'installes.
Normalement, elle est ici :
C'est là que tu devrais avoir trouvé la bibliothèque du joystick, et elle devrait contenir celle que le compilo ne trouve pas.
Eventuellement regarde dans le répertoire Arduino/libraries/Joystick : est-ce que tu y vois un répertoire DynamicHD ? Il devrait y être. Sinon, essaye d'installer grâce au lien ci-dessus.