Author: Clement S.

Tutoriels

Comment utiliser les principales fonctions d’un logiciel de télémétrie

La télémétrie n’est peut-être pas connue de tous mais celle-ci est une technologie qui permet d’effectuer des mesures à distance . Ce terme englobe une grande généralité de fonctions , c’est pour cela que dans ce tutoriel nous n’allons voir que la partie liée à la mesure de la vitesse et de facteurs pouvant aider à trouver des réglages en course . En suivant ce tutoriel vous pourrez apprendre à manipuler ce genre de logiciel pour comprendre comment deux mêmes voitures peuvent avoir une différence de vitesse suivant les réglages adoptés ou comprendre comment le pilotage peut influencer les temps .

Si vous suivez un peu des courses de sports automobiles comme la Formule 1 vous avez surement déjà vu des grands écrans avec des courbes colorées dans les garages . Ces courbes sont obtenues en temps réel et permettent de se renseigner sur un gain de temps liés à différents facteurs comme la vitesse maximale , l'accroche au sol ou encore la vitesse d'accélération . 

Pour vous montrer les bases de ces logiciels , je vais m’aider de Race Studio 3 Analysis qui sert le plus souvent pour le karting qui demande moins de technologie et est beaucoup moins cher qu’un logiciel comme ceux utilisés en Formule 1 . Il est aussi plus simple à comprendre car le karting est une machine beaucoup plus simple qu’une voiture .

  • Tout d’abord ce logiciel nécessite un boîtier qui est un AIM MyChron ( ici nous verrons avec le MyChron 5S 2t ) .

Ce dernier accueillera la plupart des capteurs permettant le relevé des informations comme par exemple le GPS qui va nous servir plus tard à obtenir la vitesse sur un tour ou encore les trajectoires prises . Cependant tous les capteurs ne sont pas placés dans ce boîtier , mais vont quand même renvoyer les données obtenues au MyChron . Dans ce cas-là , nous pouvons trouver par exemple la sonde de température d’eau mais aussi de température des échappements , mais surtout nous allons trouver le compteur de tours/minutes (RPM) .

Maintenant la présentation du boîtier faite , nous allons voir comment récupérer et analyser les données prises par le MyChron . En réalité pour cela nous aurons 2 logiciels distincts qui vont chacun remplir les fonctions de récupérer les données (RaceStudio 3) et d’analyser (Race Studio Analysis) . Ceux-ci sont disponibles gratuitement sur Internet et ne demandent rien d’autre que les données du MyChron pour fonctionner .

Pour les télécharger , vous pouvez suivre ce lien : https://www.aim-sportline.com/en/sw-fw-download.htm
  • Nous verrons donc dans un premier temps comment récupérer les données depuis le MyChron et à partir du logiciel RaceStudio 3 (RS3)

Tout d’abord il va falloir se connecter au MyChron en WIFI . Ceci peut se faire grâce à l’icône réseau en haut à droite de l’écran , pour cela le boîtier doit être allumé . Une fois que vous avez vu le nom de votre appareil s’afficher il faudra tout simplement y cliquer dessus et entrer le code si besoin .

Une fois ceci fait , il faudra que vous alliez sur les doubles flèches pour accéder à l’interface permettant le téléchargement des données puis vous allez partir dans l’onglet DOWNLOAD .

Ensuite vous aurez juste à cliquer sur le temps que vous voulez télécharger .

  • Dans ce second temps nous allons voir comment téléverser ces données sur le logiciel Race Studio Analysis

Les actions faites précédemment vous auront donc permis de télécharger le (ou les) tour(s) à analyser . Mais maintenant vient la partie la plus intéressante , celle de l’analyse qui se fera sur Race Studio Analysis . Pour accéder à ce logiciel installé gratuitement au préalable sur Internet , il y a deux moyens : soit on ouvre directement le logiciel depuis le bureau de l’ordinateur , soit on passe par l’onglet de RS3 à droite des engrenages nommé ANALYSIS .

Quand vous ouvrirez Race Studio Analysis , les sessions téléchargées juste avant arriveront automatiquement dans l’interpréteur qui les mettra au début soit sous forme de courbes ( dans ce cas cette étape est finie ) soit sous forme de temps au tour qu’il y a eu dans la session . Dans ce dernier cas , il faudra cliquer sur l’onglet en bas MEASURE GRAPH qui vous affichera les courbes associées .

Maintenant , tout est fait , il ne restera plus qu’à interpréter les résultats donnés par les courbes en fonction de ce que l’on recherche pour estimer une perte de temps .

