DIY - Volant sur base direction assistée

  • Bonjour a tous. Tout d'abord je tiens a m'excuser, je n'ai pas trouvé de section présentation. alors je vais en faire une petite :

    Alors moi c'est Julien, 32 ans, très intéressé par tout ce qui touche au domaine automobile et de l'informatique. c'est donc tout naturellement que j'arrive ici ;)


    Alors pour ce sujet, je plante le décor :


    Cela fait pas mal de temps, et a plusieurs reprise certes, que je tente de faire quelque chose ressemblant a un jeux type simulation auto avec unity3d. Âpres plusieurs remaniement, des lignes de code a n'en plus finir le constat reste toujours le même : l'implantation du modèle de Pacejka dans unity3d est opérationnel ( simulation empirique de l'adhérence des pneus) mais impossible de trouver de bon réglage en l'exploitant in-game avec une simple manette. Il me faut donc un volant! ^^


    Après nombreuses recherches, il est assez difficile d'exploiter les volant du commerce ( de toute façon trop cher pour moi, de 300 a plus de 2000€ ) avec unity3d, concernant le retour de force, et puis bon, j'aime bien le Home-Made!


    me voila donc parti à bricoler, et puis bon, j'aime pas faire comme tout le monde. lol. D’ailleurs je n'ai trouvé nul part sur la toile d'équivalent a mon idées. Soit cette idée est nulle, soit je suis un génie! ^^


    Voila le projet :


    Base : direction assistée de voiture ( 20€ en casse, démontée moi-même sur Fiat Grande Punto)


    Alimentation : alim de PC récupérée ( Gratuit, modifiée délivrant 36A sous 12V )


    Moteur : récupéré sur visseuse sans fil (Gratuit). après mesure sous 12V : force 7 kg/cm (0.7N.m), vitesse à vide : 9500tr/min


    Encodeur : optique à quadrature ( Gratuit, récupéré sur imprimante, elle même récupéré en déchetterie). Précision : 720 - 1440 - 2160 - 2880 ppr.


    contrôleur moteur : Pololu 18V25 , 6-30V, 25A continu, 60A crête ( 40€)


    Capteur couple : intégré a la direction assisté.


    Interface : Arduino Micro ( 20 €)


    Volant : fabrication maison.


    Partie mécanique :


    la DA ( direction assistée) est composé d'une grande couronne et d'une vis sans fin, avec une démultiplication de 1:22.le Moteur en bout de vis est maousse costaud mais inexploitable pour moi ( pour l'instant). Moteur brushless, conso jusque 80A que je laisse de coté. remplacé par celui de la visseuse. Justement ces visseuse ont une démultiplication par engrenage planetaire pour fournir un grand couple ( 3 etage, démultiplication 1:4,375, 1:3,5 , 1:3 soit env 1:46 total), dont je ne garde que le premier de 1:4,375. cumulé au 1:22 de la DA j'ai donc un couple de ........ 67N.m!!!! J'ai bien sur testé sans la réduction planétaire, mais le cogging est trop présent, à remédier. bien que sans, le couple restant (15N.m) serait amplement suffisant. Avec, il suffit d'une tension moteur de 4-5V pour que le volant soit quasi impossible a tourner a la main. Ultérieurement, trouver un moteur 12V, 0.8-1.0N.m a rotor en spiral


    Le capteur de couple, associé a sa barre de torsion ( liaison volant-crémaillère) fourni une tension analogique de 0 à 5V proportionnelle à l'effort volant.( 2.5V position de repos). je le trouve très utile car il permet une rotation du volant douce, sans effort et quasi sans inertie.


    L'encodeur optique est situé a la place du cardan qui entraine normalement la crémaillère de direction. le disque a une résolution de 200 lpi, soit 720 ppr. Résolution donc jusque 2880 ppr , soit une résolution de 0,125°.


    partie Unity3d, avant de me lancé dans la modélisation complète de circuits, j'ai mis en place un système de création d'une route, automatique, aléatoire, paramétrable et infini. En gros, plus on roule, plus la route devant se génère automatiquement et s'efface derrière et inversement si on fait demi tour. En gros, si vous faites demi tour, la route ne sera pas la même que celle que vous venez de parcourir. C'est assez fun a "jouer", chaque session est une nouvelle spéciale, plus ou moins sinueuse ou vallonnée en fonction des paramètres. ^^


    Alors voila ou j'en suis pour le moment, et je vous laisse quelques photos du volant :

    dsc_1161-jpg.398443

    Vue d'ensemble de la partie mécanique. a gauche on aperçois le contrôleur 18V25 ( petit mais costaud) relié au moteur de visseuse. En jaune les fils du capteur de couple.

    dsc_1162-jpg.398444

    Le volant fait environ 30cm, découpé dans une tôle alu de 5mm. une durite de 29mm de dia, fendu en deux est insérée tout autour, elle même recouvert de bande de caoutchouc, un peu a la façon d'une guidoline de vélo.

    dsc_1164-jpg.398445
    Le moteur lui aussi parait tout petit. mais avec sa (très) grande démultiplication, il joue pleinement son rôle

    dsc_1166-jpg.398446

    le moteur, avec en noir l’étage de réduction planétaire, et juste ensuite l'entretoise pour accoupler le tout a la vis sans fin de la DA.

    dsc_1167-jpg.398447

    le codeur optique d'imprimante. sur le disque transparent, la partie noir est en fait la succession de trait noir, 720 sur tout le disque. et le capteur qui va avec sur le dessus.

    dsc_1169-jpg.398448

    l'alimentation de PC. En fait j'en avait quelques unes de récupérées. Me suis serivi de la plus puissante que j'avais, non modulable, avec le boitier d'une autre et de sa platine a fiche, elle modulable. une f ois tout bien soudé, ça marche nickel. l'ampoule 12V 20W sert a maintenir la stabilité de l'alimentation, qui avait tendance a se mettre en sécu a la moindre sous ou sur tension ( gros appel de courant ou ou retour de courant si le moteur tourne trop vite par rapport a la vitesse demandée)

    dsc_1170-jpg.398449

    Enfin, la plaque d'essai avec l’Arduino est la connectique. en haut ( fils noir jaune vert) se relie au driver du moteur. En bas, grosse prise six fils est pour le capteur de couple. tout a droite ( qui "tombe" de la table) se relie au capteur optique. entre les deux dernier, carré noir, c’était un inter de fin de course de l'imprimante qui me sert au lancement de la fonction d’étalonnage ( remise a zéro du volant) sur l’Arduino.



    Voila donc le projet ou il en est aujourd'hui. encore pas mal de réglage a faire surtout niveau unity3D, mais pour les premiers essai fait hier, c'est assez concluant. Et finalement, mes réglage de la formules de Pacejka n’étaient pas si mauvais. je ressent bien les pertes d'adhérence et les variations d'effort : augmentation au fond d'une cuvette, quand la route remonte après une descente, et la sensation de flottement dans le cas inverse ( arrivé en haut d'un "bute").


    Voila, j’espère que ça en intéressera quelques uns d'entre vous, et surtout que ma vision du Volant DIY ferra pas trop tache face aux magnifiques réalisations que j'ai pu entrevoir ici.

    Au plaisir de vous lire


    Julien

  • Salut

    Il y a eu un projet sur le même principe sur racingfr.com

    Inscrit le 15 août 2005

    + 1x G.Skill Trident Z 64 Go (4x 16 Go) DDR4 3300 MHz CL16

    + 1x Samsung SSD 970 PRO M.2 PCIe NVMe 512 Go+ 1x AMD Ryzen 7 3800X Wraith Prism LED RGB (3.9 GHz / 4.5 GHz) avec mise à jour BIOS+ 1x Thermalright True Spirit 140 Direct+ 1x MSI MPG X570 GAMING PLUS

    Gigabyte GeForce RTX 2080 TURBO OC 8G

  • Bienvenue à bord,

    Effectivement moi aussi je suis incapable de trouver la rubrique présentation depuis mon téléphone. Pourtant elle existe...

    L'imagination est plus importante que le savoir (Albert Einstein)

    Message modifié 1 fois, dernière modification par momoclic (19 avril 2018 à 20:36).

  • non, sauf erreur!

    Inscrit le 15 août 2005

    + 1x G.Skill Trident Z 64 Go (4x 16 Go) DDR4 3300 MHz CL16

    + 1x Samsung SSD 970 PRO M.2 PCIe NVMe 512 Go+ 1x AMD Ryzen 7 3800X Wraith Prism LED RGB (3.9 GHz / 4.5 GHz) avec mise à jour BIOS+ 1x Thermalright True Spirit 140 Direct+ 1x MSI MPG X570 GAMING PLUS

    Gigabyte GeForce RTX 2080 TURBO OC 8G

    Message modifié 1 fois, dernière modification par Surtees (19 avril 2018 à 20:45).

  • Inscrit le 15 août 2005

    + 1x G.Skill Trident Z 64 Go (4x 16 Go) DDR4 3300 MHz CL16

    + 1x Samsung SSD 970 PRO M.2 PCIe NVMe 512 Go+ 1x AMD Ryzen 7 3800X Wraith Prism LED RGB (3.9 GHz / 4.5 GHz) avec mise à jour BIOS+ 1x Thermalright True Spirit 140 Direct+ 1x MSI MPG X570 GAMING PLUS

    Gigabyte GeForce RTX 2080 TURBO OC 8G

    Message modifié 1 fois, dernière modification par Surtees (19 avril 2018 à 20:46).

  • J'avais déjà lu ces sujet en effet. je m'orientait justement sur les load cell au prime abord, avant d'avoir l'idée du capteur intégré aux directions assistée.

    c'est justement là le problème ( qui n'en est pas un a proprement parlé a vrai dire), c'est que j'ai pas encore trouvé de montage similaire pour nos volant, avec capteur de couple intégré qui pour moi a son avantages : possibilité moteur plus petit avec plus grande démultiplication.

    pour l'instant c'est assez concluant sur les tests que j'ai fais aujourd'hui. il faudrait je fasse une vidéo pour montrer tout ça. ;)

  • Très intéressant tout ça ! mais est ce que tu arrives à avoir un volant "libre" ? (libérée, délivrééééééé, ok je sors :B)

    Avec la réduction à vis sans fin ça doit sans doute être non réversible, du coup j'imagine que comme sur une D.A. pour permettre cela il faut récupérer l'info du capteur de couple et "aider" la rotation, en combinant tout ça avec l'info de couple provenant des effets DirectInput.

    L'autre problème peut être c'est que vu l'importante démultiplication, l'inertie doit être importante non ?

    C'est clair qu'il faudrait une vidéo pour qu'on voit tout ça.

    Si ça marche ça serait effectivement très novateur comme approche ! (bon il restera aussi un fw à faire pour gérer cette config particulière...)

    J'aimerai bien voir comment est foutu le capteur de couple aussi, ça m'intéresse pour une autre application :B.

  • Merci Étienne.

    En effet, le volant est libéréééé délivréééé!! ^^ Je craignais aussi le coté non réversible des vis sans fin, mais à ma plus grand surprise, sans le moteur, le volant tourne très bien a la main, sans réel effort.

    une fois le moteur monté mais l’électronique éteinte, la oui il faut un bel effort pour entrainer le moteur. car la très forte démultiplication augmente d'autant le cogging. la résistance pour tourner un moteur DC a la main a cause des aimants ( les cran que l'on ressent) est la aussi multiplié par 88. ^^

    Par contre, une fois tout branché allumé c'est une autre histoire, avec l'assistance activé dans mon code Arduino, il suffit du petit doigt pour tourner le volant sans aucun effort, perso je trouve ça impressionnant. Je ferais une vidéo dans la journée pour illustrer.

    le capteur de couple c'est ça. l'axe qui lui passe au centre est une barre de torsion, d'un coté le volant, de l'autre la grande roue+vis sans fin et le cardan qui mène a la crémaillère de direction. La barre de torsion est en gros un axe coupé en deux, réassemblé par une liaison souple ( genre caoutchouc) permettant une différence angulaire de quelques degré max ( 4 ou 5 degré) proportionnel au couple exercé. cette jonction se situe pile au milieu du capteur ( dans son épaississeur). le capteur lui est composé de codeurs optiques, j'ai un peu de mal a expliquer, faudrait je fasse des croquis, mais pour faire simple c'est l'équivalent d'un potentiomètre placé entre les deux partie d'axe. quand l'un tourne par rapport a l'autre, il font varier la valeur analogique de -5V a 5V ( sur les quelques degré de différence angulaire possible, 2048 valeurs possibles avec Arduino soit résolution de 0,002°!!). Le capteur a aussi deux autres sorties pour je pense normalement la position angulaire et le sens de rotation mais j'arrive pas encore a l'exploité. le codeur a donc 6 fils. deux pour l'alim en 5v, deux pour position et sens, et les deux dernier pour le couple.

    Je sais pas si j'ai été assez clair, si jamais je ferais quelques croquis d'illustration.

    Edit : j'ai retrouvé une datasheet d'un capteur similaire, ce sera surement plus clair comme ça.

    Message modifié 1 fois, dernière modification par Djulio74 (20 avril 2018 à 07:26).

  • Merci pour les infos.

    Je suis désarçonné, intrigué et turlupiné !!!!

    Tu es en train de dire que tu arrives à éliminer complètement le cogging avec un capteur à 2880 ppr c'est ça ?

    J'attends la vidéo (non pas que je ne te crois pas, mais c'est incroyable quand même :B) et je ne suis pas le seul je pense !

  • mais de rien. ;)

    je dis pas que ça les élimine complétement, faut pas exagérer non plus. lol. mais malgré la démultiplication de 88:1 entre moteur et volant, le volant est tres facile a tourner. Et encore, je n'ai rien étalonné pour l'instant. je peux je pense mieux faire en palliant la non linéarité du couple moteur en fonction de la tension, a très bas régime justement, justement du au cogging.

    pour le capteur a 2880ppr, lui pour l'instant sert juste à donner la position du volant.

    promis je fais vite une vidéo! :+::+:

  • voila la vidéo hors game, juste pour montrer le fonctionnement.

    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.