« SE3 PSE Binome2023-3 » : différence entre les versions
Aller à la navigation
Aller à la recherche
Ligne 6 : | Ligne 6 : | ||
* Recevoir l'info "bouton appuyé" | * Recevoir l'info "bouton appuyé" | ||
* Fonction d'envoi/réception d'un message via USBSend | * Fonction d'envoi/réception d'un message via USBSend | ||
* gcc la libusb | * gcc la libusb* | ||
= CONCEPTION = | = CONCEPTION = | ||
Ligne 73 : | Ligne 73 : | ||
=== Installation du bootloader via ISP: === | === Installation du bootloader via ISP: === | ||
[[Fichier:Arduino.jpg|sans_cadre]] | [[Fichier:Arduino.jpg|sans_cadre]] | ||
== Intégration de la manette dans le jeu == | == Intégration de la manette dans le jeu == | ||
Ligne 111 : | Ligne 102 : | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= TEST = | = TEST = | ||
Ligne 124 : | Ligne 114 : | ||
[[Fichier:Space avec manette.mp4|sans_cadre]] | [[Fichier:Space avec manette.mp4|sans_cadre]] | ||
= À PROPOS DE LA MANETTE = | |||
=== Informations générales: === | |||
idVendor : 0x057e | |||
idProduct : 0x0306 | |||
=== Mode d'emploi: === | |||
[[Fichier:MANETTE BOUTON.jpg|sans_cadre|366x366px]] | |||
Bouton A : Quitter le jeu | |||
Bouton B: Tirer un missile | |||
Bouton R : Aller vers la droite | |||
Bouton L : Aller vers la gauche | |||
=ARCHIVE = | =ARCHIVE = |
Version du 6 juin 2024 à 08:12
TO DO
- implémenter minimal dans joystick
- Recevoir l'info "bouton appuyé"
- Fonction d'envoi/réception d'un message via USBSend
- gcc la libusb*
CONCEPTION
Schématique
Routage
PINOUT
NOM | PIN |
---|---|
BP_L | PD2 |
BP_A | PC7 |
BP_B | PC6 |
BP_D | PD7 |
BP_U | PD5 |
BP_R | PD6 |
LED2 | PB4 |
LED3 | PB5 |
RÉALISATION
Brasage des composants sur le PCB
Brasage atmega32u4 sur le PCB:
PCB avec atmega32u4, bouton reset et HWB:
PCB terminé:
Correction de conception du PCB:
Suite à une mécompréhension du fonctionnement des boutons, ceux-ci sont reliés nativement au +5v et non à la masse.
Nous avons donc coupé le cuivre entre J3 et J4 (empreintes de servomoteur que nous n'utilisons pas) puis nous avons relié le cuivre à la masse de J3 afin de corriger notre erreur.
À la suite de cette modification la carte fonctionne parfaitement.
Programmation de l'atmega32u4
Installation du bootloader via ISP:
Intégration de la manette dans le jeu
/*Ce code est purement à titre démonstratif pour ajouter la manette dans le jeu, il ne s'agit pas du jeu fonctionnel*/
int game()
{
SDL_Joystick* Joystick = NULL; //On définit une manette.
Joystick = SDL_JoystickOpen(0); //On choisit sa manette, 0 étant la première manette sur le PC.
while(1)
{
int b_tir = SDL_JoystickGetButton(Joystick, 1);
/*Cette fonction prend en paramètre la manette ainsi que le bouton et renvoie 1 si le bouton est appuyé, 0 sinon.*/
int b_quit = SDL_JoystickGetButton(Joystick, 0); //idem
int b_x = SDL_JoystickGetAxis(Joystick, 0);
/*Cette fonction prend en paramètre la manette ainsi que l'axe et retourne 32768 si l'axe est totalement à droite (haut pour Y)
et -32768 à gauche (bas pour Y). Au point mort, l'axe retourne 0.*/
if(b_quit == 1) quitter_le_jeu();
if(b_x > 0) deplacement_monstres_droite();
if(b_x < 0) deplacement_monstres_gauche();
if(b_tir == 1) tir_missile();
}
return 0;
}
TEST
Vidéo de test du clignotement des LEDs de vie:
Vidéo de test d'allumage d'une LED avec un bouton:
Vidéo de test du Space Invaders avec la manette:
À PROPOS DE LA MANETTE
Informations générales:
idVendor : 0x057e
idProduct : 0x0306
Mode d'emploi:
Bouton A : Quitter le jeu
Bouton B: Tirer un missile
Bouton R : Aller vers la droite
Bouton L : Aller vers la gauche
ARCHIVE
Archive KiCad Manette : Fichier:CARTDETREZ.zip
Archive programmation USB : https://archives.plil.fr/vdetrez/PSE_Manette_CART_DETREZ.git
Tuto : https://rex.plil.fr/Enseignement/Systeme/Systeme.PSE/systeme033.html