Projet IMA3 P3, 2016/2017, TD1

De Wiki d'activités IMA
Révision datée du 29 mai 2017 à 14:55 par Sfeutrie (discussion | contributions) (Partie électronique)

Projet IMA3-SC 2016/2017 : Le Jeu de Simon et le Guitar Hero

Cahier des Charges

Description du système

  • L'objectif principal de notre projet est de réaliser un jeu qui utilise à la fois les lumières et le son. Pour cela, nous avons pensé à deux versions : le Simon et un jeu du type Guitar Hero.
  • Le Simon est constitué de quatre boutons de couleurs différentes : un bleu, un rouge, un vert et un jaune. Le jeu va afficher une séquence de couleurs qui sont chacune associées à un son. Le joueur doit ensuite se souvenir de la suite (en s'aidant du son et des couleurs comme moyen mnémotechnique) pour la reproduire dans le bon ordre en appuyant sur les boutons.
  • Le jeu Guitar Hero, quant à lui, est un jeu où il faut actionner des boutons de couleur précise, au moment où elles apparaissent sur une barre de défilement, à l'écran. Ces différentes activations, aux bons moments, permettent de réaliser une mélodie plus ou moins complexe selon la difficulté de la chanson à reproduire. Le tout est effectué grâce à une guitare connectée, afin de pousser l'expérience de simulation un peu plus loin. Si nous réalisons, ce jeu, il faut prendre en compte un affichage plus complexe. De plus, le Guitar Hero ajoute une notion de temps de réponse, plus difficile à gérer. Ce temps de réponse permet de laisser une courte marge d'erreur dans la réactivité de l'utilisateur, pour simuler pleinement l'utilisation d'une guitare électrique.


Nous avons choisis de d'abord nous concentrer sur le Simon et de faire le jeu Guitar Hero seulement si nous avons le temps.


Le matériel

Pour ce projet nous utiliserons :

  • Une page internet sur l'ordinateur pour pouvoir modifier les différents aspects du jeu : les règles du jeu, la musique jouée par le Simon ou bien la difficulté
  • Le Raspberry Pi, utilisée en tant que serveur, va envoyer les données en série ( qui seront traitées par le FPGA ), de les recupérer, et de faire l'algorithme.
  • Une carte Arduino pour relier la Raspberry Pi aux composants dans un premier temps : elle nous permet de coder en C (au lieu d'un langage assembleur) pour créer des programmes et gérer les différents modules tel que les boutons et les LEDs. Elle permettra une simulation momentanée du FPGA, afin que nous puissions avancer sur la partie informatique, sans attendre d'en avoir fini avec la partie FPGA.
  • Une fois le programme et les interactions fonctionnels, nous remplacerons l'Arduino par une FPGA qui est circuit logique programmable : on peut modifier les circuits logiques à l'intérieur mais on ne peut pas créer un programme avec un langage de plus haut niveau. Nous devrons donc utiliser des logiciels tiers qui nous permettront de placer des portes logiques (ET, OU,...) pour créer notre programme en assembleur.
  • Pour ce qui est de la partie mécanique, nous réaliserons une guitare en bois pour le "Guitar Hero" ainsi qu'un "jeu de Simon" réalisé via l'impression 3D.
  • Si le temps nous le permet, nous utiliserons un Xbee pour créer une connexion sans fil, afin d'expérimenter un module nouveau et acquérir de nouvelles compétences.
  • Nous utiliserons également des composants électroniques tels que des boutons poussoirs, des LEDs ou une matrice de LEDs pour l'affichage dans le cas du jeu de Simon, ainsi que de "l'essentiel" pour un système communiquant (à savoir résistances, fils électriques, etc...)

Description des séances

21/03/17 Séance 1 : Répartition des tâches et premiers pas

La première séance fut consacrée à la répartition des rôles et à la prise de conscience de la difficulté des différentes tâches. L'idée de faire un « jeu de Simon » que nous amélioreront ensuite en « guitar hero » a cependant était conservée.

Partie électronique

Nous avons décider de concentrer deux personnes sur le FPGA car c'est un élément très complexe et complètement nouveau. Nous allons en effet devoir coder à très bas niveau avec simplement des registres et des portes logiques.

L'objectif du composant sera de récupérer un message contenant les boutons sur lesquelles appuyer. Une fois ce message reçu, le FPGA va comparer le bouton saisit par l'utilisateur avec le bouton demander. S'il est correct, le fpga va passer à la couleur suivante, sinon il va renvoyer un message pour dire à la Raspberry (ou l'ordinateur) que l'utilisateur s'est trompé.

Pour commencer, nous réalisons le tutoriel pour allumer une LED qui va nous permettre de comprendre le fonctionnement de Altium Designer. Cela nous a pris du temps mais nous avons pu réaliser d'autres essaies avec des registres à décalages et des boutons.

Partie informatique

Partie mécanique : un modèle de guitare à découper

Dans cette première séance, nous avons décidé de focaliser nos premiers efforts sur la partie mécanique du "guitar hero". En effet, le « jeu de simon » pouvait être avancé plus tard car plus facile à modéliser et à réaliser.
1.jpg

Nous sommes alors partis sur l'idée de créer une maquette de guitare, sur laquelle nous allions disposer différents boutons de couleur, actionnables grâce à une pression sur le manche de l'instrument. Nous avions une ligne directrice mais pas encore d'idée précise de comment allait être réalisé la guitare, ni même ce à quoi elle allait ressembler.


Nous avons décidé de découper la guitare en bois qui nous servirait de support pour notre « guitar hero » grâce à la découpeuse laser. Pour se faire, un fichier conforme à la découpe devait être réalisé. Ainsi nous avons donc pris une image de guitare depuis internet. Dans le logiciel « GIMP », nous avons ensuite repassé les contours de l'instrument en rouge. Une fois ceci fait, nous avons effacé l'image de la guitare originale pour ne garder que les contours rouges. Enfin après quelques réglages, l'export en fichier SVG permettait une découpe précise. Les contours de la guitare sont disponibles ci contre (cliquez sur l'image pour bien voir).

