Majeri_Poncot_G4

Transcription

Majeri_Poncot_G4
MAJERI Yannis
PONCOT Cédric
PEIP2 2015/2016
Projet d’Electronique Arduino
Sommaire
I)
II)
III)
IV)
V)
VI)
VII)
VIII)
Introduction
Idées et objectifs initiaux
Difficultés rencontrées
Répartition du travail
Matériel utilisé
Montage et résultat final
Améliorations possibles
Conclusion et ouverture
page 3
page 3
page 3 à 4
page 4 à 5
page 5
page 6 à 8
page 8 à 9
page 9
2
I) Introduction :
Dans le cadre du cours d’électronique de cette année, nous devions concevoir un
projet d’objet connecté. L’objectif était de proposer un concept d’objet incluant une
transmission sans fil, l’utilisation d’un quelconque capteur, et une interaction depuis le
téléphone/ordinateur. Les choix étant divers et variés, nous voulions avant tout concevoir un
objet dont nous aurions nous-même l’utilité, et qui serait original.
Ce qui nous donna finalement l’idée, c’est la récente sortie du jeu TrackMania Turbo
sur PC, un jeu course de voiture. Le jeu étant assez simple dans les commandes de pilotage
du véhicule, nous avions donc décidé de concevoir un volant afin de tester cette nouvelle
perspective de jeu qui s’offrait à nous, et donc d’y jouer d’une autre façon qu’avec un clavier
ou une manette.
II) Idées et objectifs initiaux :
Notre objectif de départ était donc de concevoir un volant sans fil. La liaison entre le
volant et l’ordinateur se faisant via un module Bluetooth intégré directement au volant.
L’idée était de munir le volant d’un accéléromètre afin de récupérer la valeur de son
angle d’inclinaison, permettant ainsi de savoir si l’utilisateur tourne le volant à gauche ou à
droite, et de l’envoyer directement à l’ordinateur. Après récupération des données sur
l’ordinateur, il est alors possible de simuler l’appui des touches du clavier correspondantes,
soient : la flèche gauche lorsque l’utilisateur tourne à gauche et la flèche droite lorsqu’il le
tourne à droite, permettant de piloter la direction du véhicule. De même, on voulait intégrer
au volant deux boutons poussoirs ; un pour accélérer (simulation de la touche flèche du haut
du clavier) et l’autre pour freiner (simulation de la touche flèche du bas du clavier).
III) Difficultés rencontrées :
La plus grande difficulté que nous ayons rencontrée est que nous n’avons pas réussi à
configurer la liaison Bluetooth entre le volant et l’ordinateur. Bien que nous arrivions à
visualiser sur l’ordinateur la réception des données, nous n’arrivions pas cependant à les
récupérer et les utiliser dans le programme. Après plusieurs heures à essayer de tout
connecter correctement, et à faire en sorte de voir si l’on recevait bien quelque chose, nous
avons été contraint de réfléchir à une autre fonctionnalité pouvant remplacer celle-ci.
En effet après plusieurs recherches sur Internet, nous avons pu constater que la
récupération des données nécessitait l’utilisation d’un langage auxiliaire (tel que le python)
et que s’engager sur cette voie là nous demanderait plus de temps. De plus nous voulions
éviter de se lancer là-dedans car cela aurait nécessité un travail plus orienté vers la
programmation informatique sur python, ce qui n’était pas notre but premier.
3
Afin de garder une fonctionnalité utilisant la liaison Bluetooth, nous avons donc
décidé d’intégrer à notre volant un contrôle parental ainsi qu’un bouton pour allumer ou
éteindre le volant. La liaison Bluetooth s’effectue du volant vers le téléphone d’un des
parents. Lorsque l’enfant allume le volant, une alerte est envoyée sur le téléphone du parent
lui indiquant qu’une session de jeu vient de commencer. Et lorsque l’enfant l’éteint, un autre
message est envoyé indiquant la fin de la session ainsi que le temps de jeu. Les parents
pourront ainsi être informés du temps passé à jouer permettant d’éviter à l’enfant de trop
rester devant l’écran.
IV) Répartition du travail :
Lors de la première semaine, nous nous sommes principalement occupés d’écrire le
code afin d’avoir, pour commencer, un volant fonctionnel en filaire. Nous avons donc
d’abord récupéré les données de l’accéléromètre pour des angles d’inclinaison différents.
Grâce à Excel nous avons pu tracer la fonction associée au tableau de valeurs afin de
convertir les valeurs provenant de l’accéléromètre en degré (allant de 90° à -90°). Nous
avons alors ensuite défini des plages d’angles, et pour chacune d’entre elles, une certaine
fréquence de simulation d’appui sur les flèches du clavier. Ceci ayant donc pour effet
d’associer à de faibles angles des delay plus importants et inversement. C’est-à-dire que l’on
fait peu tourner le véhicule lorsque l’utilisateur tourne peu le volant en simulant peu de fois
l’appui de la touche associée à la direction voulue, et inversement.
Nous avons essayé d’optimiser au mieux le temps des delay en testant directement
dans le jeu, afin d’éviter des temps de latences trop long entre le moment où le joueur
tourne le volant et celui ou la voiture tourne, mais aussi afin d’éviter que le voiture tourne
trop alors que le volant est peu incliné. Par la suite nous avons ajouté les boutons poussoirs
permettant d’accélérer et de freiner.
Durant la deuxième semaine, et malgré le travail fourni, nous avons peu avancé étant
donné que c’est lors de celle-ci que nous avons essayé de faire fonctionner la liaison
Bluetooth.
C’est donc lors de la troisième semaine que nous est venue l’idée du contrôle
parental. Nous avons donc rajouté le bouton ON/OFF (accompagné d’une LED verte
s’allumant ou s’éteignant en conséquence) afin de savoir quand envoyer les messages sur le
téléphone comme expliqué précédemment.
Pour éteindre ou allumer le volant il faut rester appuyé quelques secondes sur le
bouton. A partir du moment où le volant est allumé, un compteur de temps se met en
marche, il est réinitialisé à chaque fois que le volant est rallumé.
4
Enfin, lors de la dernière semaine, nous avons rajouté deux autres boutons. L’un
permettant de recommencer la course en cas d’accident ou de sortie de piste, et l’autre
pour faciliter la navigation dans le menu du jeu en simulant la touche Entrée du clavier,
permettant entre autres de sélectionner les courses que l’on veut faire sans avoir à toucher
le clavier. D’autres optimisations au niveau du code et derniers arrangements ont aussi été
effectués afin d’améliorer l’expérience de jeu.
V) Matériel utilisé :
 La carte Arduino Leonardo :
