« I2L 2022 Groupe5 » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 43 : | Ligne 43 : | ||
= Détails des fonctionnalités = | = Détails des fonctionnalités = | ||
[[Fichier:Screenshot CodeSetupHardware.png|vignette]] | [[Fichier:Screenshot CodeSetupHardware.png|vignette]] | ||
= Fichiers = | = Fichiers = | ||
Version du 30 juin 2023 à 20:51
Proposition de système
Notre projet est de faire un système de jeu type "juste prix" où le but est de trouver une valeur numérique. Au plus on se rapproche de la valeur recherchée, au plus le son émis par le système est fort.
Contre-proposition
Il est demandé à ce que le périphérique puisse fonctionner en autonomie ou connecté à un PC. Si le périphérique est connecté à un PC, le périphérique se comporte comme un port série et communique avec le joueur via un terminal série (e.g. minicom ou putty). Si le périphérique est simplement alimenté par une batterie USB, le joueur utilise uniquement les deux touches et le retour se fait par les 3 LED multicolores et des effets sonores. En mode autonome, peut être serait-il plus pratique de trouver 3 couleurs qu'un nombre ?
Pour la programmation du périphèrique USB vous utilisez, comme base, la démonstration LUFA Demos/Device/LowLevel/VirtualSerial
.
Proposition définitive
Le but de ce projet est de concevoir un dispositif USB sur lequel tourne un jeu mélangeant "Juste prix" et "Mastermind".
En effet, le joueur devra trouver une combinaison de couleurs en paramétrant les trois LED colorées du dispositif.
À chaque couleur est associée une lettre et une valeur numérique :
- Noir (la LED est éteinte) → N - 0
- Rouge → R - 1
- Jaune (diodes rouge et verte allumées) → J - 2
- Vert → V - 3
- Cyan (diodes verte et bleue allumées) → C - 4
- Bleu → B - 5
- Magenta (diodes bleue et rouge allumées) → M - 6
- Blanc (toutes les diodes de la LED sont allumées) → W - 7
Lorsque le joueur valide une combinaison, le dispositif émet une mélodie via un haut-parleur intégré (différente en fonction de "perdu"/"gagné").
Il est possible de jouer de deux façons :
- Le dispositif est branché à un ordinateur. Pour paramétrer la combinaison à tester, le joueur saisit via un clavier les 3 lettres correspondant aux 3 couleurs souhaitées. Si la combinaison envoyée est erronée, une indication est affichée au joueur, à savoir, une combinaison de "+", "-" et ".". Le caractère "." signifie que la couleur envoyée est correcte, le "+" signifie que le joueur doit essayer une couleur avec une valeur numérique associée plus grande et le "-" signifie que la valeur numérique associée attendue est inférieure à celle proposée.
- Le dispositif est en mode autonome (branché sur une batterie). Pour paramétrer la combinaison à tester, le joueur utilise les deux boutons intégrés au dispositif. Le premier permet de sélectionner la LED à configurer, le second permet de choisir sa couleur. Les couleurs défilent alors selon l'ordre mentionné ci-dessus (du noir au blanc et ainsi de suite). Pour valider une combinaison, le joueur fait un appui long sur le bouton de sélection de LED. En cas de combinaison fausse, après mélodie "perdu", trois signaux sonores sont joués, à savoir, un LA 440Hz si la couleur est juste, un DO (264Hz) si la valeur numérique de la couleur est trop haute et un DO (528Hz) si la valeur numérique de la couleur est trop basse (en d'autres termes, un son aigu indique qu'il faut tester une couleur avec une valeur numérique plus haute et vice-versa).
Carte
Carte soudée :
Détails des fonctionnalités
Fichiers
Projet KiCAD : Fichier:I2L-2022-GENESTE-DECLOITRE.zip
Programme sonore : Fichier:I2L-2022-G5-Music.zip
Projet LUFA "nombre mystère" : Fichier:I2L-2022-G5-mystere.zip
Ceci est le code final écrit en C de manière parfaitement optimisé Fichier:MysteryColor.zip
Pour compiler le projet LUFA, il faut commencer par récupérer la bibliothèque lufa-LUFA-210130
. Il faut ensuite placer le répertoire de l'archive dans un nouveau répertoire I2L créé dans le répertoire de la bibliothèque : lufa-LUFA-210130/I2L/Serial
. Un simple make
compile le projet et un make dfu
télécharge le binaire dans le périphérique USB. Pour jouer, utilisez par exemple l'utilitaire minicom
. La commande minicom -b 9600 -D /dev/ttyACM0
fonctionne très bien sous Linux.