DIY - RFR Active Pedal : programmation firmware

  • voici le topic dédié au code, à la programmation de la pédale et de son interface

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

    Message modifié 1 fois, dernière modification par RacingMat (16 mai 2023 à 13:53).

  • serialk voici d'après moi quels capteurs il faut pour quelles fonctionnalités:

    fonctionnalités attendues :capteur position
    (codeur, potentiomètre, nb pas du stepper)
    capteur de contrainte
    (load-cell)
    télémétrie du jeu
    longueur de la course oui    
    profil d'effort oui oui  
    bass shaker     oui
    effets Force FeedBack   oui oui

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

    Message modifié 1 fois, dernière modification par RacingMat (11 mai 2023 à 14:30).

  • Hello,

    j'ai fait un premier test rapide avec un esp32-S3, c'est une bonne base de travail très facile d'accès

    pasted-from-clipboard.png

    Le côté sympa, c'est que la carte à deux connecteurs USB :

    • un connecteur qui simule un gamepad natif (HID device)
    • un adaptateur USB/série qui permet la programmation, mais qui peut aussi permettre la communication entre le logiciel sous windows à écrire (pour capter les effets et la config) et le firmware

    Les premiers tests m'ont permis de voir que la couche USB est calée pour envoyer les rapports hid à 1khz.

    Le double usb permet de développer un protocole de communication série beaucoup plus simple que des rapports HID.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • J'ai rajouté un language de communication par port série avec des exemples :

    Les commandes sont INFO ou ABS, elles peuvent avoir des paramètres comme ABS qui prends : l'état 1/0 de l'abs et la durée de l'effet. Le séparateur des paramètres est le ":" C'est pour tester...

    Lorsque le firmware a traité la commande, il renvoie soit un R (RESPONSE) soit un E (ERROR) avec des infos qui vont bien en fonction de la commande. vous avez une capture de demo en dessous.

    Avec cette base, ce sera très simple de rajouter les commandes dont on a besoin.

    pasted-from-clipboard.png

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • RacingMat 16 mai 2023 à 15:20

    A changé le titre de la discussion du forum de “DIY - RFR Active Pedal : code, interface, programmation” à “DIY - RFR Active Pedal : programmation firmware”.
  • J'ai commencé à réfléchir sur l'ABS et sur les effets damper et friction et j'ai des questions :

    *) ABS : le but va être de faire varier la position de la pédale à un ensemble de vitesse/position qui sont réglables par l'utilisateur, ca c'est pas compliqué.

    Par contre, le fait que la pédale bouge va faire varier la pression lue de la pédale : quand elle va reculer, la pression va baisser et inversement en avançant... donc à pression constante sur la pédale, le signal du loadcell va varié générant une réponse sinusoïdale au jeu, je ne sais pas si naturellement nous allons compenser ces variations. Est ce que ca se produit vraiment comme ca dans une vraie voiture? est ce que vous voyez une formule mathématique pour que je puisse déterminer (de manière anticipée) cette réponse sinusoïdale pour "traiter le signal" ?

    *) damper/friction : ces effets dans un moteur FFB sont là pour générer une force proportionnelle à la vitesse (pour le damper) ou une force constante dès que ca bouge, nous ne sommes pas dans le cas d'un moteur FFB standard :) Ce que j'ai fait pour le moment, c'est de calculer la forceDamper et la forceFriction, et je les retires à la force lue du loadcell. Ca me permet d'équilibrer les forces et ensuite j'applique la courbe de réponse force/position programmé (min force=min position, max force = max position). Vous en pensez quoi ? Une autres alternative serait de ne pas jouer avec les forces, mais de jouer avec les vitesses du moteur (fonctionnement des ffb avec des moteurs brushed). D'un point de vu mécanique, le côté force est plus proche de la réalité, mais je ne sais pas si c'est le meilleur scenario. J'ai lu beaucoup de chose sur la théorie des dampers, mais je suis preneur de vos avis :)

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • Alors ca c'est une excellente nouvelle ! Ca sera beaucoup plus simple à coder :D

    Tu as raison, on voit bien les oscillation du ffb sur la courbe de frein

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • J'ai joué un peu hier soir avec l'esp32 et l'arduino.

    Finalement je n'utilise qu'un seul port USB, celui marqué USB sur la photo.

    J'active sur ce port USB "2 fonctions" : le HID pour renvoyé les données au jeu ET le port série pour discuter avec l'interface sur le PC.

    Le deuxième port me sert uniquement à débugger et à programmer l'esp32.

    J'ai également commencé à faire un peu de répartition de charge entre les cores et mettre en place les timers.

    Je suis en phase d'expérimentation.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • Bon changement d'avis, j'ai tout passé en HID, même pour la communication.

    Je mets en place des features, ce sera plus performant et plus proche de la norme des périf HID.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • un seul câble USB pour le tout ? et le Wifi pour les réglages ?

    22594-pasted-from-clipboard-png

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Salut,

    J'ai regardé ton schéma et il y a quelques écarts avec ce que j'ai pour le moment :

    le driver pour un moteur pas à pas (nema) se commande en step/dir

    Je verrais plus tard pour mettre un encodeur sur le nema, si j'en mets un ce sera plutôt un capteur absolu type as5048 en SPI.

    pasted-from-clipboard.png

    Le petit progrès de la journée : mise en place de la communication entre l'esp32 et le TMC5160

    pasted-from-clipboard.png

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)