DIY - Aide boite à boutons

  • 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,

    Je pense que le microcontrôleur doit faire le travail, en tout cas chez moi ça fonctionne, pour le code du microcontrôleur n'oublie pas de mettre les librairies sinon c'est galère.

  • AustinPower, ce montage que j'avais présenté s'appelle le "Bodac" (enfin c'est moi qui lui ait donné ce nom). Il permet de connecter plusieurs boutons sur une seule entrée analogique, et contrairement à d'autres montages à base de résistance, avec celui là il est possible d'appuyer sur plusieurs les boutons en même temps sans soucis.

    Depuis j'ai bien optimisé l'algorithme, crée un module "Bodac" dans Node Blue, et surtout développé un algorithme de calibrage. Avec des résistances assez précises (1% à la base, puis sélectionnées), j'arrive à mettre 6 boutons sur une entrée. L'avantage de ma solution est qu'elle nécessite moins de fils et moins de pins, et qu'il n'y a absolument aucune contrainte sur les boutons qui sont appuyés en même temps, et que j'ai intégré un anti-rebond.

    Parmi les autres alternatives pour permettre l'utilisation de plusieurs boutons en même temps, il y a le système de matrice (utilisé dans la librairie Keypad dont AMStudio se sert), mais sans diodes il y a des combinaisons de plusieurs boutons en même temps qui ne fonctionnent pas correctement (ce qui n'est pas très gênant quand les boutons sont poussoirs, mais qui l'est plus quand on a des boutons qui ne sont pas momentanés). Autre souci : il n'y a pas de système anti-rebond dans la librairie Keypad...

  • Etienne Merci beaucoup pour ta réponse. J'ai en effet retrouvé la conversation.

    Par rapport à Node Blue, j'ai essayé de l'utilisé, car, ma box sera légèrement différente que celle de AMStudio, et je pense du coup que le code va changer... Mais je n'y arrive pas. Pourtant, c'est un outil génial que tu as créé... Mais je suis une bille, et j'ai très peu de temps au quotidien pour me lancer à comprendre son fonctionnement. Mais je devrai finir par y arriver.

    marino Merci beaucoup, une fois que j'aurai reçu tout le matos, je me lancerai dans le montage. Si je galère sur le code ou autre, je vous fais signe !


    Merci

    300488.png

  • C'est normal que tu n'arrives pas à l'utiliser, c'est en chantier en ce moment, tu ne pourra pas compiler le code. Seule l'interface fonctionne pour s'entraîner. Je suis en train de passer le service en ligne pour qu'il n'y ait pas de prise de tête de librairie à installer, de version de l'IDE Arduino, etc... Au final il n'y aura qu'un petit soft à installer, qui sera chargé de faire le lien entre l'interface Web et les cartes connectées au PC. Je ne suis plus très loin du but. Mais je n'ai pas beaucoup avancé coté Tutos, du coup même si c'était fonctionnel, ça ne serait pas facile de deviner comment on s'en sert. La réalisation de boite à bouton ou de platine de boutons/encodeurs/etc est en haut de la todo list. J'expliquerai tout depuis le début : à quoi sert un système anti-rebond, les différents types d'algos, les différents types d'encodeurs rotatifs, comment les brancher, comment utiliser les matrices de boutons (que j'ai aussi implémenté dans Node Blue), les Bodac etc... et au final comment faire un périf de jeu windows qui gère ces tous ces trucs...

    Pour en revenir à la matrice de boutons, voici un exemple qui illustre un cas qui ne fonctionne pas :

    BB_Matrix_Fail.jpg

    SI on appuie sur les 3 boutons qui sont en vert, le bouton bleu va être détecté appuyé alors qu'il n'est pas appuyé.

  • C'est normal que tu n'arrives pas à l'utiliser, c'est en chantier en ce moment, tu ne pourra pas compiler le code. Seule l'interface fonctionne pour s'entraîner. Je suis en train de passer le service en ligne pour qu'il n'y ait pas de prise de tête de librairie à installer, de version de l'IDE Arduino, etc... Au final il n'y aura qu'un petit soft à installer, qui sera chargé de faire le lien entre l'interface Web et les cartes connectées au PC. Je ne suis plus très loin du but. Mais je n'ai pas beaucoup avancé coté Tutos, du coup même si c'était fonctionnel, ça ne serait pas facile de deviner comment on s'en sert. La réalisation de boite à bouton ou de platine de boutons/encodeurs/etc est en haut de la todo list. J'expliquerai tout depuis le début : à quoi sert un système anti-rebond, les différents types d'algos, les différents types d'encodeurs rotatifs, comment les brancher, comment utiliser les matrices de boutons (que j'ai aussi implémenté dans Node Blue), les Bodac etc... et au final comment faire un périf de jeu windows qui gère ces tous ces trucs...

    Pour en revenir à la matrice de boutons, voici un exemple qui illustre un cas qui ne fonctionne pas :

    BB_Matrix_Fail.jpg

    SI on appuie sur les 3 boutons qui sont en vert, le bouton bleu va être détecté appuyé alors qu'il n'est pas appuyé.

    Merci pour ta réponse, j'imagine que c'est un boulot titanesque à mettre en place.

    Pour le schéma que tu nous montre, c'est typiquement celui de AMStudio :)

    300488.png

  • Merci pour ta réponse, j'imagine que c'est un boulot titanesque à mettre en place.

    Pour le schéma que tu nous montre, c'est typiquement celui de AMStudio :)

    Oui c'est pas mal de boulot, mais je n'ai pas trop le choix et ça vaut le coup.

    Pour le schéma, c'est normal car j'ai capturé l'image à partir de sa vidéo de tuto :B

    Mais c'est valable pour tous les systèmes similaires qui utilisent la même système de matrice (je ne cherche pas à critiquer AMStudio à tout prix, car ses tutos sont en général très bien).

  • Bonsoir à tous,

    j'ai fini ma boite à bouton, et j'ai un petit souci. Je me rends compte que mes rotatifs activent plusieurs bouton en même temps quand je les tourne. Lorsque je ne laisse que les poussoirs, tout fonctionne normalement. Lorsque je ne mets que les rotatifs, il y a 4 ou 5 boutons qui se déclenchent en même temps.

    Aussi, quand je leur fait faire comme une 1/2 rotation, ça semble bien fonctionner. Je n'ai pas pris exactement les rotatifs indiqués dans le lien de AMSTudio.

    Les miens sont comme ça : par là

    Auriez-vous une idée du problème ? J'ai l'impression que ça vient de la terre...

    Merci d'avance

    300488.png

  • J'ajoute que quand je ne branche que le rotatif (sans le push button) le rotatif fonctionne. Dès que j'ajoute le push button, j'ai plusieurs boutons qui fonctionnent en même temps.

    Lorsque j'ajoute juste le rotatif, et un autre bouton... tout foncctionne aussi.

    C'est donc le couple push button du rotatif + les rotatifs qui ne fonctionnent pas ensemble...:sos:

    300488.png

  • J'ai fait un branchement matriciel comme sur AMStudio :

    GRD => GRD

    TX0 => CLK

    RX1 => DT

    15 => +

    A3 => SW

    J'ai 24 push button (en comptant les push des encodeurs) et 3 rotatifs.

    Merci

    300488.png

  • A priori les encodeurs que tu as pris ont déjà des résistances de "pullup" intégrés, donc :

    1) Pourquoi avoir connecté la pin 15 sur le + des encodeurs ? ce n'est pas sur le schéma fourni il me semble. Si tu connecte le + des encodeurs quelque part, c'est sur la pin "VCC". Dans ce cas il faut aussi mettre en commentaire dans le code la ligne au début "#define ENABLE_PULLUPS"

    2) Sinon l'autre solution c'est de ne pas connecter les + des encodeurs (mais il restera un pont de résistances qui relie les DT et CLK, ce qui peut poser problème).

    A priori c'est plutôt la solution 1) qu'il faut utiliser si elle marche.

  • 181028092049939624.jpg">

    La ligne "#define ENABLE_PULLUPS" existait déjà (cf page 1, Marino l'a posté)

    Comme vous pouvez le voir sur l'image, quand je push button, il y a 1-2-3-4-5 qui s'allument

    Pour ce test, je n'ai branché sur la carte que le rotatif.

    Je me dis que pour que le matriciel opère, il me manque une PIN à brancher.

    Pour ce qui sont des rotatifs, ça fonctionne parfaitement !

    300488.png

  • Oui la ligne "#define ENABLE_PULLUPS" existait, je t'ais dis de la mettre en commentaire (ou de la supprimer si tu ne sais pas faire) pas de la rajouter....

    Maintenant il faut que tu branches tous les boutons comme indiqué sur le schéma, et ça devrait marcher (en supposant que tu as aussi modifié le branchement des rotatifs comme je te l'ai indiqué)...

  • ">


    Même problème... ce doit être dans le code. Car, le 1 reste tout le temps allumé quand je presse le poussoir du rotatif 1, 2 ou 3... ainsi que tous les boutons du branchement "15"

    Ce que j'essaie de comprendre, c'est comment le bouton arrive à se positionner s'il ne sait pas se positionner par rapport à l'"axe vertical" de la matrice. Le tout est relié à VCC. Donc, juste l'axe horizontal est renseigné. comment lui renseigner la colonne "14 - 16 - 10 - 9 et 8"

    Pour les rotatifs, c'est tout bon. Avec l'ancien branchement ( comme dans la vidéo AMStudio), c'était l'inverse :)

    Merci à vous !!!

    300488.png

  • Ce que j'essaie de comprendre, c'est comment le bouton arrive à se positionner s'il ne sait pas se positionner par rapport à l'"axe vertical" de la matrice. Le tout est relié à VCC. Donc, juste l'axe horizontal est renseigné. comment lui renseigner la colonne "14 - 16 - 10 - 9 et 8"

    Phrase totalement incompréhensible pour moi.

    Si tu suis exactement son tuto, en faisant la modif que j'ai indiqué sur les rotatifs, ça doit marcher (sauf si tu as grillé quelque chose sur l'Arduino)

  • 1540722882-capture2.jpg


    Du coup, je reprends avec le schéma d'AMStudio. Perso, la différence que j'ai avec eux, c'est que j'ai un rotatif en moins, et un bouton en +.

    Selon le schéma, pour actionner le bouton 1, je dois relier une PIN sur le connecteur A3, l'autre sur le connecteur 14. Voici les boutons que j'ai :

    1540722503-capture3.png">1540722503-capture3.png">


    Pour les rotatifs, selon ce schéma, je dois relier une PIN sur le 15, l'autre sur le 14 pour actionner le bouton 21.

    J'ai 5 pin sur mes rotatifs. Il y en a 3 pour l'action de rotation, et 2 pour le push.

    Si je mets le + sur VCC, et SW sur 15, comment peut-il repérer qu'il est sur l'entrée 14 au moment où je le déclanche, puisque dans son code, c'est ce qu'il demande. J'essaie de comprendre comment il reconnait le "chemin" pour qu'il identifie chaque bouton poussoir de chaque rotatif.

    300488.png