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

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 2 : Ligne 2 :


== ''SCHÉMATIQUE KiCAD'' ==
== ''SCHÉMATIQUE KiCAD'' ==
[[Fichier:SCHEMATIC MANETTE.pdf|vignette|PDF du schématique complet de la manette|néant]]
[[Fichier:SCHEMATIC MANETTE.pdf|vignette|PDF du schématique complet de la manette|gauche]]
[[Fichier:Schematic2 manette.png|vignette]][[Fichier:Schematic1 manette.png|vignette|centré]][[Fichier:Video joystick manette.mp4|vignette|néant]]
[[Fichier:Schematic2 manette.png|vignette]][[Fichier:Schematic1 manette.png|vignette|centré]][[Fichier:Video joystick manette.mp4|vignette|néant]]
<br><br>
<br><br>

Version du 4 juin 2024 à 09:33

Conception de la manette

SCHÉMATIQUE KiCAD

PDF du schématique complet de la manette
Schematic2 manette.png
Schematic1 manette.png



PCB

Une photo de la manette PCB sans aucun composants
Visualisation 3D de la carte
La manette en mode DFU, la petite LED en haut à droite allumée est dû au port connecté à cette LED. Les derniers ports PF (5,6,7) sont des PIN spéciaux qui allument les LED connectées
PCB final de la manette
Première itération de soudage de la manette. Un court-circuit c'est créer lors de nos premiers soudages. La manette est devenue inutilisable par la suite, nous ne pouvions plus mettre le bootloader avec un Arduino sur l'ATMega



Code C

bool GetNextReport(USB_JoystickReport_Data_t* const ReportData)
{

	bool           InputChanged     = false;

	/* Clear the report contents */
	memset(ReportData, 0, sizeof(USB_JoystickReport_Data_t));

	if (~(PINF>>PIN7) & 1) ReportData->Button |= (1 << 1);
	if (~(PINF>>PIN6) & 1) ReportData->Button |= (1 << 0);
	if (~(PIND>>PIN1) & 1) ReportData->Y = 100;
	if (~(PIND>>PIN2) & 1) ReportData->X = 100;
	if (~(PIND>>PIN3) & 1) ReportData->X = -100;
	if (~(PIND>>PIN5) & 1) ReportData->Y = -100;


	InputChanged = 1;

	return InputChanged;
}
	/* Hardware Initialization */
	Joystick_Init();
	LEDs_Init();
	Buttons_Init();
	USB_Init();



	MCUCR |= (1<<JTD);
	MCUCR |= (1<<JTD);
	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)


	//Boutons A et B
	DDRF  &= 0b00111111;
	PORTF |= 0b11000000;
	
	//Boutons directionnels 
	DDRD  &= 0b11010001;
	PORTD |= 0b00101110;


	// Allumer les leds
	PORTF |= 0b00100011;
	PORTE |= 0b01000000;

Montage de la carte :

Fichiers: Fichier:ManetteUSBLilianPierre.zip

gerber: Fichiers: Fichier:SE3-pad-job.gbrjob.zip gerber: Fichiers: Fichier:SE3-pad-LGPC.zip