Accueil > Forum > La communauté > Vos projets > Simulateur course automobile

Simulateur course automobile

1 2
Tpam03 Tpam03 81 Messages

Simulateur de course Auto : Le commencement

L’histoire 

L’une de mes plus anciennes idées de projet est de construire un simulateur de course de voiture complet. Un de ceux qui ont un vrai cockpit, siège baquet, volant de course, tableau de bord et cerise sur le gâteau, toute la structure montée sur des vérins pour être capable de ressentir les accélérations, freinages, tournants et tout le toutim…
VRX-iMotion-3Dsimulateur-course

Ce genre de truc est fabuleux et il est même déjà possible de s’en acheter un tout fait mais c’est carrément trop cher !!!
Donc, quand je me suis revenu à moi, j’ai décidé d’être un tout petit peu plus rationnel et ai commencé à réfléchir à comment je pourrais concrétiser cette idée.

Acheter un simulateur tout fait n’est pas une option donc le faire moi-même est la seule solution pour y arriver. Je me suis alors dit : « Peut-être que tu devrais te lancer mais étape par étape non ? »

Après avoir consulté un tas de forums et de tutoriels sur internet, il est devenu clair que je devrais commencer du tout départ et implémenter fonction après fonction.

Comment je vais m’y prendre ? :

Etant donné que je suis impatient, feignant et radin (nan pas tant que ça ^^), je vais essayer de réaliser ce projet sans passer trop de temp sur :

Le développement de code : Oui c’est certain, même si un tas de choses sont déjà disponibles sur le net j’aurai du code à cracher, mais je veux minimiser autant que possible cette partie

Le bricolage : Ce ne sera pas la première des tâches mais je sais que j’aurai un peu de menuiserie, d’assemblage, découpage pour à minima la structure du simulateur. Je vais essayer de designer une structure de manière intelligente afin qu’elle soit la plus facile à réaliser, assembler et désassembler

Je vais également essayer de dépenser de l’argent uniquement dans ce qui est réellement nécessaire et que je n’ai pas déjà. Cela veut aussi dire que par rapport au design j’essayerai de toujours faire le choix le moins coûteux. J’ai déjà 2 vieux volants de PSX et PS2, 1 raspberry, 2 arduinos UNO, 1 LEONARDO et tout un tas de petits composants électroniques de côtés…oui vous voyez où je veux en venir !

En synthèse : « DIYWYAPIL » pour « Do It Yourself When You Are Poor, Impatient and Lazy »… oui c’est une invention de moi…

Comme je l’ai dit précédemment, je vais procéder étape par étape. Ce qui veut dire que je vais « développer » un première « fonction » ou une première version fonctionnelle d’une partie du simulateur, la tester et ensuite, la retravailler si ce n’est pas satisfaisant puis la perfectionner avec d’autres éléments. C’est une sorte de démarche Agile pour ceux qui connaissent cette méthodologie.

Design et stratégie :

Je vais séparer mon projet en 2 parties, « contrôles » et « cockpit ».

Contrôles comprend tous les éléments qui sont utilisés pour contrôler une voiture dans une simulation comme par exemple, le volant, les pédales, le levier de vitesse, les boutons etc… Il y a donc les composantes hardware, software et matériel.

Cockpit comprend la structure et ces composants, comme le siège, le tableau de bordel et les différents supports pour les éléments de contrôle. Il y aura dans cette partie uniquement du matériel et un peu de câblage.

Dans mes premières réflexions j’avais vraiment dans l’idée de reproduire un cockpit quitte à récupérer un intérieur d’une voiture à la casse et de créer une structure en bois pour tout maintenir en place. Des gens l’ont fait (vidéo) mais c’est énormément de travail et de place. Entre temps j’ai vu que certaines personnes se faisaient des structures à base de tubes et coudes PVC. C’est plutôt une très bonne idée car on se limite à des coupes simples de longueurs de tube et des emboîtements dans les raccords. Ça répond donc parfaitement à mon besoin d’assemblage et désassemblage simple et rapide. Bien sûr l’idée de me faire un vrai cockpit reste dans un coin de ma tête :).

Il y a quelque chose que je n’ai pas mentionné jusqu’à maintenant et qui est la compatibilité multi-plateforme.