A la fin de la séance, la guitare était prête à être réalisée et nous avons décidé de faire l'intégralité du « jeu de simon » via l'impression 3D. Cependant, aucune grande avancée n'a eu lieu sur la partie mécanique du jeu de Simon lors de cette séance.


28/03/17 Séance 2 : Poursuite du Projet et rencontre des premiers problèmes

La deuxième séance fut davantage productive, car chacun de nous savait les différentes tâches qu'il lui restait à accomplir.

Partie électronique

Pour le FPGA nous avons choisit d'essayer de s'attaquer directement au codage du programme pour le Simon. Nous avons décider d'utiliser des registres à décalages pour récupérer les infos. Nous allons en effet stocker toute la séquence de la "partie". On utilise un registre a décalage qui va récupéré un à un les bits qui arrivent sur la liaison série puis nous utilisons 4 registres à décalage : 1 pour chaque couleur.

Partie informatique

Partie mécanique : découpe de la guitare, modélisation et impression d'un prototype de touches pour cette dernière

Pp.jpg
Cette séance fut entamée par la découpe de la guitare grâce à la découpeuse laser du Fabricarium de Polytech. Dans un premier temps il a d'abord était nécessaire « d'apprivoiser » la découpeuse et d'apprendre à bien la configurer pour obtenir le résultat souhaité, sans risques. Un premier essai a d'abord était réalisé dans du carton pour pouvoir juger des différentes dimensions de la guitare.

Enfin, une seconde version, en bois, fut réalisée durant cette séance. Finalement nous décidons de partir sur l'idée d'une guitare réalisée en 4 couches d'épaisseur : 2 extérieures en bois ( une de face, décorée avec les boutons à actionner et la carte arduino et une seconde, arrière, de protection), et deux intérieures en carton(creusées pour laisser passer les fils de connectiques).

Note : Malheureusement, une des couche en bois a était cassée par la suite lors de la confection de la guitare. La panne prolongée de la découpeuse laser nous a contraint à renoncer à l'idée d'une quatrième couche en bois de protection.
Po.jpg


De plus, via le logiciel de modélisation FreeCAD, nous avons commencé à concevoir deux prototypes de « touches » (boutons) pour la guitare.

