Messages de Etienne

    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

    J'ai bien spécifié "dans une vraie voiture", où tu ne peux pas enlever les G comme ça :B. Dans un simu dynamique c'est sûr que je vais les percevoir.

    T'inquiètes des réglages de simus j'en ai fait un paquet, c'est un de mes métiers depuis plus de 10 ans, et une des règles de base c'est de commencer par régler chaque DOF indépendamment.

    Ok.

    Honnêtement je ne pense pas être capable de percevoir un angle statique de roll de 5° dans une vraie bagnole en subissant ne serait-ce qu'un G.

    Mon opinion est qu'en vrai ce sont les G qui vont prédominer dans la perception d'un virage (avec une bagnole normale hein, pas une 2CV), et personnellement si j'avais à choisir je ne garderait que les G.

    Mais ce n'est que mon humble avis :B

    Mais je pense que ça doit rendre tout flou..

    Avec juste pitch et roll, on distinguait par exemple parfaitement la diff entre une voiture de course hyper rigide qui effectivement restait très à plat, et une vieille voiture toute molle qui penche dans tous les sens. Si tu aioutes des infos d'accel, ça doit gommer la diff non ?

    La notion de flou je connais pour la photo, pour un simu je ne sais pas ce que ça veut dire (c'est pas ironique, juste précise que tu veux dire)

    Les infos de roll et de sway étant dans le même sens dans un virage, il ne vont pas s'annuler mais se cumuler (idem pour le pitch/surge). Donc si le réglage ne sature pas tu vas garder toutes les infos. Il faut trouver le bon réglage, qui va dépendre de la voiture (et de tes goûts, il y a des gens qui aiment bien se faire secouer (hein Riton39), d'autres qui préfèrent la douceur :B).

    Comme le dit Vulbas, pour bien exploiter un simu ll faut souvent un profil de réglage par type de véhicule (une F1 peut générer 5 fois plus de G qu'une GT, en étant plus rigide), et parfois même des réglages par circuit. Sinon on risque d'avoir des DOF qui saturent ou bien un truc tout fade.

    Avoir un 3 DOF et n'utiliser que le heave, euuuh WTF ?

    A partir du moment où on a moins que 6 DOF, il faut bien rediriger les DOF qui n'existent pas sur le simu vers des DOF qui peuvent physiquement être reproduits, sinon on se retrouve à perdre de l'information.

    Par exemple sur une config 3 DOF avec roll/pitch/heave, ne pas utiliser les infos de surge/sway (en les réinjectant vers le pitch / roll), ça veut dire que sur un circuit parfaitement plat sans dénivelée, le simu ne bougera pas du tout quand on freine/accélère ou en virage...

    Après tout est une question de dosage.

    En ce qui concerne les réglages, tu vas lire et entendre tout et son contraire, avec souvent des gens qui n'ont pas compris le principe et les limitations d'un simu (genre bah une voiture ça bouge pas comme ça...).

    Au final l'important c'est de trouver le réglage qui te convient après avoir essayé plusieurs approches. C'est aussi une affaire de goût (et de logiciel !).

    Regarder des vidéos de simus ça n'apporte qu'une petite partie de l'info.

    Seul le test en live est au final pertinent. Et quand c'est des milliers de gens qui testent ton réglage, le taux de gens malades est aussi une info sur la pertinence de l'approche. Mais peu de gens peuvent avoir accès à cette expérience là....

    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.

    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...

    Liongivre

    1) Oui, c'est normal, désolé il n'y a pas encore de tutos concernant les synchros.

    2) Les host interface servent à envoyer des commandes par le port série. Les commandes commencent par un caractère "Header" qu'on configure dans le module "HostInterface", ensuite on rajoute des modules "HostInterfaceIn" qui prennent un autre caractère et éventuellement un certain nombre d'octets de données.

    Cela peut servir par exemple pour s'interfacer avec SimTools, ou pour déclencher une séquence de calibration pour les axes analogiques, les Bodacs et autres systèmes à base de résistances.

    Le calibrage des Bodacs se fait de la manière suivante : On branche un bouton physique ou Nextion, ou un système de "Host interface" branché sur l'entré "Cal" du bodac, et la sortie "msg" du bodac sur le port série USB.

    Quand on déclenche la calibration, le Bodac envoie des messages d'instruction : "Press button 1", puis quand il détecte l'appui on a "Ok", puis "Press button 2", etc. A la fin de la calibration, les valeurs des coefficients sont stockés dans la mémoire flash afin de ne pas être perdus.

    Ce sont ces coefficients qui sont accessibles dans les paramètres du modules, pas les valeurs des résistances.

    Mais si tu as mis n'importe quoi comme résistances ça ne pourra pas marcher, et il faut des résistances de précision max 1% (c'est pour ça que je vends des packs de résistances pour les Bodacs, et que je vérifie moi même que la tolérance est respectée).

    3) Pour les encodeurs rotatifs, ok s'ils ont déjà des pullup il ne faut pas en mettre au niveau de NB. Reste à déterminer combien de pulses par détente ils produisent. Pourquoi tu n'as pas utilisé ceux que tu m'as acheté ?

    Pour les boutons, il faut mettre pullup car quand tu vas appuyer sur le bouton, cela va mettre la pin au GND. Ainsi quand le bouton est relâché, l'entrée est à 3.3V et quand tu appuie ça passe à 0V (GND). C'est pour cette raison qu'il faut sélectionner "Invert", afin que la valeur qui sort du module soit à 1 quand tu appuie et à 0 quand tu relâche.

    Le Teensy LC dispose de 8 Ko de RAM (contre 64K pour le 3.2), c'est pas énorme car les bodacs et surtout les modules HID et NextionInterface en utilisent pas mal. S'il fallait programmer "à la main" ce que tu as fait, cela prendrait un peu moins de RAM car tu saurais exactement ce dont tu as besoin. Mais pour être souple et pouvoir gérer plein de cas différents, je suis obligé d'être moins efficace en allouant des choses dont on a pas besoin dans certains cas. J'ai réussi à faire marcher ton design, mais en enlevant les "HostInterface". Pour calibrer les Bodacs, il suffira de relier (temporairement) des boutons physiques sur l'entrée cal.

    Je fais des tests avec un Nextion et des Leds et dès que c'est ok je t'envoie un MP (j'ai l'impression qu'il y a un truc qui a changé dans SimHub, il faut que je débogue).

    Notes :

    - les Leds RGB doivent être connectées au connecteur prévu sur la TBB_01 (3 broches à gauche du connecteur série pour le Nextion), qui expose une alim 5V et un signal amplifié (pin 17 at Vin voltage)

    - pour programmer le Nextion :

    1) il faut selectionner "Prog" dans le mode du module Nextion et programmer le Teensy

    2) uploader depuis le Nextion Editor ton design

    3) selectionner "Normal" dans le mode du module Nextion et programmer le Teensy

    temjin, les tutos ont toujours été en accès libre dans le wiki. Qu'est ce que tu entends par "vérouillé" ?

    Il te manque le package NodeBlue pour gérer les Nextions, je vais te le rajouter. Je vais regarder ton projet et corriger les erreurs.

    Pour le moment j'ai identifié ces problèmes :

    1) Toutes les synchros sont sur "MainLoop". A part le module NextionInterface, il faut qu'il utilisent tous "Sync1".

    2) Tu as des modules "HostInterfaceIn" mais pas de "HostInterface", ce qui pose problème. Et si tu en rajoute un il va rentrer en conflit avec le module NextionInterface. Le calibrage des bodacs n'étant nécessaire qu'une fois, il suffit de connecter le module "HostInterface" au port série USB, déconnecter "NextionInterface", effectuer les calibrages, et ensuite déconnecter "HostInterface" et reconnecter "NextionInterface". C'est un peu lourd mais c'est la solution la plus simple (mais d'abord tester si c'est nécessaire de calibrer les bodacs).

    3) Tu as mis "None" pour les "Pull Mode" des boutons et encodeurs, il faut mettre "Pull Up" et pour les boutons sélectionner "Invert".

    Je t'ais crée un projet V2 que je suis en train de corriger.

    Dans un cas on risque du clipping (saturation) mais dans l'autre on risque de perdre de la résolution (et je suis d'accord que le pire c'est le clipping).

    Pour le moment, le seul moyen de ne pas avoir de clipping et d'avoir la résolution max, c'est d'avoir un profil sur le volant pour chaque niveau de couple max (en reportant ce couple max dans les réglage du FFB du jeu). En pratique, à moins de jouer toujours avec la même caisse, c'est pas très commode...

    L'autre solution ça serait qu'il ya ait une initiative d'API (utilisée par tous les jeux) pour que le jeu puisse envoyer au volant le couple réel à sortir.

    Ça s'appelle souvent des "rotary switches", chez fanatec ils appellent ça des "rocker switch" il me semble.

    La différence avec des encodeurs standard c'est que ces derniers peuvent tourner à l'infini et fournissent juste une info +/-, alors que les rotary switch ont un nombre déterminé de positions absolues.

    Quand tu les aura branché, je serais curieux de savoir ce qui se passe quand tu restes entre 2 positions...