En cours Leonardo bootloader help...

  • Auteur de la discussion gaston83
  • Date de début
S

speedjf37

Compagnon
Bonjour,

De retour 2h après test de: #80
https://www.usinages.com/threads/leonardo-bootloader-help.119416/page-5



Pour re-télécharger bloquer le bouton RAZ pendant la compilation
JF

1552671245329.png


1552671301161.png
 
G

gaston83

Compagnon
Bonsoir,
J'ai testé aussi et c'est vrai qu'il faut appuyer sur RAZ pour re téléverser mais comment fait-tu pour avoir qu'une info qui s'affiche ? Moi quand j'appui sur le bouton j'ai une palanqué de ";" qui s'affiche.

est-ce que tu as testé ça... ce serait le début de la solution si ça pouvait fonctionner. Le prog en soi fonctionne, mais sans l'include <Keyboard>.
Dés qu'on le met le bouton ne fait plus rien.

#include <Mouse.h>

// #include <Keyboard.h>

void setup() {
pinMode(5, INPUT_PULLUP);
//initiate the Mouse library
Mouse.begin();
}

void loop() {
//if the button is pressed, send a left mouse click
if (digitalRead(5) == LOW) {
Mouse.click();
delay(100);
}

}
 
S

speedjf37

Compagnon
Bonsoir,
J'ai testé aussi et c'est vrai qu'il faut appuyer sur RAZ pour re téléverser mais comment fait-tu pour avoir qu'une info qui s'affiche ? Moi quand j'appui sur le bouton j'ai une palanqué de ";" qui s'affiche.

est-ce que tu as testé ça... ce serait le début de la solution si ça pouvait fonctionner. Le prog en soi fonctionne, mais sans l'include <Keyboard>.
Dés qu'on le met le bouton ne fait plus rien.

#include <Mouse.h>

// #include <Keyboard.h>

void setup() {
pinMode(5, INPUT_PULLUP);
//initiate the Mouse library
Mouse.begin();
}

void loop() {
//if the button is pressed, send a left mouse click
if (digitalRead(5) == LOW) {
Mouse.click();
delay(100);
}

}

Cela fonctionne bien y compris avec le include <Keyboard.h>

Pour le test ouvre un éditeur notepad++ pour moi

