SE3 PSE Binome2023-2
Sujet : Manette de jeu
Cahier des charges
Concevoir une manette de jeu vidéo, afin de pouvoir jouer à Space Invader, codé en informatique. Utilisation d'au moins 3 boutons poussoirs, 2 pour les déplacements à gauche, à droite, et 1 pour pouvoir tirer des missiles sur les monstres. Utilisation de LEDs afin de savoir le nombre de vies restant à l'utilisateur.
Lien GIT
https://archives.plil.fr/sdeparis/projet_manette_sd_ah.git
Partie électronique
Kicad
Schématique et routage
Fichier Gerber
Soudure
PCB sans composants
Soudure des principaux composants
Partie programmation
Implémentation d'un programme en C pour allumer les LEDs d'un PCB
Dans cette partie nous avons tester notre programme visant à faire clignoter les leds sur une carte des étudiants de l'année dernière.
#include <avr/io.h> #include <stdio.h> #include <util/delay.h> int main(){ CLKSEL0 = 0b00010101; // sélection de l'horloge externe CLKSEL1 = 0b00001111; // minimum de 8Mhz CLKPR = 0b10000000; // modification du diviseur d'horloge (CLKPCE=1) CLKPR = 0; // 0 pour pas de diviseur (diviseur de 1) DDRD |=0x03; // car on souhaite déclarer en sortie les ports 0 et 1 ce qui correspond à 3 en hexa while(1){ PORTD ^=0x03; // le xor permet d'allumer et éteindre les leds successivement _delay_ms(1000); // tps en ms } return 0; }
Détection du mode DFU sur notre carte
Utilisation de la carte Arduino Uno afin de détecter le mode DFU
Initialisation de notre carte
Programmation des leds
Programmation des boutons
LUFA
modification de la LUFA, pour l'adapter à notre carte et à nos objectifs d'utilisation.
Tout d'abord, nous avons modifié le minimal, et le descriptor de la manette pour qu'elle soit détecté en tant que DFU.
Ensuite, nous nous avons modifié le descriptor du joystick pour permettre à la carte d'être détecter comme Joystick, nous avons également reconfigurer Joystick.c pour identifier les boutons à leurs "actions".