L'idée était de créer des surfaces larges (pouvant recueillir une phalange de doigts au minimum) faisant office de touches, en dessous desquelles nous insérerions un bouton poussoir 4 pins (fournis par les professeurs). La création de touches plus larges était indispensable. En effet, les boutons poussoirs étaient bien trop petits pour avoir un actionnement facile et agréable. Nous avons pu lancer l'impression des touches à la fin de la séance. Cependant, les différents tests et les défauts d'impression nous ont fait comprendre qu'il serait difficile de « glisser » un bouton poussoir dans une touche avec un espace assez étroit pour le maintenir, sans pour autant bloquer son actionnement lorsqu'une pression était appliquée. De plus, la fixation risquait d'être assez complexe. Nous avons alors décidé de faire un tout autre type de touche mais avec le même fonctionnement. Pour cela nous allions avoir besoin de modéliser et d'imprimer de nouveaux un prototype de touche. Il allait ensuite falloir percer la première couche en bois de la guitare. Puis il serait également nécessaire de creuser les sous couches en carton pour y placer les boutons poussoirs et les différents câbles.


05/04/2017 Séance 3 : Encore beaucoup de choses à faire !

Bien que ce soit notre dernière séance officielle, nous savions que nous allions avoir besoin de beaucoup de temps pour terminer ce projet !

Partie électronique

Partie informatique

Partie mécanique

La troisième séance était destinée à l’élaboration du jeu de Simon. Une première idée était de créer quatre pièces plates, composées de multiples leds, qu'il faudrait actionner via une simple pression. Cependant, nous nous sommes dit qu'une seule LED pour une couleur, suffisait à indiquer la combinaison à reproduire.

Le tout devait être assez grand pour contenir la carte arduino ainsi que toute la connectique, sans pour autant être trop encombrant, tout en étant assez ergonomique et agréable au regard.

Nous avons donc décidé de créer un support creux qui contiendrait la partie électronique , au dessus duquel nous placerions les 4 pièces de couleur avec une LED pour chaque couleur.

Nous savions dès lors, qu'un travail long minutieux nous attendait.

Ainsi nous avons fait de nombreux croquis avec les différentes pièces et leurs dimensions éventuelles. Des pièces que nous allions réaliser uniquement en impression 3D. Un travail similaire a été réalisé pour la guitare, afin de ne pas percer la guitare à de mauvais endroits, et pour agencé les différents parties à ajouter sur la guitare de la meilleure façon possible. Pour résumer cette séance, nous avons réalisé tous les croquis nécessaires à la réalisation de la guitare et du Simon.


Séance supplémentaire : Terminons ce Projet !

Il n'y a pas eu un nombre précis de "séances supplémentaires". Chacun des membres du groupe travaillait soit chez lui, soit à l'école de manière régulière, afin d'avancer sa partie le plus rapidement possible.

Partie électronique

Partie informatique

Partie mécanique : Suite et fin de la confection de la guitare et du jeu de Simon

Comme nous l'avons prédit, la plus grosse partie du travail réalisé a dû être faite lors de séances supplémentaires ou par travail personnel chez soi.

Après avoir réalisé les croquis, il était essentiel de créer rapidement les différents supports. En effet, cela nous permettait d'avoir du temps pour éventuellement recommencer et revoir les axes de travail en cas d'impossibilité de réalisation pour quelconque raison. De plus, une fois la partie mécanique terminée, nous pouvions l'utiliser comme support pour les tests électroniques. Enfin, cela nous laissait du temps en fin de projet pour décorer notre projet, que nous voulions personnalisé afin d'en être le plus satisfaits possible.

Un gros travail de modélisation à dû être fait sur FREECAD. Le support du jeu de Simon fut la pièce la plus simple à réaliser (un cylindre semi fermé, de 7 cm de rayon).

Puis une simple découpe grâce à une scie permettrait de faire réceptacle pour une "croix porteuse" sur laquelle serait disposés les touches du Simon.

De la même façon que pour la guitare, les touches seraient placées au dessus de boutons poussoirs. Ces derniers seront collés sur la croix.

Tg.jpg

Une fois ceci fait, il fallait réaliser le plus important du jeu : les touches à actionner !