saisi des caractères et sélectionne en un groupe
ta sélection change de couleur
appuie sur ton bouton 5 la sélection change (éventuellement les icones s'animent dans le menu)

PS il faudra un antirebond pour faire un truc stable

JF
 
G

gaston83

Compagnon
qu'on soit d’accord, de quel exemple tu parles , Du tien ou du mien ?
 
G

gaston83

Compagnon
Ha... donc tu as fais le montage avec un seul bouton et lorsque tu appuis et tu positionnes le curseur de ta souris pour réduire une fenêtre windows, la fenêtre se ferme ? avec ou sans l'include <keyboard.h validé.
 
S

speedjf37

Compagnon
Ha... donc tu as fais le montage avec un seul bouton et lorsque tu appuis et tu positionnes le curseur de ta souris pour réduire une fenêtre windows, la fenêtre se ferme ? avec ou sans l'include <keyboard.h validé.

#include <Mouse.h>

#include <Keyboard.h>

void setup() {
pinMode(5, INPUT_PULLUP);
//initiate the Mouse library
Mouse.begin();
}

void loop() {
//if the button is pressed, send a left mouse click
if (digitalRead(5) == LOW) {
Mouse.click(MOUSE_LEFT);
delay(100);
}

}

juste modifié le
Mouse.click(MOUSE_LEFT);OUI cela fonctionne fermeture de la fenètre
 
G

gaston83

Compagnon
Bon ok.... chez moi ça ne fonctionne pas. Là, je ne vois plus....
 
S

speedjf37

Compagnon
différences entre les 2 versions

KeyboardAndMouseControl
entrée 6 10k pulldown
cde par +

test_gaston83
entrée 5 pullup
cde par -
 
G

gaston83

Compagnon
Excuses-moi, mais j'ai l'impression que je n'arrive pas à me faire comprendre....

Dans mon fichier, mon entrée 5 en Pullup, cde - fonctionne que lorsque l'include <Keyboard.h> n'est pas validé. Cette même entrée ne fonctionne plus lorsque l'include <Keyboard.h> est validé.
 
S

speedjf37

Compagnon
G

gaston83

Compagnon
Bonjour,

C'est cela que tu veux réaliser:

Hé ben voilà... c'est exactement ça que je voulais faire.... je vais potasser ça............ un grand merci !!!

Mais je voudrais quand même comprendre pourquoi chez toi ça fonctionne et pas chez moi. Pourrais-tu me dire ta configuration. PC, OS, IDE enfin le max d'info que je puisse comparer avec moi. Parce que là je ne vois plus que çà.
 
S

speedjf37

Compagnon
Hé ben voilà... c'est exactement ça que je voulais faire

Bonjour,

Attention il n'utilise pas l'encodeur (hors de prix en suivant le lien) dans l’Arduino il est câblé directement sur le boitier CNC.

Par contre la librairie clavier gère les rebonds et filtre les différents clics possibles (1 2 3 court/long) soit 6 possibilités par bouton.
#include "ClickButton.h"


Par ailleurs Il y aussi des versions avec afficheur LCD.

As tu essayé la version complète du #80 ? (attention boutons aux +)

JF
 
G

gaston83

Compagnon
Jai lu....

Attention il n'utilise pas l'encodeur (hors de prix en suivant le lien) dans l’Arduino il est câblé directement sur le boitier CNC.

C'est vrai.... ça va compliqué les choses. On va rester simple... pour l'instant. Mon fichier fonctionne chez toi, il n'y a pas de raison pour qu'il ne fonctionne pas chez moi.

Là pour moi, ça devient une question personnelle entre lui et moi.... :mad:

Tu peux me donner ta config.... ?
 
Dernière édition:
G

gaston83

Compagnon
Me*de.... pourquoi ça marche pas chez moi.... ?????

Ma config.
W7
IDE 1.8.8, j'ai essayé la 1.8.6, la 1.8.5 c'est pareil...!
 
G

gaston83

Compagnon
J'ai pris mon portable en W10. J'ai installé IDE 1.8.5.... j'ai téléversé mon fichier (tout con, un bouton) et voilà.... c'est pas beau ça...

1.8.5.PNG
 
G

gaston83

Compagnon
et le message d'erreur qui va avec....



Arduino : 1.8.5 (Windows 10), Carte : "Arduino/Genuino Uno"

In file included from C:\Users\AA\Documents\Arduino\sketch_mar14c\sketch_mar14c.ino:1:0:

C:\Program Files\Arduino\libraries\Mouse\src/Mouse.h:29:2: warning: #warning "Using legacy HID core (non pluggable)" [-Wcpp]

#warning "Using legacy HID core (non pluggable)"

^

C:\Users\AA\Documents\Arduino\sketch_mar14c\sketch_mar14c.ino: In function 'void setup()':

sketch_mar14c:8: error: 'Mouse' introuvable. Est-ce que votre croquis inclut la ligne '#include <Mouse.h>' ?
Mouse.begin();

^

C:\Users\AA\Documents\Arduino\sketch_mar14c\sketch_mar14c.ino: In function 'void loop()':

sketch_mar14c:14: error: 'Mouse' introuvable. Est-ce que votre croquis inclut la ligne '#include <Mouse.h>' ?
Mouse.click();

^

exit status 1
'Mouse' introuvable. Est-ce que votre croquis inclut la ligne '#include <Mouse.h>' ?

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.
 
S

speedjf37

Compagnon
Arduino : 1.8.5 (Windows 10), Carte : "Arduino/Genuino Uno"

NORMAL !!!!!!!!

#warning "Using legacy HID core (non pluggable)"

pas d'USB natif sur un "Arduino/Genuino Uno"

type de carte choisir "Arduino Leonardo"
 
G

gaston83

Compagnon
ça y est, ça fonctionne.... sur le portable. Je n'avais pas sélectionné la bonne carte. Mais sur le PC Bureau elle est sélectionnée.... et ça ne marche pas.
Bon, je vais fouiller... là....
 
G

gaston83

Compagnon
Lorsque je veux lancer IDE, il met un temps fou pour démarrer. Une idée...

j'ai regardé les périphériques et j'ai ça.... peut-être que....

détails periph.JPG
 
Dernière édition:
S

speedjf37

Compagnon
Lorsque je veux lancer IDE, il met un temps fou pour démarrer. Une idée...

j'ai regardé les périphériques et j'ai ça.... peut-être que....

Voir la pièce jointe 462110

Sur celui qui dec....ne ?

sur le portable I7 démarrage en 6s
viens de mettre 1.8.9

utilise java gourmand en mémoire

edit : manque probablement des pilotes spécifiques carte mère
 
G

gaston83

Compagnon
Bonsoir,

J'ai branché un disque dur avec W10 avec ce fichier.... et ça fonctionne. Donc j'ai une me*de sur mon W7.

/*---------------------------------------------------------------------------------------
'* jpbbricole 2019 03 13
'* modifié gaston 83 (supression du bouton poussoir et ajout clic gauche de la souris)
'* Codeur rotatif basé sur le schéma
'* http://www.mon-club-elec.fr/pmwiki_...ki.php?n=Main.LibrairieS65ShieldRotaryEncoder
'*
'* Avec simulation de touches de clavier PC
'* https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardmodifiers/
'* https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardpress/
'*---------------------------------------------------------------------------------------
*/
#include <Encoder.h> // Gestion bouton rotatif https://github.com/PaulStoffregen/Encoder
#include <Keyboard.h> // Pour simuler les fonctions du clavier
#include <Mouse.h>

const int ClicGauche = 5;

//------------------------------------- Codeur rotatif

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


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

int codRotIncrement = 0; // Direction de l'encodeur +1 ou -1

void setup()

{
pinMode (ClicGauche, INPUT_PULLUP);
Mouse.begin();
Keyboard.begin();
}

void loop()
{
//------------------------------------ Lecture du codeur rotatif

if (digitalRead(5) == LOW) {
Mouse.click();
delay(100);
}

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.write(KEY_LEFT_ARROW);
}

if (codRotIncrement > 0)
{
Keyboard.write(KEY_RIGHT_ARROW);
}

codRotIncrement = 0;
codRot.write(0); // Pour remettre le compteur du bouton rotatif à 0 (dans bibliothèque)
}

}