Grâce à la bibliothèque Keyboard que seule elle
peut utiliser, la carte Arduino Leonardo nous donne la
possibilité de simuler facilement l’appui des touches du
clavier (à conditon que les touches que l’on veut simuler
soient présentes dans la table ASCII).
Touches simulées par le volant : les quatre
flèches directionelles ; la touche Entrée ; la touche
Suppr.
Carte Arduino Leonardo
 Le module Bluetooth HC-06 :
Permet
d’envoyer
au
téléphone
le
temps
d’utilisation du volant.
Module Bluetooth HC-06
 L’accéléromètre ADXL335 :
Permet de récupérer l’angle d’inclinaison du volant.
Accéléromètre ADXL335
 Autre matériel :
2 plaques d’essai (830 trous) attachées ensemble, 3 boutons poussoirs, une LED
verte, 2 gros boutons poussoirs carré.
5
VI) Montage et résultat final :
Schéma édité grâce au logiciel Fritzing
Pour faciliter la prise en main du volant nous avons scotché la carte Arduino au dos
de celui-ci afin qu’elle reste bien fixée. Les boutons d’accélération et de freinage sont situés
au milieu afin que ceux-ci soient atteignables par les pouces de l’utilisateur, sans être trop
près du bord afin d’optimiser l’ergonomie de l’objet. Les deux boutons ‘’Entrée’’ et ‘’Suppr’’
sont eux situés aux extrémités ce qui n’est pas gênant car ils sont très peu utilisés. Le bouton
ON/OFF de la manette est situé à l’écart, en haut à droite.
Voici donc le résultat final du volant en photo :
6
7
6
5
1
2
3
4
1
Photo du volant, vue de face
8
Photo du volant, vue de dos
Légende : 1-Bouton Entrée ; 2-Bouton Freiner ; 3-Bouton Accélérer ; 4-Bouton Suppr ; 5-Bouton ON/OFF et
LED ; 6-Module Bluetooth HC-06 ; 7-Accéléromètre ADXL335 ; 8-Carte Arduino Leonardo.
7
Et voici le résultat obtenu sur le téléphone lors d’une session de jeu :
Capture d’écran du téléphone après une session de jeu de 4min
VII) Améliorations possibles :
Les améliorations possibles à notre projet sont assez diverses et nous avons eu
plusieurs idées quant à la finalité d’un tel objet :
 L’amélioration principale possible est bien sûr la partie qui nous a donné le plus de fil