Pour cela, il était préférable de conserver la forme cylindrique du support en modélisant 4 pièces, d'un quart de disque chacune. Par soucis de fixation sur la croix et par envie d’esthétisme, les touches seraient un peu incurvées pour donner une forme moins géométrique au rendu final.

De plus, elles seront perforées pour laisser passer une LED de la même couleur que la touche sur laquelle elle se trouve. Ainsi l'utilisateur pourra mémoriser les touches à activer via le système lumineux des LEDs.

Enfin, un cylindre permettant l'accroche sur la croix à été prévu sur la partie inférieure de les touches du Simon. (suite à une impression peu précise, ce cylindre sera « fondu » pour épouser la forme de la croix sans jeu dans la fixation.)

Touc2.jpg

Vint ensuite le moment de la création ! L'impression de ces pièces étant la plus complexe, nous pensions qu'il serait nécessaire de les recommencer plusieurs fois. La WitBox du Fabricarium (la plus précise des imprimantes mise à notre disposition) a réalisé une impression assez laborieuse. Un gros travail de ponçage à donc dû être réalisé, car le support nécessaire pour imprimer cette pièce « incurvée » avait donné de nombreuses bavures sur la surface des touches. Afin que le toucher reste agréable, nous avons donc retravaillé les pièces.


Une fois ceci fait, nous avons essayé de les positionner sur la croix prévue à cet effet. Une fois encore, nous étions confronté aux limites de l'impression 3D. Les dimensions du « cylindre pillier » étant non précise, et cette partie étant trop fine pour être sciée sans rupture de la pièce, nous avons décidé de faire « fondre » cette partie et de la placer, encore chaude sur la partie en forme de croix. Cela permettait une fixation sûre et une dimension épousant parfaitement les formes du support. L'inconvénient fut que cette méthode, peu précise, n'a fait qu'accentuer les erreurs d'impressions au niveaux du visuel. Effectivement, les 4 pièces ne semblent pas régulières et le disque qu'elles sont censées former (ensemble de 4 quarts de disque) ne semble pas parfait.
Bttt.jpg
Socle.jpg


Nous décidons cependant de conserver ce léger défaut, car si nous recommencions nous risquerions d'être de nouveau confronté au même souci, l'erreur n'étant pas uniquement dû à notre manipulation mais également à l'imprimante 3D.


L'impression du socle était la plus longue à imprimer (près de 6 heures) .Après l'avoir un peu scié comme prévu, cette pièce était également prête à être peinte. Nous avons fait de même avec la croix à placer sur le socle et servant de support aux quatre touches du Simon. Cette impression étant rapide et facile, un seul essai suffit pour obtenir notre version définitive. L'impression fut dans ce cas, parfaitement aux mesures souhaitées dans le fichier .stl (bien que réalisé avec une imprimante de moins bonne qualité que la WitBox). Ainsi les boutons poussoirs que nous avions à positionner dessus tenaient sans souci par un simple encastrement. Par la suite, par mesure de sécurité, nous avons tout de même rajouté un point de colle en dessous des boutons pour éviter tout désencastrement non souhaité.

Tr.jpg