J’étais un PC addict pour les jeux vidéos, puis je suis passé ou du moins repassé à la PlayStation il y a quelques temps. Au début la PS3 puis maintenant la PS4. Donc, je voudrais que mon simulateur soit compatible avec une PS4. Ce choix est ambitieux et ne me facilite pas du tout la tâche, car si on ne veut pas investir dans un volant PS4, il est malheureusement bien plus facile de créer un volant pour PC que pour PS4. De plus, il existe évidemment beaucoup plus d’outils ou d’applications sur PC, capables de récupérer les informations du jeu de simulation de course pour piloter correctement les vérins. Avec les recherches que j’ai faites jusqu’ici, je suis quasiment sûr qu’il est impossible de récupérer ces informations (si elles existent) depuis un jeu de simulation de course tournant sur PS4.

Tout cela m’a mené à un premier compromis qui est : compatible PC avec toutes les fonctionnalités mais aussi PS4 avec le maximum de fonctionnalités possibles.

Contrôles :
Comme vous avez pu le remarquer plus haut, je possède 2 magnifiques volants. Seulement le problème c’est qu’ils ont tous les 2 un connecteur PSX ! Bon, j’ai également un convertisseur PSX en USB mais il n’est plus supporté depuis Windows XP…
Racing-Wheel-Ps-One-Accessoire-Playstation-296964837_L
Fanatec-speedster-3-lenkrad---pedale-racing-wheel-controller-fr-sony-ps2-ps1-ps
41PA7F6CQDL._AC_US218_

Cela veut dire que si je veux utiliser l’un d’eux sur un PC il faut faire un peu d’ingénierie inversée pour le rendre compatible avec un port USB. Ce sujet sera mon premier article « technique » autour de ce projet.

Compatibilité PS4 :
Disons que ma tentative d’ajouter une interface USB a un de mes anciens volants est un succès. Malheureusement pour moi, ça ne le rend pas compatible sur PS4 pour autant. En effet, il ne suffit pas de le plugger dans un des ports USB de la PS4 pour que ça marche. Le protocole de communication entre la PS4 et les périphériques et très complexe…

Mais heureusement, de merveilleuses personnes ont trouvé une solution !

L’astuce implique une DS4 (la manette DualShock 4 et non pas la voiture, pauvre fou !), un bout de hardware et un PC. En fait, pour être capable d’envoyer des commandes du volant vers la PS4 et recevoir des signaux comme le Force FeedBack (FFB) de la PS4, ils ont déterminé qu’il fallait qu’une manette DS4 devait rester appairée pour intercepter les messages échangés entre la DS4 et la PS4 et y inclure les messages du volant.

La solution que j’ai choisie est celle nommée GIMX et mise au point par une personne appelée Matlo. Je ne décrirai pas dans un article tout le fonctionnement et la mise en œuvre puisque cela est déjà fait de la meilleure des façons sur le site de Matlo : blog.gimx.fr

