GyroHorizonhorizon artificiel pour sim racing

Un vieux téléphone posé sur le volant devient un afficheur qui ne tourne pas avec le volant. Le rapport engagé reste droit face au pilote, quel que soit l'angle — grâce au gyroscope et à la gravité du téléphone. Les données viennent de SimHub, l'angle vient des capteurs.

Plugin SimHub + dashboard web Open source · MIT Android & iOS
GyroHorizon affiché sur un téléphone incliné : le rapport reste horizontal

Le principe

Le problème

Un écran fixé au volant tourne avec lui

Monter un afficheur sur la couronne du volant, c'est pratique — jusqu'au premier virage serré, où l'information se retrouve à l'envers au moment précis où on en a besoin.

La réponse

L'écran contre-tourne

Le téléphone mesure sa propre inclinaison et fait pivoter l'affichage à l'opposé. Le chiffre garde la ligne d'horizon, comme un horizon artificiel d'avion.

En prime

L'écran devient un bouton

Un toucher n'importe où envoie une touche clavier au jeu — klaxon, appel de phares, radio. Pratique quand les mains ne quittent pas le volant.

Ce que l'écran affiche

ÉlémentComportement
Rapport engagéEn très gros, façon plaquette à volets, avec animation de bascule au changement de vitesse.
Régime moteurColore le fond de l'écran, du vert au ralenti au rouge près du rupteur.
Alerte rupteurLe chiffre passe au rouge et clignote au-delà de 97,5 % du régime maxi de la voiture.
Toucher l'écranEnvoie au jeu la touche choisie dans les réglages.

Comment tient l'horizon

L'angle de roulis vient du vecteur gravité (atan2 sur l'accéléromètre) : absolu et sans dérive, contrairement à un gyroscope seul qui part lentement en vrille. Le gyroscope, lui, apporte la réactivité immédiate. Les deux sont fusionnés par un filtre complémentaire : le gyro donne le mouvement, la gravité recale en continu.

Le signe et le gain du gyroscope varient d'un téléphone à l'autre. Plutôt que d'imposer une calibration manuelle, ils sont auto-détectés par corrélation avec la dérivée de l'angle de gravité — on pose le téléphone et ça marche.

Les deux composants

C#

Plugin SimHub — GyroHorizon Bridge

Un petit serveur HTTP local qui reçoit les impulsions tactiles du dashboard et envoie la touche configurée au jeu.

JavaScript

Dashboard web — horizon.html

La page affichée sur le téléphone : horizon gyroscopique, rapport et régime lus depuis SimHub. Aucune dépendance, un seul fichier.

Installation

  1. Le plugin — compiler le projet C# et déposer la DLL dans le dossier SimHub, SimHub fermé. Relancer et vérifier que GyroHorizon Bridge est activé.
  2. Le dashboard — copier horizon.html dans SimHub\Web\ pour qu'il soit servi sur /horizon.html.
  3. L'accès HTTPS — publier le dashboard derrière un vrai certificat (voir ci-dessous).
  4. Sur le téléphone — ouvrir l'adresse HTTPS, toucher l'écran une fois pour le plein écran et l'autorisation des capteurs. L'écran reste allumé tout seul (Wake Lock).

Le HTTPS n'est pas optionnel. Les navigateurs mobiles bloquent l'accès aux capteurs de mouvement hors contexte sécurisé : en simple http://192.168.x.x, l'horizon reste figé sans le moindre message d'erreur. La solution simple et gratuite est de passer par Tailscale, qui fournit un certificat valide sur le réseau privé — le PC et le téléphone sur le même compte.

La procédure complète — réservation du port, commandes tailscale serve, diagnostic — est dans le README du dépôt.

Réglages

RéglageEffet
LissageAmortissement visuel de la rotation.
AnticipationAvance l'affichage selon la vitesse de rotation, pour ne pas traîner derrière le volant.
InverserInverse le sens de contre-rotation.
Toucher →Touche envoyée au jeu : klaxon, appel de phares, radio, frein à main, entrée.
Centrer volantDéfinit le zéro, volant droit.

Gratuit et open source

GyroHorizon est publié sous licence MIT : le plugin, le dashboard et la procédure complète sont sur GitHub. Si l'outil t'a été utile, tu peux soutenir son développement.

Retour en haut
← Précédent