En parallèle, nous avons travaillé sur les différentes couches d'épaisseur de la guitare. Dans un premier temps il était nécessaire de retirer une partie dans le manche pour y placer les boutons poussoirs. Cette étape aurait pu être réalisé rapidement avec la découpeuse laser, mais celle ci étant en panne, nous l'avons fait via une perceuse et un foret au Fabricarium. Le résultat était un peu moins net mais convenable cependant. De plus le "trou" sera caché par la pièce contenant les touches. Une fois la couche de bois travaillée, nous avons creusé la partie cartonnée afin de pouvoir y laisser passer les différents câbles liant les boutons poussoirs (situés sous les touches du manche de la guitare) à une breadboard (sur la partie basse de l'instrument).

Afin que les câbles sortent de la guitare de façon propre, nous avons percé 4 trous à la base du manche. Ainsi de chaque trou ressortira deux fils de connectique ( un pour l'entrée du bouton poussoir et un pour la sortie).




Tt.jpg
Ceci étant terminé, il fallait passer à la conception des touches de la guitare.
Touc.jpg

C'est en observant une imprimante 3D du Fabricarium qu'une idée de modèle touche vue le jour. Nous allions faire une seule et unique pièces pour les 4 touches. Fine, elle pourrait être facilement pliée sous une pression du doigts pour actionner un bouton poussoir situé en dessous de chacune des 4 touches.suffirait juste de peindre les 4 touches de couleurs différentes pour les différencier. Cette pièce serait fixée sur le manche de la guitare, couvrant une couche de bois perforée et une cartonnée « creusée » pour laisser passer la connectique jusqu'à la partie inférieure de la guitare.

Finalement, il aura fallut quelques heures supplémentaires des séances pour avoir toutes nos partie modéliser sur FREECAD et prête à être imprimées, qu'elles soient destinées au Simon ou au Guitar Hero.

L'heure est donc à la réalisation ! Les impressions 3D se sont faites sur l'imprimante d'un des membre du groupe ainsi que sur celles du Fabricarium.

Les touches qui actionneraient les boutons poussoirs étaient les plus à même d'être à recommencer. En effet, un problème de fixation, ou encore une rigidité trop grande empêcherait l'actionnement du bouton et serait donc inutilisable. Ainsi nous avons commencé par imprimer les touches (pour la guitare et pour le simon). Dans un premier temps, nous nous sommes occupés de la pièce pour la guitare. La première impression fut décevante, car trop épaisse (8mm) , la pièce ne pliait pas sous la pression des doigts et n’actionnait donc pas les boutons placés dessous.

Ce pourquoi nous avons lancé immédiatement une nouvelle impression avec 3mm d'épaisseur. Les tests étant concluants, nous n'avions plus qu'à la peindre de 4 couleurs différentes pour symboliser les 4 touches du guitar hero.


Ceci commença par la réalisation de soudures des boutons poussoirs avec les fils. Ces fils seraient ensuite placés sous la couche de bois, dans la couche de carton. Cette étape fut rapidement terminée.

Les 8 boutons poussoirs étaient prêts ! Quatre pour la guitare, quatre pour le jeu de Simon.

Finalement, toutes les pièces étant réalisées, il fallait réaliser un travail d'assemblage, et de finitions (au niveaux des couches de peinture notamment). 

Nous nous sommes préalablement assuré que tous les boutons poussoirs étaient fonctionnels et que les soudures étaient correctement réalisées grâce à des tests rapides avec la carte arduino.


Led.jpg

Enfin, il ne restait plus qu'à peindre nos différentes pièces.

Premièrement nous avons appliqué deux couches de blanc sur chacune des pièces. Puis sur celles qui nécessitaient une couleur précise ( en autre : les touches de la guitare et du Simon), nous avons repassé deux couches de couleur dessus.

7.jpg

Puis, nous avons assemblé toutes les pièces entre elles pour obtenir le résultat final !

L'assemblage des différentes couches de la guitare à d'abord était provisoirement fait avec de la colle forte. Si le collage venait à céder, nous utiliserons sans doute des vis ou des accroches en plastique pour maintenir le tout en place.

Nous en avons profité pour utiliser la peinture restantes pour décorer un peu notre guitare et ainsi la personnaliser comme bon nous semblait.



Finalement, le résultat est plus que satisfaisant ! Les quatre couleurs primaires étant vives, elles donnent un aspect coloré et joyeux à notre projet ! Les quatre touches du Simon, surmontées d'une LED de la même couleur que la touche, permettent une utilisation claire et facile du « jeu de Simon ».


Dans la globalité, nous sommes assez fiers du résultat de la partie mécanique ! Que ce soit du "jeu de Simon" ou de la Guitare du "Guitar Héro", les boutons poussoirs sont activables facilement (voir la vidéo de démonstration en cliquant sur le lien suivant :[1] ). De plus le résultat est assez agréable à regarder ou encore facile a prendre en main.


Désormais, la partie mécanique étant terminée et fonctionnelle, il faut la lier à la partie informatique et électronique. Nous allons perfectionner la partie FPGA et Arduino pour exploiter pleinement les deux supports (guitare et jeu de Simon) ainsi réalisés.

End.jpg
Endd.jpg


Conclusion