« SE3 PSE Binome2023-2 » : différence entre les versions
(→LUFA) |
|||
Ligne 32 : | Ligne 32 : | ||
[[Fichier:Soudure composants.jpg|alt=Principaux composants soudés sur la carte|vignette|left|300px|Principaux composants soudés sur la carte ]] | [[Fichier:Soudure composants.jpg|alt=Principaux composants soudés sur la carte|vignette|left|300px|Principaux composants soudés sur la carte ]] | ||
[[Fichier:20240408 140701.mp4|vignette|center|800px|Soudure]] | [[Fichier:20240408 140701.mp4|vignette|center|800px|Soudure]] | ||
<p style="clear: both;" /> | <p style="clear: both;" />Remarque : Lors du routage, n'ayant jamais réalisé de carte auparavant, nous n'avions pas conscience des faibles dimensions de cette dernière. Par conséquent, les boutons sont très rapprochés, ce qui ne facilite pas leur utilisation. De plus, nous avons soudé les boutons poussoirs sur le dessus de la carte, sans tenir compte du fait qu'ils étaient traversants. | ||
== '''Partie programmation''' == | == '''Partie programmation''' == |
Version du 3 juin 2024 à 13:01
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
Remarque : Lors du routage, n'ayant jamais réalisé de carte auparavant, nous n'avions pas conscience des faibles dimensions de cette dernière. Par conséquent, les boutons sont très rapprochés, ce qui ne facilite pas leur utilisation. De plus, nous avons soudé les boutons poussoirs sur le dessus de la carte, sans tenir compte du fait qu'ils étaient traversants.
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".