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

  • Ok si t'as du 1 % ça devrait le faire.

    Les messages de calibrage apparaissent là où tu les envoie. Donc si c'est dans le module "USBSerial", ça apparaîtra dans le moniteur série (que tu peux effectivement ouvrir dans l'interface NodeBlue, c'est l'icone "#" en haut à droit du bouton "Upload'). Mais tu peux aussi envoyer les message sur l'écran Nextion dans un objet texte, ou sur un écran Oled, ou sur un module Radio, etc...

    Mais pour calibrer tes Bodac, pour le moment ton design est trop limite niveau RAM. Il faut que tu prennes un Teensy 3.2 pour faire plus de choses, parce que là je ne vois pas ou gratter encore de la place (je vais réfléchir à un autre moyen mais pour le moment je ne vois pas comment faire).

    Mais sinon, j'ai fait marcher ton truc, je l'ai sauvegardé dans "Liongivre911_V2". Teste pour voir s'il y a besoin de calibrer, peut être pas...

  • Etienne

    Petit retour après le test :

    Presque tout fonctionne :sleurp:. Le Nextion est opérationnel, les bandeaux à leds égalements. Les shifters ainsi que les rotatifs sont fonctionnels également. Petit bémol sur les rotatifs : chaque détente m'envoie deux pulses du coup ça incrémente de deux valeurs à chaque cran sur le rotatifs.

    Quant aux bodacs, seuls les boutons 1 de chacun bodac fonctionnent. J'en conclu qu'il faut les calibrer et pour ça j'ai pas d'autre choix que de changer de carte ?

    Si je prends le Teensy 3.2, pourrais-je faire fonctionner les bandeaux à leds ? car sur le LC une sortie est réhaussée 5v mais je n'ai pas réussi à trouver l'info sur le teensy 3.2. Puis-je utiliser le même shield que pour la LC ?

    Encore merci pour ton aide précieuse.

    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. La théorie mise en pratique : Rien ne fonctionne... et personne ne sait pourquoi !

  • Pour les encodeurs rotatifs, tu as essayé de mettre 2 pulses/detent dans les paramètres des modules encodeur RotKnob ?

    Pour les bodacs, j'ai fait une modif pour afficher les coefficients résultants du calibrage, il suffit de les reporter dans les paramètres du Bodac. ça devrait permettre d'éviter de passer au Teensy 3.2.

    Il faudra utiliser un design simplifié pour faire le calibrage, comme l'exemple pour Bodac : https://www.electroseed.fr/shop/gui/index…al/BodacHid.txt. Change la pin du module AnalogInput pour l'adapter aux tiennes (A6 et A7), ouvre une console série, envoie n'importe quel caractère, ça déclenchera le calibrage.

    Effectivement les Leds ne fonctionneront pas en utilisant le connecteur prévu sur la TBB_01, mais ça fonctionnera en branchant la pin de donnée des Leds sur une sortie numérique classique (la pin 17 / A3 par exemple), à condition d'alimenter les Leds en 5V (récupérable sur le connecteur en question). L'utilisation de la pin dédiée sur le Teensy LC est utile quand on a un grand nombre de Leds (plusieurs centaines). Pour 24 Leds ce n'est pas indispensable d'avoir un signal en 5V, avec 3.3V ça fonctionne très bien.

    La carte TBB_01 est compatible avec le Teensy 3.2 aussi, seule cette pin pour les Leds n'aura pas la même fonction (pour le Teensy LC c'est la pin 17 amplifiée, pour le 3.2 c'est la pin VBat).


    Edit : bon en fait la modif que j'ai faite bouffe de la RAM aussi :(, donc ça ne va pas. Je vais voir si je peux gratter.

  • Bonjour,

    Je me permet une petite question j'avoue que je n'ai jamais utilisé nodeblue mais je vais regarder ça. Je passe uniquement par Simhub

    Je recherche deux informations pour nos cartes arduino. Est-il possible de faire fonctionner des rotary switch (attention pas des encodeurs). Mais des boutons à plusieurs position dans ce style : http://www.leobodnar.com/shop/index.php…products_id=207

    Egalement j'ai monté ce volant :

    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.
    et je suis à la recherche de solutions pour avoir quelque chose de plus facile avec le câble de sortie car j'ai l'arduino nano + la carte usb vers TTL pour le nextion. J'ai donc besoin de deux usb en sortie ce qui n'est vraiment pas pratique.

    Au plaisir d'en apprendre plus car certains ici on l'air bien calé :)

  • The French Simracer

    Salut, Avant de commencer mon volant j'ai tenté des choses avec simhub pour voir si ca fonctionnait. Le nextion en faisait partie. En fait tu peux relier ton nextion sur ta carte arduino (RX Nextion->TX de la carte et le TX Nextion -> RX de la carte) le 5V sur le VCC et le GND ... sur le GND. C'est alors la carte qui gérera ton nextion. En revanche tu devras préparer ton template graphique avec nextion editor et l'upload dans le Nextion via le nextion editor. Le paramétrage des valeurs se fait sous simhub dans la section pour le Nextion. Seule condition : il te faut impérativement une arduino micro. Tu pourras mettre bandeau à led et nextion ainsi que qq boutons sur l'arduino micro et le configurer sous Simhub et ca fonctionne.

    Merci Etienne pour ton aide et tes infos précieuses. J'ai réup l'ensemble et les bodac ne fonctionnent pas en revanche effectivement les rotatifs à deux pulses ca passe mieux. Je tenterai de faire un calibrage des bodacs demain ou mardi et je reviens vers toi pour la remontée d'infos. Encore merci

    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. La théorie mise en pratique : Rien ne fonctionne... et personne ne sait pourquoi !

    Message modifié 1 fois, dernière modification par Liongivre (23 février 2020 à 19:59).

  • The French Simracer

    Node Blue ne remplace pas SimHub, mais peut fonctionner avec SimHub, en supportant plus de matériels et de fonctionnalités que l'interface de programmation pour Arduino intégrée dans SimHub.

    Node Blue gère plus de cartes que SimHub (notamment les Teensy), et permet de programmer directement les Nextion sans passer par un convertisseur USB - série.

    Node Blue permet également de gérer un Nextion en même temps que tout un tas de périphériques : boutons, encodeurs rotatifs, commutateurs rotatifs (rotary switches), entrées analogiques, capteur hall, etc...), le tout avec un seul câble USB ou par radio par module NRF24 grace aux cartes TBB_01.

    Ceci n'est qu'un résumé, Node Blue permet de faire plein d'autres choses, et ceci sans écrire une ligne de code.

    Je ne sais pas comment fonctionnent les rotary switches de Leo Bodnar, mais je suis en train de mettre au point un produit similaire à 12 ou 8 positions, qui n'utilise qu'une entrée analogique.

    Si tu n'es pas trop pressé, ça devrait être dispo d'ici 2/3 semaines (enfin tout dépend aussi des blocages éventuels dus au corona virus).

    J'ai déjà une version dispo mais il faut rajouter 2 résistances externes pour que ça marche bien (c'est cette modif que je dois faire pour la prochaine version).

    Liongivre

    les Bodacs ne marcheront pas mieux tant que tu n'aura pas calibré.

    Pour les encodeurs rotatifs, quand tu dis que ça passe mieux, ça veut dire que ça marche parfaitement ou il y a encore des problèmes ?

    De rien c'est normal, ça s'appelle le SAV :B

  • Etienne  Liongivre

    Merci pour vos réponses qui me donne envie d'aller plus loin que simhub.

    J'ai le temps de voir car pour le moment je recherche une carte qui pourra gérer l'intégralité de mon projet mais je ne trouve pas. A savoir :

    12 Bouton + 2 shift paddle

    2 potentiomètre sur la même entrée pour l'embrayage

    3 encodeur classique

    2 rotary switch 5 ou 6 position

    Un écran nextion

    Un bandeau led pour les RPM

    6 led supplémentaires pour indication drapeaux jaune/bleu.

    Pour l'instant j'ai plusieurs piste mais je suis ouvert à toutes les solutions surtout si tu as quelque chose à proposer c'est top de trouver un français qui fait ça.

  • Etienne

    Bonjour, Je viens de tenter le calibrage des bodacs et je n'y arrive pas.

    J'ai utilisé le design que tu m'as conseillé. Changé le port en A6 ou A7. J'upload le programme pas de pb. J'ouvre la console et je lance la procédure. Il me dit "Release all buttons" aucun bouton n'est pressé... J'attends la suite. Toujours rien. Me suis donc dit qu'il y avait une inversion. J'ai donc pressé tous les boutons et je suis arrivé à l'instruction suivante : "Press Button 1". Je presse le bouton correspondant ... marche pas. J'ai tenté également les autres boutons du bodac sans succès.

    Me suis dit que j'avais ptet inversé les branchements sur la teensy et passé que le A6 était le bodac de gauche au lieu du droit. J'ai donc pressé les boutons de l'autre bodac mais marche pas non plus. J'ai joué avec les debounce dans le paramétrage du bodac en passant les valeurs suivantes et en refaisant les même tests : 1-5-10-20-25-50-100-255 ms ... aucun succès supplémentaires.

    J'ai tenté d'appliquer ton design sur les deux bodacs en même temps configurant A6 et A7 et en reliant sur le mm USB serial et le bit packer... mais tjs la même chose. J'ai revérifié les valeurs de mes résistances et bien constaté le fonctionnement de chaque bouton au multimètre.

    Je ne sais pas quoi faire de plus.

    En ce qui concerne les rotatifs. En mettant 2 pulses/detente je me retrouve effectivement avec les bonnes incrémentations de valeur soit 1détente = 1 pulse. Dans le jeu en revanche, il ne détecte pas tjs correctement les différentes détentes et n'augmente donc pas les valeurs en conséquence. C'est très aléatoire donc difficile de définir un schéma récurrent. Le je u peut très bien envoyer une incrémentation pour une détente et parfois il faut faire 3 ou 4 crans pour obtenir une incrémentation de la part du jeu.

    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. La théorie mise en pratique : Rien ne fonctionne... et personne ne sait pourquoi !

  • Pour débugger tes Bodacs, essaie ce design : https://www.electroseed.fr/shop/gui/index…logInSerial.txt

    Ouvre la console série, et en cliquant sur ton shifter droit (entrée A4), cela va afficher la valeur analogique de l'entrée A7.

    Donne moi les valeurs que tu obtiens quand aucun bouton n'est appuyé, puis pour chaque bouton appuyé. Avec tous les boutons appuyés en même temps tu dois être proche de 0.

    Pour tes encodeurs, difficile de savoir ce qui ce passe vu que tu utilises des platines dont on ne connait pas le schéma. Tu peux essayer d'augmenter la durée l'impulsion (paramètre "Pulse dur.", mais j'ai déjà mis 80 ms, ce qui est déjà beaucoup. A moins que ton jeu tourne à 10 FPS (et échantillonne les boutons à cette fréquence), c'est peu probable que ça vienne de là.

    Tu peux aussi essayer ce design de test : https://www.electroseed.fr/shop/gui/index…ital/Rotary.txt (en enlevant les pullup). Tu verra tout de suite si ça fonctionne sans perdre de crans.

    Sinon je peux te fournir des Bodacs tout prêts câblés et testés et des platines pour encodeurs, que je peux t'envoyer par lettre simple pour limiter les fdp.

  • Etienne

    J'ai suivi ta procédure pour les bodac. J'ai fait la procédure pour les deux bodac. Je t'ai fait un petit tableau :

    En ce qui concerne les encodeurs j'ai effectué ta manip mais il incrémente sans aucun pb. Je pense que ca vient du jeu, mais c'est pas grave je trouverai une solution je pense. Je t'envoie quand même le schéma de la platine :

    https://i1.wp.com/henrysbench.capnfatz.com/wp-content/uploads/2015/05/Keyes-KY-040-Rotary-Encoder-Module-Schematic.png

    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. La théorie mise en pratique : Rien ne fonctionne... et personne ne sait pourquoi !

  • Tes valeurs pour les Bodacs ne sont pas correctes (comme si tu avais branché le VCC sur 5V au lieu de 3.3V et encore ça ne colle pas trop non plus).

    Avec des résistances de 50, 100, 200, 400, 800 Ω pour les boutons et 1.6 KΩ pour la pullup, les valeurs théoriques sont :

    Bodac_5_Values.jpg

    Tes valeurs sont très éloignées de ça comme tu peux le constater, ce qui explique pourquoi ça ne marche pas (et elles sont aussi assez différentes pour tes 2 bodacs).

    Tu mesures quoi comme résistances (bodac débranché du Teensy) ?

    Pour les encodeurs, tu utilise quel jeu pour tester ?

    Tu peux aussi essayer de ne pas brancher le + de tes platines et d'utiliser les pullup internes du TeensyLC (en mettant "Pull up" dans les paramètres "Pull mode" des rotknob), mais logiquement ça ne devrait rien changer.

    Sinon je ne vois pas.

  • Effectivement je n'ai pas pensé à te le dire parce que je n'ai pas jugé ca pertinent. Excuse moi.

    Comme le Nextion et le bandeau led fonctionne mieux en 5v j'ai tiré le 5V de la carte et j'ai fait un hub VCC sur lequel je tire le 5 V pour tous les éléments qui en ont besoin. Du coup je vais démonter le volant pour passer les bodac en 3.3 sur la carte. Je refais les mesures et je te dis ca.

    Le jeu que j'utilise c'est principalement rFactor2. Il est excellent mais il a parfois qq bugs.

    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. La théorie mise en pratique : Rien ne fonctionne... et personne ne sait pourquoi !

  • Pour tous les Teensy les entrées analogiques c'est 3.3v max.

    Les Teensy 3.2 et 3.5 sont tolérants au 5v sur les entrées numériques, mais pas les Teensy LC, 3.6 et 4.

    Pour les Nextions et Leds RGB, normalement l'alimentation c'est du 5v, je ne crois pas que ce fonctionne en 3.3v.

    Les signaux pour les Nextions fonctionnent en 3.3v (heureusement) mais Rx est tolérant au 5v.

    Pour les leds, le signal peut rester en 3.3v s'il n'y a pas beaucoup de leds, sinon il faut du 5v (d'où la sortie 17 amplifiée du Teensy LC).

  • Etienne

    Des nouvelles du projet :

    Pas ma de galère pour trouver la source des pb. Effectivement en passant en 3.3 les bodacs ca va mieux, mais j'avais encore des pb sur le bodac gauche dont le dernier bouton ne fonctionnait qu'en calibrage. J'en ai profité également pour passer l'alimentation des Rotatif en 3.3. Il reste donc en 5 V que le Nextion et les LEDS.

    Sur ce bodac de gauche j'ai vérifié le bon fonctionnement des résistances, et j'ai également interchangé les broches entre le bodac droite et gauche pour tenter de trouver le pb. Il s'avère que la broche GND sur laquelle était branché ce fameux bodac avait un dysfonctionnement. En branchant sur une autre broche GND le bodac fonctionne parfaitement.

    Désormais tout fonctionne correctement dans le profiler matériel de Windows et dans le jeu également. Juste une chose que je n'arrive pas à résoudre à avec les Rotatifs.

    Quand je paramètre les rotatifs en 1pulse/detente Rfactor2 m'incrémente de deux valeur pour chaque cran sur le rotatif. Je passe donc à 2 pulses/détente et là ca fonctionne ... mais pas tout le temps. En fait il y a des pb de détection des crans. Rfactor2 incémente une valeur sur un cran mais parfois il ne détecte rien sur 2-3-4 crans avant de reprendre un incrémentation sur le 5e cran. Même chose dans l'autre sens.

    J'ai tenté d'augmenter les rebonds 100ms mais même chose. J'ai une question qui peut paraitre bête mais quand je regarde dans les paramètres Nodeblue des rotatifs je vois la valeur "Input Div : 2^16". J'en déduis que ca indique que le rotatif est de 16 détentes/rotation et qu'il peut tourner dans les deux sens. Est-ce correct ? Si c'est le cas... Quand je compte le nombre de crans sur les rotatifs que tu m'as envoyé j'en compte 18 par rotation de 360... Un pb qui pourrait être la source des dysfonctionnements dans rFactor2 ?

    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. La théorie mise en pratique : Rien ne fonctionne... et personne ne sait pourquoi !

  • Cool pour les Bodacs.

    Je viens de regarder pour les encodeurs, les modules rotary étaient avec une synchro "Mainloop", alors qu'il faut les mettre sur "Sync".

    J'ai fait la modif directement sur le design "Liongivre911RSRv3" et j'ai mis tous les encodeurs en 2 pulses/détent.

    J'espère que ça va résoudre le pb. Ne mets pas le pulse duration des rotary trop haut, sinon ça va prendre du temps pour envoyer les impulsions.

    Pour l'histoire du 2^16 des rotary, il ne faut pas y toucher. En fait c'est parce que la sortie des modules encodeurs est sur 16 bits en l'entrée des rotary sur 32 bits, et comme NodeBlue effectue automatiquement les conversions de type entre les modules, et donc il faut recompenser cette conversion.

    Si l'entrée des rotary venait d'un module Encoder ou HWEncoder qui ont des sorties en 32 bits, il ne faudrait pas faire cette compensation et mettre 1 sur "Input Div".

  • Merci pour ton aide, j'ai testé les rotatifs avec ta config, ca va mieux effectivement. Mais il y a des râté, j'ai donc suivi ton conseil en réduisant le pulse duration de 80 à 50 puis 20 et j'ai fini à 5. A cette dernière valeur, j'ai une bonne réactivité mais encore qq râtés. Chaque détente n'est pas prise en compte mais en tournant lentement (ceci dit tournant lentement le jeu prend mieux en compte les changements). Il me reste environ 5-6 râtés sur une rotation complète du rotatif. Je vais voir si je peux encore améliorer ça. Je finis de corriger les petits soucis avec le template graphique du Nextion (Simhub) et j'aurais fini.

    Une question supplémentaire. N'y a t'il pas moyen de récupérer le code téléchargé dans le teensy par NodeBlue ? j'aurais aimé avoir un bouton pour des appels de phares. Comme le jeu ne gère pas cette option nativement, je pensais utiliser la variable d'un autre bouton associé à l'allumage/extinction des phares, récupérer cette variable et la répéter 3 fois pour faire les appels sur ce dit-bouton.

    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. La théorie mise en pratique : Rien ne fonctionne... et personne ne sait pourquoi !