En cours Leonardo bootloader help...

  • Auteur de la discussion gaston83
  • Date de début
gaston83
gaston83
Compagnon
17 Fev 2016
1 461
FR-71520
  • Auteur de la discussion
  • #121
Bonsoir à tous,

Je viens de découvrir MachScreen..... :zoutte: y a tout ce qu'il faut.... pour avancer... surtout les raccourcis ... bon sang !!!

Bon je vais réfléchir au boitier, maintenant.... j'en ai vu sur le net, faut faire un choix !
 
gaston83
gaston83
Compagnon
17 Fev 2016
1 461
FR-71520
  • Auteur de la discussion
  • #122
Bonjour à tous,

Je bute sur un truc... je voudrais appuyer sur le bouton (qui fait CTRL) le maintenir appuyer tout en modifiant le saut avec le rotatif ... dans le code la routine keyctrl est mal placée... je ne sais pas ou la mettre.... j'ai essayé mais en vain...

/*---------------------------------------------------------------------------------------
'* jpbbricole 2019 03 13
'* modifié gaston 83 (ajout du bouton sur pin 5)
et l'aide de speedf37
*/

#include <Encoder.h> // Gestion bouton rotatif https://github.com/PaulStoffregen/Encoder
#include <Keyboard.h> // Pour simuler les fonctions du clavier

// Définition des boutons (raccourcis clavier)
char keyalt = KEY_LEFT_ALT;
char keytab = 179; // valeur Ascii décimale de TAB
char keyctrl = 128; // Valeur Ascii décimale de CTRL Gauche

//------------------------------------- Codeur rotatif
#define codRotApin 6 // Pin du port A
#define codRotBpin 7 // Pin du port B

Encoder codRot(codRotApin, codRotBpin);
int rotencIncrement = 0; // Direction de l'encodeur +1 ou -1
int codRotIncrement = 0; // Direction de l'encodeur +1 ou -1

void setup() {

{
pinMode (5, INPUT_PULLUP);
pinMode (9, INPUT_PULLUP);
pinMode (10, INPUT_PULLUP);
Keyboard.begin();
}
}
void loop()
{
if (digitalRead(9) == LOW) { //KEY ALT
delay(100);
Keyboard.press(keyalt);
delay(100);
Keyboard.press('j');
delay(100);
Keyboard.releaseAll();
}

if (digitalRead(10) == LOW) { //KEY TAB
delay(100);
Keyboard.press(keytab);
delay(100);
Keyboard.releaseAll();
}

{
if (digitalRead(5) == LOW) { //KEY CTRL GAUCHE
delay(100);
Keyboard.press(keyctrl);
delay(100);
Keyboard.releaseAll();
}


// initialisation codeur

codRotIncrement = codRot.read() / 4; // Divisé par 4 parcequ chaque impulsion ressentie en tournant le bouton
// Génère 4 impulsions (https://www.logre.eu/wiki/Codeur_rotatif_incrémental)

if (codRotIncrement != 0) // Changement de MS affiché
{
if (codRotIncrement < 0)
{
delay(50);
Keyboard.write(KEY_LEFT_ARROW);
}

if (codRotIncrement > 0)
{
delay(50);
Keyboard.write(KEY_RIGHT_ARROW);
}
codRotIncrement = 0;
codRot.write(0); // Pour remettre le compteur du bouton rotatif à 0 (dans bibliothèque)
}
}
}




// fin du prog
 
S
speedjf37
Compagnon
15 Oct 2009
2 183
indre et loire
Bonjour Gaston,

Toujours pas compris que tu n'as pas besoin de redéfinir les commandes.

Elles sont la:
1553081938180.png


Pour utiliser un "modifier"
il faut envoyer ensemble le ""modifer" et la touche concernée
exemple pour ctrl_left et rotary encoder

si entrée 5 haut encodeur = flèche
si entrée 5 bas encodeur = ctrl_left + flèche

PS pas testé !

Edit il manque les indentations pourtant elles sont insérées
avec les balises c'est mieux

JF
 
Dernière édition:
gaston83
gaston83
Compagnon
17 Fev 2016
1 461
FR-71520
  • Auteur de la discussion
  • #124
Elles sont la:
et ??? ... je comprends pas.... ce qu'il faut faire... je me remets doucement à la programmation .... mais je suis largué.
Peux-tu m'expliquer .... mais plus en détail... s'il te plaît ?
 