à retordre, c’est-à-dire la connexion du volant à l’ordinateur par liaison Bluetooth. Il
s’agirait donc de réussir à rendre notre périphérique de jeu sans fil.
 Une des améliorations que nous trouvons aussi assez importante et la construction
d’une armature. La prise en main du volant ne pourrait en être qu’améliorée et une
certaine qualité de design en plus rendrait le produit plus attractif. Voilà de quoi
améliorer les aspects esthétique et ergonomique de notre volant.
 Des pédales afin de remplacer les boutons "Accélérer" et "Freiner" représentent une
bonne alternative de gameplay qui permettrait au joueur de plonger dans une
immersion totale lors de la course. On peut imaginer des pédales connectées en
filaire au volant ou même mieux, des pédales reliées elles aussi par Bluetooth.
 Des statistiques plus détaillées pourraient être envoyées au téléphone. Par exemple,
on pourrait essayer d’afficher le temps de jeu par jour, ou de lancer des alertes en
cas de partie trop tardives.
8
 Afin d’améliorer le contrôle parental, on pourrait essayer d’envoyer d’une autre
manière les messages d’alerte aux parents. En effet, le Bluetooth nécessitant aux
parents d’être proche de l’enfant, il serait intéressant d’essayer d’envoyer des mails
ou même des SMS aux parents, leur permettant d’être informés où qu’ils soient du
temps de jeu de leur enfant.
VIII) Conclusion et ouverture :
Pour conclure, nous avons pris du plaisir à concevoir ce projet car il nous a permis de
découvrir une autre manière de jouer à TrackMania Turbo, jeu que nous apprécions
particulièrement. Le fait que le projet nous plaise et qu’il ait une utilité pour nous, nous a
permis de nous investir dans celui-ci sans ressentir de contraintes particulières.
En ouverture nous proposons une idée qui nous est venue lors de la démonstration
de notre projet, après que Mr Masson a dit qu’il préférait les mitraillettes aux volants. Après
réflexion, nous pensons qu’il est possible de concevoir, de la même façon que nous l’avons
fait avec le volant, un périphérique pour jouer à des jeux de guerre. En effet, la carte Arduino
Leonardo ne permet pas seulement la simulation du clavier, mais peut aussi simuler les
déplacements de la souris. On peut alors très bien imaginer, en récupérant les données de
l’accéléromètre sur les 3 axes, de calculer la position de l’objet dans l’espace, et de ce fait
simuler les déplacements de la souris, et ainsi orienter l’arme du joueur dans le jeu de
manière identique à celle que l’on tient dans les mains.
Avec l’émergence récente des casques à réalité virtuelle, un périphérique de jeu tel
que celui-ci donnerait une possibilité d’immersion quasi-totale au joueur. Il ne manquerait
alors plus qu’un tapis roulant omnidirectionnel pour être totalement immergé dans la
session de jeu.
9