« SE3 PSE Binome2023-8 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 57 : Ligne 57 :


Nous avons seulement eu besoin de modifier le Makefile pour pouvoir cibler la carte bootloadée et les conditions de modification des valeurs des axes et des boutons.
Nous avons seulement eu besoin de modifier le Makefile pour pouvoir cibler la carte bootloadée et les conditions de modification des valeurs des axes et des boutons.
[[Fichier:Screenshot from 2024-06-10 18-05-04.png|centré|vignette|Capture d'écran du code d'implémentation du Joystick]]


Nous avons testé ce code grâce à l'outil : jstest-gtk, qui nous montre de façon visuel l'état des axes et des boutons.
Nous avons testé ce code grâce à l'outil : jstest-gtk, qui nous montre de façon visuel l'état des axes et des boutons.
Ligne 64 : Ligne 65 :
==Implémentation des LEDs==
==Implémentation des LEDs==
Pour cette partie, nous avons utilisé et complété le dossier ressource "Minimal" et la libusb :
Pour cette partie, nous avons utilisé et complété le dossier ressource "Minimal" et la libusb :
==Fusion des implémentations boutons et LEDs==
Maintenant que nous avons implémenté les boutons et les LEDs séparement, nous allons les fusionner en un seul programme.

Version du 10 juin 2024 à 16:22

Préambule

Ce projet consiste à réaliser une manette de jeu, pour cela nous allons utiliser un micro-contrôleur : L'Atmega16u4.

Pour y parvenir, nous devons :

- Concevoir un PCB qui servira de manette

- Souder les différents composants

- Créer un programme qui envoie des données depuis la manette au PC (pour jouer)

- Créer un programme qui envoie des données depuis le PC à la manette (en l'occurrence, allumer les LEDs en fonction du nombre de vies restantes)


Lien de l'archive GiT: Archive GIT

Partie KICAD

Projet KiCAD : Fichier:SE3-man-TEPELI-WACQUET.zip

Nous avons pour cela à disposition une archive Kicad à compléter.

Nous avions à disposition des connecteurs ISP pour pouvoir bootloader le micro-contrôleur, un connecteur ISP pour pouvoir téléverser nos codes et alimenter la carte, des boutons de Reset et HWB pour pouvoir réinitialiser la carte et permettre de téléverser de nouveaux programmes, ainsi que des boutons et des LEDs pour jouer au jeu.

Schématique KICAD :

Capture d'écran du schématique de l'ATMega.
Capture d'écran du schématique des autres composants.

Routage KICAD et Fichier SVG :

Capture d'écran du routage de la carte.
Fichier SVG du routage de la carte.


Soudure

Après avoir reçu la carte, nous avons soudé les composants, majoritairement des CMS.

Nous avons seulement soudé un composant traversant : le connecteur ISP

Photographie lors de la soudure :

Photo prise durant la soudure des composants.

Intégration dans le jeu

Bootloading

Avoir de pouvoir téléverser de codes, nous avons dû bootloader la carte via le connecteur ISP et un carte Arduino.

Implémentation des boutons

Ensuite grâce au dossier ressource "Joystick", nous avons pu contrôler le vaisseau de SpaceInvaders.

Pour que notre carte soit considérée comme un Joystick, il faut qu'elle comporte 2 axes de déplacement, les boutons ne sont pas obligatoires.

Notre carte ne comporte que 4 boutons, nous avons décidé d'en utiliser 2 en tant que boutons et 2 en tant qu'axe X, l'axe Y existe mais n'est pas implémentée, nous avons complétement supprimé l'axe Z.

Nous avons seulement eu besoin de modifier le Makefile pour pouvoir cibler la carte bootloadée et les conditions de modification des valeurs des axes et des boutons.

Capture d'écran du code d'implémentation du Joystick

Nous avons testé ce code grâce à l'outil : jstest-gtk, qui nous montre de façon visuel l'état des axes et des boutons.

Nous avons ensuite modifié le code d'un de nos SpaceInvaders, grâce à un tutoriel, pour nous permettre d'utiliser la manette.

Démonstration de l'utilisation de la manette

Implémentation des LEDs

Pour cette partie, nous avons utilisé et complété le dossier ressource "Minimal" et la libusb :



Fusion des implémentations boutons et LEDs

Maintenant que nous avons implémenté les boutons et les LEDs séparement, nous allons les fusionner en un seul programme.