Maintenant que vous savez comment faire , il reste encore quelques détails à éclaircir car avec ce qui a été dit précédemment , vous savez comment utiliser les données relevées mais vous ne savez toujours pas quoi en faire .
  • Pour finir nous verrons donc l’utilité de la télémétrie dans les courses

On peut donc voir sur Analysis à gauche dans MESURES une liste d’actions pouvant être effectuée dans le logiciel . Pour les utiliser , il suffira d’y cliquer dessus .

Les fonctionnalités les plus importantes sont :

  1. GPS_Speed
  2. RPM

Cependant il en existe encore d’autres pouvant être utiles mais ces deux-là sont les plus utilisés .

Dans le cas de GPS_Speed , on pourra voir la vitesse sur tout un tour . On pourra donc en déduire la vitesse de passage dans des virages , les points de freinage , les points de reprise de l’accélération , …

Pour savoir s’il y a un gain (ou une perte) de temps entre deux tours , on devra déplacer la barre verticale à un point de la courbe puis se référer au graphique d’en dessous qui sert à estimer une perte de temps .

Ici , on peut voir que le pilote dont le tour est représenté en rouge freine plus tôt que le pilote à la courbe bleue car au point où se situe la droite noire , la courbe rouge tombe avant la courbe bleue .

Sur cette même courbe , si on prend le point de reprise de l’accélération , c’est-a-dire le point le plus bas en vitesse , on ne remarque pas de grandes différences au niveau de la reprise de l’accélération puisque pour les deux pilotes elle se fait presque au même moment . Cependant quand on regarde la courbe estimant la perte de temps (en bas) , on voit un écart qui se creuse qui est de près de 2 dixièmes de seconde . On peut donc en déduire qu’en freinant plus tôt , le pilote de la courbe rouge a perdu du temps sur le pilote de la courbe bleue .

Ensuite, nous pouvons aussi voir pour justifier la perte de temps les réglages du véhicule , pour cela et notamment pour voir le réglage dans la partie du moteur , on va utiliser RPM qui va nous permettre de voir le nombre de tours par minute que le moteur prend.

Si on prend le même point , là où on a mesuré la perte de temps liée au freinage , on peut voir que le régime moteur est presque le même . On peut donc en déduire que les 2 dixièmes de seconde perdus sont dus à une erreur de pilotage et non à une différence de réglage .

Il existe encore d’autres fonctions qui permettent de trouver une différence au niveau des réglages comme une différence au niveau de l’appui qui pourrait ralentir dans une ligne droite ou encore trop coller le châssis au sol dans les virages.

Si toutes ces fonctions donnent presque les mêmes courbes , on pourra en déduire que pour améliorer son temps , il faudra que le pilote freine plus tard car la plupart de ses réglages sont identiques à ceux de l'autre pilote . Sinon il faudra repérer quel réglage changer pour obtenir le plus de performances possible par le véhicule .
Projets

Le jeu Plateforme sur la NumWorks en python

Le but du jeu est simple, se déplacer de plateformes en plateformes en essayant d’atteindre la plateforme finale située a la fin du niveau.

Ce jeu est uniquement jouable sur numworks car nous avons utilisé des fonctions uniquement disponible sur numworks.

Pour réaliser notre projet sur Numworks , nous avons eu besoin de plusieurs modules . Nous avons eu en premier temps besoin du module kandinsky qui nous a permis de réaliser les graphismes du jeu. Ensuite nous avons utilisé le module random pour permettre la génération aléatoire des placements des plateformes et de leur taille . Nous avons aussi utilisé les modules ion et time pour définir les touches qui vont nous permettre de jouer et pour définir le temps d’affichage des cinématiques lors de la mort et la victoire.

Le jeu :

Lorsque l’on lance le jeu sur numworks, des plateformes se génèrent aléatoirement et il faut utiliser les flèches pour sauter de plateformes en plateformes jusqu’à atteindre la dernière plateforme d’un niveau.

L’image si dessous correspond a la fin du niveau, avant de sauter sur la plateforme verte, dernière plateforme du niveau.

Les animations :

Une fois sauté sur la plateforme verte, une rideau va descendre et afficher le texte suivant :

Le code ci dessous correspond a l’animation de la victoire. Un rideau vert va s’abaisser. Nous avons créé un rectangle d’un pixel de hauteur et de 32O pixels de large (largeur de l’écran de la calculatrice). Ce rectangle va se répéter 222 fois (hauteur de l’écran de la calculatrice) avec un écart de 0,01 seconde entre chaque rectangle pour faire un effet d’animation.

