DIY - Aide boite à boutons

Votez pour l'image du mois
  • Même moi j'ai réussi en suivant le tuto de Darky, c'est dire si tout le monde peut y arriver ... Quitte à en mettre deux si tu veux beaucoup de fonctions, ça fera toujours moins chère que celle du commerce. Sinon il y a ça qui n'a pas l'air bien compliqué :

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Bonjour à tous. J'ai également utilisé ce tuto pour créer ma button box, mais j'ai un souci avec le programme... quelqu'un pourrait- il m'aider. J'ai une arduino uno : voici le message d'erreur que j'obtiens à la compilation.

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


    \Arduino\Button_Box_32\Button_Box_32.ino:7:20: fatal error: Keypad.h: No such file or directory


    #include <Keypad.h>

    ^

    compilation terminated.


    exit status 1


    Erreur de compilation pour la carte Arduino/Genuino Uno

    Merci :B

  • Perso j'ai fait celle de Darky mais (ma question est peut-être conne) tu es allé voir dans les commentaires de la vidéo pour voir si d'autres ont eu le même problème ?

    Simulateur : SimuCube 2 Pro / Ascher Racing F28-SC et B16M-SC / Heusinkveld Silm Pedals Pro / Thrustmaster TH8A / Heusinkveld Sim Handbrake / Sim-Lab GT1 Evo / Oreca Trophy / Meta Quest 2

    PC : Zalman Z1 / Intel Core i5-7600K / Gigabyte RTX 2070 WindForce 2X / DDR4 HyperX Fury 2x8 Go

  • je crois que la carte UNO n'est pas faite pour la buttonbox , c'est la leonardo qui est prise pour cela

    pour un boite a bouton avec une carte UNO, c'est plus compliqué, ou sinon passe comme moi par simhub (je controle des cartes UNO, NANO) tu as jusqu'a 8 buttons max par cartes si tu elimines des fonctions)

    EDIT, j'ai regardé les liens que le type donnes dans sa video, il dit bien LEONARDO ou MICRO

  • je crois que la carte UNO n'est pas faite pour la buttonbox , c'est la leonardo qui est prise pour cela

    pour un boite a bouton avec une carte UNO, c'est plus compliqué, ou sinon passe comme moi par simhub (je controle des cartes UNO, NANO) tu as jusqu'a 8 buttons max par cartes si tu elimines des fonctions)

    EDIT, j'ai regardé les liens que le type donnes dans sa video, il dit bien LEONARDO ou MICRO

    merci pour ta réponse... J'avais une Uno sous le coude. Je ne comprend pas pourquoi ça ne fonctionnerai pas, il y a le même nombre d'entrée. et dessus j'ai déjà utilisé des boutons poussoirs. La différence ; c'est le programme et l'utilisation. Enfin du coup j'acheterai une Leobodnar. Merci:+:

  • Bonjour à tous,


    Voilà j'ai construis la boîte à bouton de amstudio seulement le code arduino micro ne fonctionne pas, j'ai évidement mis une note sur leur chaîne youtube mais pas de réponse et ce que parmi vous quelqu'un a fait cette boîte qui fonctionne et pourrait me donner le bon code que je puisse faire fonctionner la mienne.

    de tout cœur merci.

  • mince alors, je peux pas t'aider mais j'ai eu un soucis sur le code du frein à main, il fallait créer le nom de l'objet utilisé et il ne l'avait pas mis.

    Met le code ici on sait jamais si quelqu'un passe par là ?

  • //BUTTON BOX

    //USE w ProMicro

    //Tested in WIN10 + Assetto Corsa

    //AMSTUDIO

    //20.8.17

    #include <Keypad.h>

    #include <Joystick.h>

    #define ENABLE_PULLUPS

    #define NUMROTARIES 4

    #define NUMBUTTONS 24

    #define NUMROWS 5

    #define NUMCOLS 5


    byte buttons[NUMROWS][NUMCOLS] = {

    {0,1,2,3,4},

    {5,6,7,8,9},

    {10,11,12,13,14},

    {15,16,17,18,19},

    {20,21,22,23},

    };

    struct rotariesdef {

    byte pin1;

    byte pin2;

    int ccwchar;

    int cwchar;

    volatile unsigned char state;

    };

    rotariesdef rotaries[NUMROTARIES] {

    {0,1,24,25,0},

    {2,3,26,27,0},

    {4,5,28,29,0},

    {6,7,30,31,0},

    };

    #define DIR_CCW 0x10

    #define DIR_CW 0x20

    #define R_START 0x0

    #ifdef HALF_STEP

    #define R_CCW_BEGIN 0x1

    #define R_CW_BEGIN 0x2

    #define R_START_M 0x3

    #define R_CW_BEGIN_M 0x4

    #define R_CCW_BEGIN_M 0x5

    const unsigned char ttable[6][4] = {

    // R_START (00)

    {R_START_M, R_CW_BEGIN, R_CCW_BEGIN, R_START},

    // R_CCW_BEGIN

    {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START},

    // R_CW_BEGIN

    {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START},

    // R_START_M (11)

    {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START},

    // R_CW_BEGIN_M

    {R_START_M, R_START_M, R_CW_BEGIN_M, R_START | DIR_CW},

    // R_CCW_BEGIN_M

    {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},

    };

    #else

    #define R_CW_FINAL 0x1

    #define R_CW_BEGIN 0x2

    #define R_CW_NEXT 0x3

    #define R_CCW_BEGIN 0x4

    #define R_CCW_FINAL 0x5

    #define R_CCW_NEXT 0x6

    const unsigned char ttable[7][4] = {

    // R_START

    {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START},

    // R_CW_FINAL

    {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW},

    // R_CW_BEGIN

    {R_CW_NEXT, R_CW_BEGIN, R_START, R_START},

    // R_CW_NEXT

    {R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START},

    // R_CCW_BEGIN

    {R_CCW_NEXT, R_START, R_CCW_BEGIN, R_START},

    // R_CCW_FINAL

    {R_CCW_NEXT, R_CCW_FINAL, R_START, R_START | DIR_CCW},

    // R_CCW_NEXT

    {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},

    };

    #endif

    byte rowPins[NUMROWS] = {21,20,19,18,15};

    byte colPins[NUMCOLS] = {14,16,10,9,8};

    Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

    Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,

    JOYSTICK_TYPE_JOYSTICK, 32, 0,

    false, false, false, false, false, false,

    false, false, false, false, false);

    void setup() {

    Joystick.begin();

    rotary_init();}

    void loop() {

    CheckAllEncoders();

    CheckAllButtons();

    }

    void CheckAllButtons(void) {

    if (buttbx.getKeys())

    {

    for (int i=0; i<LIST_MAX; i++)

    {

    if ( buttbx.key[i].stateChanged )

    {

    switch (buttbx.key[i].kstate) {

    case PRESSED:

    case HOLD:

    Joystick.setButton(buttbx.key[i].kchar, 1);

    break;

    case RELEASED:

    case IDLE:

    Joystick.setButton(buttbx.key[i].kchar, 0);

    break;

    }

    }

    }

    }

    }


    void rotary_init() {

    for (int i=0;i<NUMROTARIES;i++) {

    pinMode(rotaries[i].pin1, INPUT);

    pinMode(rotaries[i].pin2, INPUT);

    #ifdef ENABLE_PULLUPS

    digitalWrite(rotaries[i].pin1, HIGH);

    digitalWrite(rotaries[i].pin2, HIGH);

    #endif

    }

    }


    unsigned char rotary_process(int _i) {

    unsigned char pinstate = (digitalRead(rotaries[_i].pin2) << 1) | digitalRead(rotaries[_i].pin1);

    rotaries[_i].state = ttable[rotaries[_i].state & 0xf][pinstate];

    return (rotaries[_i].state & 0x30);

    }

    void CheckAllEncoders(void) {

    for (int i=0;i<NUMROTARIES;i++) {

    unsigned char result = rotary_process(i);

    if (result == DIR_CCW) {

    Joystick.setButton(rotaries[i].ccwchar, 1); delay(50); Joystick.setButton(rotaries[i].ccwchar, 0);

    };

    if (result == DIR_CW) {

    Joystick.setButton(rotaries[i].cwchar, 1); delay(50); Joystick.setButton(rotaries[i].cwchar, 0);

    };

    }

    }

  • J'ai trouvé ce lien, aucune idée si cela peut aider :

    https://github.com/AM-STUDIO/32-F…fa26b58036e99e1

    c'est celui la qui ne fonctionne pas il y a une erreur dans le code et je ne sais comment corriger cette erreur quand je compile le code j,ai ce message d'erreur:

    /tmp/382729298/sketch_oct19a/sketch_oct19a.ino:7:25: erreur irrécupérable: Keypad.h: aucun fichier ou répertoire de ce type

    # include <Keypad.h>

    ^

    compilation terminée.

    état de sortie 1

  • ok j'ai installé les lbrairies keypad et joystick j'ai encore un message d'erreur d,une autre nature:

    Les options de compilation ont été modifiées, tout sera recompilé

    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino\CDC.cpp: In member function 'available':

    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino\CDC.cpp:187:1: internal compiler error: Segmentation fault

    }

    ^

    Please submit a full bug report,

    with preprocessed source if appropriate.

    See <http://gcc.gnu.org/bugs.html> for instructions.

    lto-wrapper.exe: fatal error: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\hardware\tools\avr/bin/avr-gcc returned 1 exit status

    compilation terminated.

    c:/program files/windowsapps/arduinollc.arduinoide_1.8.15.0_x86__mdqgnx93n4wtt/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed

    collect2.exe: error: ld returned 1 exit status

    donc déjà le problème est résolu du côté de keypad et joystick par contre pour le rest je ne sais pas du tout ce que ca veut dire

    exit status 1

    Erreur de compilation pour la carte Arduino Leonardo

  • Bonjour à tous,

    j'ai une autre question :

    j'ai suivi un temps les tests d' Etienne sur l'ancien forum pour brancher plusieurs boutons sur une entrée analogique. Je suis en train de faire également une boite à bouton inspirée de celle de amstudio. De ce que j'ai vu, Etienne plaçait des résistances sur son schéma pouvant assurer 4 boutons sur une seule entrée. Je me demande pourquoi nous n'avons pas besoin de résistance sur le schéma d'amstudio...


    Merci d'avance pour vos réponses,

    300488.png

  • J'ai supprimé les 4 lignes en rouge, et je n'ai plus d'erreur à la compil... C'est fait au marteau et burin, mais qui sait, si ça marche ??!!

  • bon je crois que je suis arrivé a faire fonctionner cette boîte, la solution est simple à force de chercher, le code est valide il faut installer les librairies keypad et joystick dans le dossier mes documents/arduino/libraries ensuite j'ai télécharger le dernière version de IDE Arduino pour Windows et ça fonctionne pas tous mes boutons sont actifs mais ça je pense que ça doit être les connexions.

    En tout cas un grand merci a tous de m'avoir aider si ça peut servir a d'autre n'hésitez pas à le communiqué:

    je vous met en lien les librairies

    https://playground.arduino.cc/uploads/Code/keypad.zip

    https://codeload.github.com/MHeironimus/Ar…rary/zip/master

    https://downloads.arduino.cc/arduino-1.8.7-windows.zip