DIY - Node Blue : Programmation cartes Arduino pour les boutons/encodeurs/etc

  • Si j'ai bien compris, avec NodeBlue on positionne nos boutons, encodeurs, etc ... et lorsque l'on clique sur exporter, cela génère le code pour le logiciel Arduino ?

    Comment tu as mis la carte d'entrée qui doit être "BitPacker" au centre ?

    Comment savoir quelles entrées il faut utiliser, exemple si je veux prendre un Teensy 3.2 ?

    J'ai des boutons 4 voies + cliquable : 8x3g92.jpg" , comment les représenter sur le schéma ?

    Désolé pour toutes ces questions, je galère un peu.

    Message modifié 2 fois, dernière modification par Beaware (4 mars 2018 à 13:07).

  • Si j'ai bien compris, avec NodeBlue on positionne nos boutons, encodeurs, etc ... et lorsque l'on clique sur exporter, cela génère le code pour le logiciel Arduino ?

    Node Blue fonctionne effectivement comme ça

    Comment tu as mis la carte d'entrée qui doit être "BitPacker" au centre ?

    Je ne comprends pas la question, est ce que tu a suivi les premiers tutos du wiki qui sont là ? : http://www.nodeblue.org/wiki_fr/index.php (il en manque plein mais je vais bientôt en rajouter).

    Node Blue ne fait pas (encore) la liaison entre des objets physiques (boutons etc...) + leur branchements et les cartes. Node Blue permet de générer du code mais ce n'est pas un simulateur électronique.

    Pour ton bouton 4 voies + cliquables il faut poser 5 entrées numériques et choisir sur quelles entrées de la carte tu veux les connecter, leur durée de "debounce", etc.

    un truc du genre (à adapter) : http://www.nodeblue.org/gui/index.html…ers/beaware.txt

  • Il y a 3 problèmes dans ton design:

    - Il y a plein de flèches rouge au dessus des modules, ce qui signifie que tu as des conflits au niveau des pins. Il faut que chaque entrée soit sur une pin différente (D0, D1, ...)

    - Les éléments "Rotary" sont utilisés pour générer des pulses à partir d'un encodeur, or tu as connecté des entrées numériques dessus au lieu de modules "RotKnob".

    - Il n'y a pas de module "HID" derrière le module "Serializer", donc ton Teensy n’apparaîtra pas comme un contrôleur de jeu. Cela dit le module HID n'est pas encore officiellement supporté pour le Teensy, seulement pour les Leonardo, mais normalement cette semaine ça sera bon.

    Attention, le lien que j'ai mis est un design que tu ne peux pas modifier, donc fait gaffe à sauvegarder ce que tu as fait :

    - Ctrl-E pour exporter,

    - copier coller du code

    - tu ouvres la page http://www.nodeblue.org/gui/ ou ta version locale si tu l'as téléchargé

    - Ctrl-I et tu colles ton code, ensuite il sera sauvegardé dans le cache du navigateur (donc copie le code dans un fichier pour être tranquille).

    Je suis en train de travailler sur une version avec la compilation/export en 1 click depuis NodeBlue, et aussi sur la possibilité de sauver/charger des projets...

  • Merci pour ces précisions. il faut donc que je différencie mes encodeurs rotatif de leur bouton cliquable ? Ces derniers seront sur une entrée seule ?

  • Oui les boutons des encodeurs rotatif sont des boutons comme les autres, il n'occupent qu'une entrée, alors que les encodeurs rotatifs en occuppent 2 (une entrée pour l'impulsion pour incrémenter, une pour décrémenter).

  • Franchement génial ce truc, je vais tacher de faire un câblage propre déjà et après je testerai s'il n'y a pas d'erreur en cliquant sur "Vérifier" avec Arduino . Parce que là déjà il me vois une erreur : expected initializer before 'B2'

  • Tu peux essayer de compiler (vérifier) pour tester, mais du coup il faut que tu enlève le module HID jusqu'à ce que j'ai mis à jour (cette semaine) le noyau du Teensy, sinon tu aura des erreurs à cause de lui.

    Et si tu as des erreurs que tu ne comprends pas, poste ton design ici (Ctrl-E, Ctrl-C et Ctrl-V ici dans une balise de code), avec les erreurs générées par la compilation.

  • Pour que je comprenne un peu mieux, pour les boutons poussoirs, ça correspond à quoi ?

    Sync MainLoop =>?

    Pull mode NonePull - UpPull - DownOpen - DrainDisable => ?

    Invert No Yes => ?

    Invert c'est pour prendre un front montant ou descendant ?

  • - "Sync" : ça permet de dire si le module est exécuté dans la MainLoop ou si il est synchronisé par un module de synchro. Dans l'exemple que je t'ai mis, il y en a un qui s'appelle "Sync" et l'autre "Radio Sync", ce dernier étant destiné au module radio (qu'on rafraîchit à 1000 Hz, alors que "Sync" tourne à 250 Hz). Couplé à un timer, cela permet de gérer à quelle fréquence sont rafraîchit les modules.

    - "Pull Mode", c'est le mode de l'entrée. "Pull up" veut dire qu'on utilise les résistances de pullup interne à l'arduino (c'est une résistance connecté entre Vcc et la pin). En général c'est ce qu'on utilise pour les boutons.

    - "Invert". Comme on utilise le mode "Pull up", quand le bouton est relâché la pin est tirée vers Vcc par le résistance de pullup interne, le résultat est donc "1", et quand on appuie on met en contact la pin avec le GND, et le résultat est "0". Donc si on veut que la sortie soit à "1" quand on appuie et à "0" quand on relâche, il faut cocher "Invert".

    Désolé, toutes ces infos vont arriver bientôt dans les prochains tutos, (sauf les histoires de synchro qui sont un peu plus ardues et qui viendront sans doute plus tard)

  • J'ai commencé petit, et déjà des erreurs :

    Les erreurs :

    Code
    Plusieurs bibliothèque trouvées pour "Ethernet.h"
    Utilisé : D:\Téléchargements\arduino-1.8.5\hardware\teensy\avr\libraries\Ethernet
    Non utilisé : D:\Téléchargements\arduino-1.8.5\libraries\Ethernet
    expected initializer before 'B2'
    
    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.

    Par contre je ne trouve pas comment vider les messages d'erreurs, j'en ai supprimé pas mal à la main dans le code ci-dessus, car il y en avait de reste d'hier.

  • Les erreurs que tu as ne correspondent pas au code. C'est très bizarre, normalement quand tu lances une compilation, ça efface tous les messages.

    D'autre part tu as enlevé trop de choses, il n'y a plus de module "Sync" ni de timer pour la synchro (ce qui induit une erreur de compilation, mais pas celle que tu as).

    D'autre plus, il faut que tous tes modules boutons, rotary, etc soient sur la synchro "Sync".

    Le mieux c'est que tu repartes d'un exemple correct et que tu le modifie en fonction de tes branchements, sans enlever les trucs indispensables.

    J'ai mis à jour ton exemple, télécharge ce fichier (bouton droit de la souris + enregistrer le lien sous...) et glisse le dans ta fenêtre Node Blue : http://www.nodeblue.org/gui/examples/users/beaware.txt

  • Je retente ce soir, ton fichier .txt me met un défaut sur Node-Blue, impossible de voir quelque chose.

    J'ai refait celui là :

    Code
    [{"id":"bce60d0.ad1b4f","type":"nDigitalInput","name":"Button 2","pSync":"Sync","p1":"6","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":378.9999694824219,"y":526,"z":0,"wires":[["f54d7dac.ee10a:5"]]}]

    Message de défaut dans Arduino :

  • bonjour tout le monde, j'ai un t300rs gt edition et je me demandais si c'était possible de jouer sur ps4 avec une roue que je veux fabriquer ( steering wheel amg gt3) étant donné que la base est un t300rs gt. Je sais pas si au niveau de l'électronique ça va fonctionner pour tout ce qui est compatibilité. l'idée est de mettre d'autres boutons, de changer complètement l'interface.

    est-ce qu'il en y a d'entre vous qui ont déjà essayer ou si vous avez des tutos je suis preneur.

    http://zupimages.net/up/18/10/qztf.jpg

    Merci

  • Beaware ,

    Tous les messages qui apparaissent jusqu'au "Opening Teensy Loader..." sont des "Warnings" qui proviennent de choses déclarées 2 fois à 2 endroits différents, ces messages ne posent pas de problèmes (et je ne peux pas y faire grand chose, mais je crois que PJRC est en train de faire une passe la dessus).

    Par contre c'est quand même bizarre ton histoire là. Tu as un message comme quoi il n'arrive pas à ouvrir le TeensyLoader, mais aucun message de succès de compilation. Normalement si il n'arrive pas à compiler, il n'essaie pas d'ouvrir le TeensyLoader.

    Tu as mis quoi comme options de compilation pour le Teensy 3.2 ? (USB Type, CPU Speed, Optimize)

    Si tu choisit Teensy LC comme carte, avec USB Type = "Serial", CPU Speed = 72 MHz, Optimize = "Smallest code", ça donne quoi ?

    darkscale4 , Mon système sans fil est prévu sur PC, donc sur PS4 c'est très peu probable que ça marche. Le problème n'est pas électronique, le problème ce sont les constructeurs de console qui verrouillent le matériel compatible avec leur HW.

  • Pour le Teensy 3.2 j'ai mis :

    - USB Type = Sérial

    - Speed = 96 MHz (overclock)

    - Optimize = Faster

    J'ai fais mon plan sur Node Blue avec le Teensy 3.2.

  • En mettant Teensy LC, et vérifier, j'ai une fenêtre popup de Teensy qui s'ouvre et j'ai l'impression que ça passe :

    Code
    Le croquis utilise 14572 octets (22%) de l'espace de stockage de programmes. Le maximum est de 63488 octets.
    Les variables globales utilisent 2988 octets (36%) de mémoire dynamique, ce qui laisse 5204 octets pour les variables locales. Le maximum est de 8192 octets.

  • Salut.

    Je poste ici ma demande faite dans un autre post, mais pas le bon!

    Après l'achat d'un volant OMP Superquadro, j'ai envie de faire une plaque à bouton avec un écran LCD.

    Est-ce possible de faire ce genre de montage?

    boitier-boutons-c...1024x724-5413a67.png

    - Jusqu'à combien de bouton peut-on aller (pusch + encodeurs rotatifs + palettes )?

    - Pour un écran LDC il m'en faudrait un de à peu près 75 mm x 45 mm ( le Nextion NX4024TO32 3.2" en 480x240 qui fait 69.60 mm x 41.76 mm pourrait correspondre). J'ai vu quelque chose qui correspond dans ce sujet: https://www.racingfr.net/wbb/index.php?…on-lcd-rgb-led/

    - Quel type de carte pour gérer tout ça? Plan de cablâge?

    - Est-ce que tout peut passer par le même câble USB ou autre?

    - Pour l'instant je ne peu pas utiliser de système sans fil car j'ai un Thrusmaster T500!

    Merci d'avance.

    270.png sticker-norev-250x146-57193f9.jpg

    Intel Core I7 2600K 3.4 ghz - Mémoire 16 GO - Carte Graphique NVidia GeForce 1080 TI - Windows 10 64 bits

    Volant Thrustmaster T500RS - Pédalier Fanatec CSP V2

  • Le schéma final que j'aimerai avec le Teensy 3.2 . J'ai réussi à le faire passer à un moment avec moins de chose, mais là ça bloque :

    Code
    [{"id":"MainConfig1","type":"MainConfig","name":"MainConfig1","board":"Teensy 3.2"},{"id":"MainConfig0","type":"MainConfig","name":"MainConfig0","board":"Teensy 3.2"},{"id":"b33727f3.bf9378","type":"nRotaryEncoder","name":"Rotary1","pSync":"Sync","p4":"20","p5":"24","x":272,"y":230,"z":0,"wires":[["f54d7dac.ee10a:0"],["f54d7dac.ee10a:1"]]},{"id":"f54d7dac.ee10a","type":"nBitPacker","name":"BitPacker","pSync":"Sync","inputs":32,"x":716.9999389648438,"y":628.0666198730469,"z":0,"wires":[["5532559a.be4acc:0"]]},{"id":"5532559a.be4acc","type":"nSerializer","name":"Serializer","pSync":"Sync","inputs":1,"x":899.9998779296875,"y":627.0667114257812,"z":0,"wires":[[]]},{"id":"ebfe6f24.d29a","type":"nSoftwareTimer","name":"Main Timer","pSync":"MainLoop","p2":"250","pMode":"ST_CONTINUOUS","pNbPeriods":"1","p4":"NOT_ASSIGNED","x":910.0833129882812,"y":434.9166564941406,"z":0,"wires":[["67ac8e3.5b4387:0"]]},{"id":"67ac8e3.5b4387","type":"nSync","name":"Sync","pSync":"ExtSync","x":1059.083251953125,"y":498.91668701171875,"z":0,"wires":[]},{"id":"c4dcd14a.3dd6f","type":"nRotaryEncoder","name":"Rotary2","pSync":"Sync","p4":"20","p5":"24","x":273,"y":268,"z":0,"wires":[["f54d7dac.ee10a:2"],["f54d7dac.ee10a:3"]]},{"id":"8fbd2988.4a35b8","type":"nRotKnob","name":"RotKnob2","pSync":"Sync","p1":"3","p2":"4","pStartVal":0,"pMinVal":-127,"pMaxVal":127,"pHalfStep":"true","p4":"INPUT_PULLUP","x":114.49432373046875,"y":268,"z":0,"wires":[["c4dcd14a.3dd6f:0"]]},{"id":"34519554.5ae52a","type":"nRotKnob","name":"RotKnob1","pSync":"Sync","p1":"1","p2":"2","pStartVal":0,"pMinVal":-127,"pMaxVal":127,"pHalfStep":"true","p4":"INPUT_PULLUP","x":115.49432373046875,"y":230,"z":0,"wires":[["b33727f3.bf9378:0"]]},{"id":"bce60d0.ad1b4f","type":"nDigitalInput","name":"Button 2","pSync":"Sync","p1":"8","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":109.99996948242188,"y":433,"z":0,"wires":[["f54d7dac.ee10a:7"]]},{"id":"4a5aa54e.d4d7cc","type":"nDigitalInput","name":"Button 1","pSync":"Sync","p1":"7","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":112,"y":396,"z":0,"wires":[["f54d7dac.ee10a:6"]]},{"id":"6b704a43.505aa4","type":"nDigitalInput","name":"Button 3","pSync":"Sync","p1":"9","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":111,"y":470,"z":0,"wires":[["f54d7dac.ee10a:8"]]},{"id":"dca0a16.c6c8d6","type":"nDigitalInput","name":"Button 4","pSync":"Sync","p1":"10","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":113,"y":505,"z":0,"wires":[["f54d7dac.ee10a:9"]]},{"id":"ea2abf6a.c0217","type":"nDigitalInput","name":"Button 5","pSync":"Sync","p1":"11","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":114,"y":540,"z":0,"wires":[["f54d7dac.ee10a:10"]]},{"id":"8c047953.b26958","type":"nDigitalInput","name":"Button 6","pSync":"Sync","p1":"12","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":113,"y":575,"z":0,"wires":[["f54d7dac.ee10a:11"]]},{"id":"2ee56722.fb0c88","type":"nDigitalInput","name":"ButtonR 1","pSync":"Sync","p1":"5","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":217,"y":308,"z":0,"wires":[["f54d7dac.ee10a:4"]]},{"id":"9571d1e9.696af","type":"nDigitalInput","name":"ButtonR 2","pSync":"Sync","p1":"6","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":217,"y":344,"z":0,"wires":[["f54d7dac.ee10a:5"]]},{"id":"4f923920.495e38","type":"nDigitalInput","name":"Button 7","pSync":"Sync","p1":"13","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":113,"y":611,"z":0,"wires":[["f54d7dac.ee10a:12"]]},{"id":"9978be01.d80a5","type":"nDigitalInput","name":"Button 8","pSync":"Sync","p1":"14","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":114,"y":645,"z":0,"wires":[["f54d7dac.ee10a:13"]]},{"id":"56f0feff.ebcc6","type":"nDigitalInput","name":"Shifter 1","pSync":"Sync","p1":"15","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":204,"y":686,"z":0,"wires":[["f54d7dac.ee10a:14"]]},{"id":"30d07f9c.7aaf3","type":"nDigitalInput","name":"Shifter 1","pSync":"Sync","p1":"16","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":205,"y":722,"z":0,"wires":[["f54d7dac.ee10a:15"]]},{"id":"da4ef2d0.1f6c5","type":"nDigitalInput","name":"Joy 1","pSync":"Sync","p1":"17","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":122,"y":764,"z":0,"wires":[["f54d7dac.ee10a:16"]]},{"id":"42469976.cdce68","type":"nDigitalInput","name":"Joy 1","pSync":"Sync","p1":"18","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":122,"y":802,"z":0,"wires":[["f54d7dac.ee10a:17"]]},{"id":"979a449a.8e4ac8","type":"nDigitalInput","name":"Joy 1","pSync":"Sync","p1":"19","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":123,"y":836,"z":0,"wires":[["f54d7dac.ee10a:18"]]},{"id":"c6c16495.4ef328","type":"nDigitalInput","name":"Joy 1","pSync":"Sync","p1":"20","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":124,"y":871,"z":0,"wires":[["f54d7dac.ee10a:19"]]},{"id":"d12aefbc.80bd3","type":"nDigitalInput","name":"Joy 1","pSync":"Sync","p1":"21","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":123,"y":907,"z":0,"wires":[["f54d7dac.ee10a:20"]]},{"id":"b329adf2.96107","type":"nDigitalInput","name":"Joy 2","pSync":"Sync","p1":"22","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":205,"y":948,"z":0,"wires":[["f54d7dac.ee10a:21"]]},{"id":"b22515a1.bc5668","type":"nDigitalInput","name":"Joy 2","pSync":"Sync","p1":"23","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":205,"y":986,"z":0,"wires":[["f54d7dac.ee10a:22"]]},{"id":"30064c65.1ff6d4","type":"nDigitalInput","name":"Joy 2","pSync":"Sync","p1":"24","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":206,"y":1020,"z":0,"wires":[["f54d7dac.ee10a:23"]]},{"id":"793dba17.ce00b4","type":"nDigitalInput","name":"Joy 2","pSync":"Sync","p1":"25","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":207,"y":1055,"z":0,"wires":[["f54d7dac.ee10a:24"]]},{"id":"aa6a353e.baf008","type":"nDigitalInput","name":"Joy 2","pSync":"Sync","p1":"26","p2":"INPUT_PULLUP","p3":10,"p4":"true","x":206,"y":1091,"z":0,"wires":[["f54d7dac.ee10a:25"]]}]

  • Beaware , ok est ce que tu peux m'envoyer par .Txt ton schéma, que je puisse tester exactement la même chose que toi chez moi ?

    Rod Scheffert

    Salut, oui c'est possible de faire un montage comme ça. Je suis en train de préparer des tutos pour un projet similaire pour un client.

    - Avec une TBB_01 + Teensy 3.2, tu peux monter à 32 Entrées (sachant qu'un encodeur en prends 2), auxquelles il faut soustraire 3 pins (2 pour la communication avec le Nextion, 1 pour piloter les Leds). Mais avec des modules "matrice de boutons" ou Bodac tu peux monter à beaucoup plus, y compris avec un Teensy L.C. Je devrais sortir les tutos pour les Matrices et Bodac cette semaine.

    - Oui il faut partir sur un Nextion, il y a à peu près toutes les tailles dispo, et pas mal de dashboards de dispo (c'est un point non négligeable).

    - Il faudrait une TBB_01, avec un plan dans le genre : http://www.nodeblue.org/gui/index.html…odScheffert.txt (il manque la gestion des Leds, mais j'attends la maj SimHub dont je parle juste en dessous).

    - J'attends une mise à jour de SimHub qui permettra de passer les données pour le Nextion et pour les Leds dans le même câble USB (donc qu'un seul câble). J'en ai discuté avec le développeur de SimHub, il a déjà eu cette demande donc il va le faire (bientôt j'espère).

    - Si tu arrives à chopper ou à faire passer une alimentation 5V sur le moyeu du T500, tu peux le faire en sans fil. Sinon en filaire, je suis en train de tester les modifs du noyau du Teensy pour pouvoir le faire proprement, de manière aussi souple qu'avec les Leonardo.

    Donc à par la mise à jour SimHub dont je ne maîtrise pas la date d'arrivée, pour le reste dans moins de 2 semaines normalement c'est bon (codes et tutos).