Mais attention ! Si vous tombez avant la plateformes verte, dans les piques situés en bas de l’écran, un rideau gris apparaitra et une animation aura lieu a :

Le code ci dessous correspond a l’animation lorsque l’on meurt. C’est le même principe que pour l’animation de la victoire mais ici on a codé la tête de mort en plus. Elle se créée avec le module kandinsky en créant des carrés et rectangles. Nous avons également placé une pause de 0,3 seconde entre chaque carré ou rectangle pour accentuer l’animation.

Pour se deplacer de plateformes en plateformes nous avons décidé de créer un personnage. Cette création s’est faite en plusieurs étapes

Les personnages :

personnage statique :

Ce dessin est celui qui a été fait avant de réaliser le personnage sur kandinsky . Nous avons mis en évidence un des rectangles composant le dessin , je l’ai mis en coordonnées 1 et 3 sur le tableau présent sur le croquis pour déterminer les coordonnées à mettre dans le script . Sur la feuille , un carreau représente un carré de 1 par 1 . Le rectangle dessiné à gauche est fait de 2 carrés côte à côte donc le rectangle aura une longueur de 2 pour une hauteur de 1 . Donc si je veux que ce rectangle soit noir , en kandinsky cela donnera :

personnage en mouvement :

Ainsi de même pour le personnage qui cours nous avons mis un autre rectangle en évidence qui sera formé à partir de :

personnage qui saute :

Enfin pour le personnage qui saute , la même règle s’applique et le premier rectangle composant le personnage est fait grâce à : 

Les bases du jeu :

Maintenant la question que vous vous posez surement est: « Comment le niveau se génère aléatoirement ? ».

D’abord, voici le code permettant de réaliser une telle action :

Dans ce code, on peut d’abord remarquer que nous avons décidé de nommer la fonction de génération « randomlevel ». Cette fonction prend en compte 3 listes : « x », « y » et « l ». A titre d’exemple, la première plateforme du jeu aura comme coordonné en x la première variable de la liste « x », aura comme coordonné en y la première variable de la liste « y » et aura comme longueur la première variable de la liste « l ». La première boucle « for » permet de faire répéter la génération aléatoire 15 fois pour obtenir 15 plateformes vu que levell = 15. La première ligne dans cette boucle permet d’insérer la longueur aléatoire se comprenant entre 10 et 80 pixels dans « l ». Ensuite, on a fait en sorte que la première plateforme apparait toujours à une hauteur comprise entre limitup (31) et limitdown (191) et qu’elle apparaisse à une distance de 100 pixels du bord. Pour ne pas rentrer trop dans les détails, on peut dire que le reste du code permet de générer les plateformes a des distances raisonnables les unes des autres pour que les sauts ne soient pas trop long donc impossibles.

Enfin vous vous demandez peut être comment le jeu fonctionne en général ? Ce passage montre bien comment il fonctionne:

Ici on remarque d’abord le « while game == 0: » . Cela permet de faire répéter le programme ci dessus indéfiniment tant que le joueur n’a pas gagné ou n’est pas mort. En effet « break » nous permet de sortir de cette boucle quand le joueur gagne ou perd. Les mouvements pour avancer et reculer sont coder grâce à la logique « if » qui permet à la troisième ligne et à la huitième ligne de réaliser une action quand une touche spécifique de cette dernière est pressée. Dans notre jeu le personnage n’avance pas vraiment. En fait ce sont les plateformes qui bougent mais on a l’impression que c’est le personnage. Cette illusion est utilisée dans presque tout les jeux de plateforme en 2D connus. Ensuite nous avons créer un système de gravité qui fait que le personnage tombe et retombe après un saut. Ce système a été nommé gravityleft et gravityright. Ces deux lignes récupèrent la couleur au pied du personnage. Si la couleur est la couleur d’une plateforme, le personnage ne tombe pas. Si la couleur est la couleur du vide, le personnage tombe. Si la couleur est couleur des piques, le personnage meurt. Si la couleur est la couleur de l’arrivée, le joueur gagne.

Nous pensons que vous avez compris l’idée globale du code maintenant et qu’il est très peu utile de s’intéresser à tous les petits détails. C’est pour cela que c’est à vous de teste le jeux maintenant. Bonne cession !

Conclusion :

Nous espérons que ce jeu vous aura plus et qu’il vous aura donné du fil à retordre !! Nous avons cependant un bug qui ne peut se résoudre car le bug vient de numwork. 

Auteurs :

Ce jeu a été créé par L. Girard, C. Soulage et C. Coquel.

Liens vers le jeu :

https://my.numworks.com/python/charlie18-coquel/jeu_de_platforme