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