// fin du prog
 
G

gaston83

Compagnon
Bonsoir à tous,

manque probablement des pilotes spécifiques carte mère

Ce n'est pas ça qui bloque le mouse.h. Quand j'ai installé W10 je n'ai pas installé les pilotes de la carte mère. Si il y a d'autres idées, je suis preneur.
 
G

gaston83

Compagnon
Bonjour à tous,
Bon, je continu... à faire des tests. Sur Mach3, la combinaison des touches ALT+J provoque le changement de saut. Donc, dans ma petite tête je me suis dis en faisant un petit prog pour simuler la combinaison de touche ALT + J avec le bouton en pin5, ça devrait le faire.. ben non ... :smt017 ça merdoit à quelque part...

le code:

#include <Keyboard.h> // Pour simuler les fonctions du clavier

const int ALT_J = 5;
const int KEY_ALT;

void setup()

{
pinMode (ALT_J, INPUT_PULLUP);
Keyboard.begin();
}

void loop()
{

if (digitalRead(5) == LOW) {

Keyboard.press(KEY_ALT);
delay(100);
Keyboard.press("J");
delay(100);
Keyboard.releaseAll();
delay(100);

}


}
// fin du prog
 
G

gaston83

Compagnon
Correction.... ça fonctionne... pour le bouton...:zoutte:


#include <Keyboard.h>

char ctrlKey = KEY_LEFT_ALT;

void setup() {
pinMode(5, INPUT_PULLUP);
Keyboard.begin();
}

void loop() {
while (digitalRead(5) == HIGH) {

delay(100);
}
Keyboard.press(ctrlKey);
delay(100);
Keyboard.press('j');
delay(100);
Keyboard.releaseAll();

}

//fin
 
S

speedjf37

Compagnon
Correction.... ça fonctionne... pour le bouton...:zoutte:


#include <Keyboard.h>

char ctrlKey = KEY_LEFT_ALT;

void setup() {
pinMode(5, INPUT_PULLUP);
Keyboard.begin();
}

void loop() {
while (digitalRead(5) == HIGH) {

delay(100);
}
Keyboard.press(ctrlKey);
delay(100);
Keyboard.press('j');
delay(100);
Keyboard.releaseAll();

}

//fin

Bonjour Gaston,

Super ça avance !

Tu n'as besoin de déclarer une variable intermédiaire.
Keyboard.press(KEY_LEFT_ALT);

pour le 'j'
entre ' ' c'est un (seul) caractère
entre " " c'est une chaine de caractères ex: "aBcd"
Attention au minuscule et majuscule pour certaines commandes

Keyboard.press("J");

Keyboard.press('j');

La syntaxe est rigoureuse en 'C' C++


JF
 
G

gaston83

Compagnon
Ok, ça avance même bien... le codeur fonctionne avec le changement de saut... :7dance:

le code:

/*---------------------------------------------------------------------------------------
'* 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

char ctrlKey = KEY_LEFT_ALT;

//------------------------------------- Codeur rotatif

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


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

int codRotIncrement = 0; // Direction de l'encodeur +1 ou -1

void setup() {

{
pinMode (5, INPUT_PULLUP);
Keyboard.begin();
}

}
void loop()
{
if (digitalRead(5) == LOW) {

delay(100);
Keyboard.press(ctrlKey);
delay(100);
Keyboard.press('j');
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.write(KEY_LEFT_ARROW);
}

if (codRotIncrement > 0)
{
Keyboard.write(KEY_RIGHT_ARROW);
}

codRotIncrement = 0;
codRot.write(0); // Pour remettre le compteur du bouton rotatif à 0 (dans bibliothèque)
}
}


// fin du prog
 
Dernière édition:
G

gaston83

Compagnon
Maintenant il va falloir améliorer tout ça avec des ajouts de commande.

1) bouton de sélection d'axe X,Y,Z et utiliser le rotatif
2) bouton pouvoir choisir l'axe et le remettre à Zéro
3) bouton Départ
4) bouton Pause
5) bouton Arrêt
6) A.U

et si il y a d'autres idées... allez y .... autant faire quelques chose de bien :wink:
 

Sujets similaires

osiver
Réponses
14
Affichages
32 899
osiver
osiver
Haut