S
speedjf37
Compagnon
15 Oct 2009
2 183
indre et loire
et ??? ... je comprends pas.... ce qu'il faut faire... je me remets doucement à la programmation .... mais je suis largué.
Peux-tu m'expliquer .... mais plus en détail... s'il te plaît ?
En haut de ma capture d'écran il y a le chemin du fichier Keyboard.h .
Dans ce fichier il y des constantes pour toutes les touches non Alphanumériques.

La ligne :
#include <Keyboard.h>

permet d'utiliser les constantes:

KEY_RIGHT_CTRL 0x84 132
KEY_RIGHT_SHIFT 0x85 133
KEY_RIGHT_ALT 0x86 134
KEY_RIGHT_GUI 0x87 135

KEY_LEFT_ARROW

JF
 
gaston83
gaston83
Compagnon
17 Fev 2016
1 461
FR-71520
  • Auteur de la discussion
  • #126
Bonjour à tous,

Un grand pas pour ... moi :roxxx:


/*---------------------------------------------------------------------------------------
'* jpbbricole 2019 03 13
'* modifié gaston 83 (ajout du bouton sur pin 5)
et l'aide de speedf37
*/

#include <Encoder.h> // Gestion bouton rotatif https://github.com/PaulStoffregen/Encoder
#include <Keyboard.h> // Pour simuler les fonctions du clavier

//------------------------------------- Codeur rotatif
#define codRotApin 6 // Pin du port A
#define codRotBpin 7 // Pin du port B

Encoder codRot(codRotApin, codRotBpin);
int codRotIncrement = 0; // Direction de l'encodeur +1 ou -1

void setup() {

{
pinMode (5, INPUT_PULLUP);
pinMode (9, INPUT_PULLUP);
pinMode (10, INPUT_PULLUP);
Keyboard.begin();
}
}
void loop()
{
if (digitalRead(9) == LOW) { //KEY ALT
delay(100);
Keyboard.press(KEY_LEFT_ALT);
delay(100);
Keyboard.press('j');
delay(100);
Keyboard.releaseAll();
}

if (digitalRead(10) == LOW) { //KEY TAB
delay(100);
Keyboard.press(KEY_TAB);
delay(100);
Keyboard.releaseAll();
}

// initialisation codeur

codRotIncrement = codRot.read() / 4; // Divisé par 4 parcequ chaque impulsion ressentie en tournant le bouton
// Génère 4 impulsions (https://www.logre.eu/wiki/Codeur_rotatif_incrémental)

if (codRotIncrement != 0) // Changement de MS affiché
{
if (codRotIncrement < 0)
{
Keyboard.begin();
if (digitalRead(5) == LOW) { //KEY CTRL GAUCHE
{
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.write(KEY_LEFT_ARROW);
Keyboard.releaseAll();
}
}
}

if (codRotIncrement > 0)
{
Keyboard.begin();
if (digitalRead(5) == LOW) { //KEY CTRL GAUCHE
{
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.write(KEY_RIGHT_ARROW);
Keyboard.releaseAll();
}
}
}

codRotIncrement = 0; // Remise à Zéro du codeur
codRot.write(0);

}
}

// fin du prog
 
S
speedjf37
Compagnon
15 Oct 2009
2 183
indre et loire
Bonjour Gaston,

Super !
Par contre contrairement à ce que je t'avais mis en exemple tu n'as pas gardé les 2 commandes avec/sans le ctrl + la flèche .

JF
 
gaston83
gaston83
Compagnon
17 Fev 2016
1 461
FR-71520
  • Auteur de la discussion
  • #128
Bonjour,

Par contre contrairement à ce que je t'avais mis en exemple tu n'as pas gardé les 2 commandes avec/sans le ctrl + la flèche .
C'est pas du tout voulu mais quel est l'intérêt ?
 
gaston83
gaston83
Compagnon
17 Fev 2016
1 461
FR-71520
  • Auteur de la discussion
  • #130
Bonjour,

Si tu n'as besoin que d'un mode de déplacement , il n'y a pas d'intéret à utiliser l'entrée 5
Ben, disons qu'involontairement je me suis fais une sécurité de fonctionnement. Il faudra que j'appui sur le bouton en 5 (CTRL) pour pouvoir actionner la manivelle. Je serais donc obligé d'être concentré sur ce que je fais....
 
Dernière édition:
Haut