FFB (Force FeedBack) :
Une simulation de course sans FFB n’en est pas une. Donc, je n’ai pas le choix, je dois implémenter cette fonction. Ce ne sera pas du gâteau étant donné que mes 2 volants n’ont pas de FFB :’(. Je vais donc avoir des modifications à faire pour ajouter un moteur et une carte de contrôle pour le piloter. Cependant il y a des bonnes nouvelles. Ce que je vise comme solution technique semble permettre le FFB sur PC et GIMX semble permettre également le FFB sur PS4.

Une fois qu’on a dit tout ça on peut projeter un début de planning.

Planning :

- Rendre USB compatible un de mes volants de PlayStation
- Construire un levier de vitesse en « H », 6 vitesses + marche arrière
- Convertir le pédalier à 2 pédales en 3 (ajout embrayage)
- Ajouter le FFB
- Construire un cockpit
- Ajouter la gestion dynamique (vérins)

L’ordre des items à évoluer et évoluera encore, sachant que le but est de limite les investissements au début des fois que tout serait abandonné.

N’hésitez pas à me poser des questions ou commenter. A bientôt.
Tpam03 Tpam03 81 Messages

Simulation de course Auto : la suite

Conversion Volant PS2 vers USB

J’ai décidé de massacrer le volant Fanatech de PS2. Pourquoi ? Parce que celui-là on me l’a donné donc ça me faisait moins mal de le sacrifier XD. Mais bon RIP quand même petit volant bleu

Ingénierie inversée :

J’ai donc commencé par tout démonter pour voir ce qui se cachait dans la bête. La réponse est pas grand-chose… Comme on aurait pu s’en douter, tous les fils des différents actionneurs convergent vers une carte électronique avec un uP qui transforme les signaux selon le protocole de communication de la PlayStation.

Pour me simplifier la vie j’ai donc décidé de squeezer cette carte et de récupérer directement les signaux des actionneurs grâce à un Arduino LEONARDO.

Il a fallu commencer par identifier le câblage de chacun des éléments. Je ne vais pas décrire ici le schéma de câblage qui en découle parce que déjà c’est noté sur un bout de feuille et j’ai la flemme de le mettre au propre mais surtout parce que ça ne servira à personne sauf si quelqu’un parmi vous à décider de sacrifier un volant Fanatech de PS2 !

Pour résumé :

Les consignes de direction, d’accélération et de freinage se font chacune grâce à un potentiomètre à 3 fils. Celui de la direction est placé en prise directe sur la colonne du volant. Ceux des 2 pédales sont équipés de roues crantées et placés perpendiculairement aux tiges des pédales qui elles-mêmes sont équipés de crans. Quand on appuie sur la pédale, on fait bouger la tige crantée qui fait tourner le potentiomètre, magique !!

Les différents boutons et gâchettes ont eu un chacun deux fils

L’afficheur 8 segments à …

Une fois le hardware bordé, je me suis penché sur le software et j’ai trouvé la librairie JoystickUNO qui, une fois téléversée sur un Arduino LEONARDO permet de le transformer en contrôleur HID. Là encore magie ! Quand on plug l’Arduino sur un PC il est directement reconnu comme un contrôleur de jeu.

Toutes les explications sont ici : http://www.instructables.com/id/Arduino-LeonardoMicro-as-Game-ControllerJoystick/

Une fois le câblage des actionneurs avec l’Arduino, l’adaptation du code et un peu de calibrage réalisé j’ai testé ce super prototype sur un bon vieux jeu des familles. J’appelle à la barre des accusés : « Need For Speed Underground 2 » ! Et oué dans celui-là EA a rajouté les SUV ! #drifterenhummer

Le résultat du test est en demi-teinte. Sur le principe sa fonctionne. Quand je tourne à droite, ça tourne à droite. A gauche pareil. J’accélère, je freine. On constate une différence entre pied plancher et mi-hauteur.

Par contre, c’est pas du tout réactif et précis…

Amélioration :

Du coup je me remets en chasse d’une meilleure solution et je tombe cette fois-ci sur les vidéos de AgaYuidtra Studio dont voici la première vidéo : https://www.youtube.com/watch?v=9xhsdXZ_GrU.

Il s'est inspiré des vidéos de EbolzMagy sur lesquelles je suis également tombé.

Lui aussi met en œuvre un Arduino mais avec une partie soft bien plus poussée puisqu’il s’agit là de flasher l’Arduino avec un programme. Les utilitaires sont bien plus aboutis et relèvent cette fois-ci de solutions utilisées massivement dans le monde de la simulation de course Auto.

En effet, il est possible de piloter énormément d’éléments (afficheurs, levier de vitesse) et de régler énormément de paramètres dont le Force FeedBack.

Une différence fondamentale se trouve sur la consigne de la direction qui n’est pas générée par un potentiomètre mais par un encodeur rotatif.

Lui l’a récupéré dans une imprimante CANON, tout comme les moteurs qu’il utilise pour le Force FeedBack.

Qu’à cela ne tienne, je me suis lancé dans la quête d’une imprimante hors d’usage sur la plus grande brocante de France le bien nommé leboncoin.

Une fois le deal conclu pour 5€ avec Daniel (nom d’emprunt xD) sur un parking, me voilà en train de désosser la défunte imprimante pour en récupérer son essence.

Après une grosse bataille (une horreur à démonter sans s’en mettre plein les doigts et tout casser), voilà que j’extraits non sans efforts deux encodeurs rotatifs et 3 moteurs ! Jackpot !

Je remplace dans mon montage mon potentiomètre par l’encodeur, rajoute le switch permettant de switcher les phases de l’encodeur et réitère mon test.

Bien mieux, j’ai maintenant 900° de rotation et une précision au poil de fesse.

La prochaine étape pour moi est d’intégrer cet encodeur à la colonne de direction du volant. J’ai donc un peu réflexion et de design à engager. En parallèle je lancerai l’impression des pièces du levier de vitesse suivant : https://www.thingiverse.com/thing:1274947 avec cette modification là : https://www.thingiverse.com/thing:2492486
Il présente l’avantage d’être peu encombrant et de proposer le mode séquentiel juste en bridant l’axe transversal.

A vos claviers pour les questions et commentaires. A bientôt.
lobodol lobodol 697 Messages BIG BOSS
Juste woaw
Alors ça c'est du projet et pas des moindre.
Comme dirait Urgan dans Kaamelott: mon petit doigt me dit que vous en êtes pas la moitié d'un !

Et beau travail de reverse engineering.

La structure en PVC tu crois que c'est bien rigide ? Je me rends pas bien compte sur une installation de cette taille.

Merci pour ton partage
Tpam03 Tpam03 81 Messages
Oué je pense que ce genre de truc doit pas trop bouger
Steering-wheel-e1367027863402
lobodol lobodol 697 Messages BIG BOSS
Ah ouais stylé ! Et l'avantage du PVC c'est que c'est facile à travailler/assembler.
Keyu Keyu 1 Messages
Merci pour ton partage, j'ai pour projet de faire également un simulateur auto par la suite. Toutes les infos que tu as filé me seront utiles quand je commencerai.

J'ai une petite question sur l'adaptation PS4 qui pourrait couper court à mon idée si tu me démontres que c'est pas jouable. As-tu regardé s'il est possible d'adapter ton volant, d'y coller un arduino ou autre et un module BT pour communiquer avec ta PS4 directement?

J'ai conscience que ça implique pas mal de travail au niveau du code et de reverse engineering sur le protocole BT de la PS4. De plus, est-ce-que ça sera assez réactif ?
J'ai quasi pas bossé le sujet alors c'est peut-être une mauvaise idée.

En tout cas beau boulot, ça a l'air de bien commencé !
Tpam03 Tpam03 81 Messages
J'ai fait pas mal de recherches et j'ai trouvé seulement deux choses pour le passage de usb à "PS4". La solution de Matlo nommée gimx (que tu peux te fabriquer toi même et dont le code et libre) et sinon y'a des boîtiers vendus genre ça : cronusmax.com

Mais le système repose toujours sur le même principe. Il te faut une DS4 et c'est filaire.
Je pense que les trames utilisées pour la communication BT de la PS4 sont vraiment spéciales et nécessitent un gros travail. Donc j'ai pas cherché plus loin.

Peut-être que d'ici là, quelqu'un aura trouvé autre chose pour coutourner le problème...
Xavier Xavier 12 Messages
8aH8KDi
bonjour à tous! Je m'appelle Xavier j'ai 30 ans je vit dans le centre de la France!
Je met la photo de mon dernier projet au cas où ça pourrait donner des idées à d'autres!
Simulateur de conduite spécial jeu de courses pour Xbox 360 avec volant officiel a retour de force + pédalier !!! 
Cokpit base de kart cross Volkswagen  championnat de France 1985 démontage 8 parties , siège de Land rover freelander , écran plat 55cm intégré dans pare brise, sono 5.1 avec subwoffer derrière le siège et éclairage d'ambiance . 
Très bonne immersion ! 
Bonne création à tous !
Xavier Xavier 12 Messages
Qr2fmEb
Xavier Xavier 12 Messages
A8uDylD
Xavier Xavier 12 Messages
PNQhAKc
Tpam03 Tpam03 81 Messages
Hello Xavier!

Super projet, tu dois t'éclater !

Une idée du coût et du temps passé ? 

Salutations 

Tpam
Xavier Xavier 12 Messages
Salut tpam! temps passé 15h répartit sur 3 jours .
Le kart cross sans moteur 300 euros, le volant et pédalier 40 euros, la TV environ 50 euros, la Xbox 360 + jeux 50 euros, la sono récup gratuit ( enceinte et sub de home cinéma raccordés en auxiliaire sur une chaine hifi avec des haut parleurs puissant. le tout branché a l'écran plat pour recevoir le son de la Xbox via la chaîne hifi !!! ). La peinture antirouille 50 euros et l'éclairage 30 euros.
Bon courage et bne continuation !
Xavier Xavier 12 Messages
6RJbqKR
la base....
Xavier Xavier 12 Messages
JM2tpAL
les essais provisoires !
1 2
Vous devez être connecté pour pouvoir répondre à ce sujet.
Utilisation des données

Afin d'améliorer ton expérience utilisateur, nous utilisons des cookies 🍪