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

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 75 : Ligne 75 :
}
}
</pre>
</pre>
== Programmation de la manette ==
===Programmation ISP===
Premièrement, notre manette n'est pas reconnue comme un périphérique USB sur un ordinateur. Pour cela, nous la programmons par ISP afin de pouvoir installer le Bootloader USB et continuer.
Nous devons alors connecter la manette par ISB avec un Arduino et rentrer les commandes suivantes dans le terminal :
avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U lfuse:w:0xFF:m -U efuse:w:0xF7:m
L'ATMega sait alors qu'il faut passer en mode DFU quant le bouton d'HWP est pressé.
avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U flash:w:ATMega32U4-usbdevice_dfu-1_0_0.hex
Cette commande doit être utiliser une fois avoir télécharger le Bootloader au lien suivant :
https://www.microchip.com/en-us/product/ATmega32U4#document-table


== GIT ==
 
= GIT =
https://archives.plil.fr/ktouron/S6_TPI
https://archives.plil.fr/ktouron/S6_TPI

Version du 9 avril 2024 à 15:59

Hardware

Projet KiCad

Nous avons fait le choix de mettre 8 boutons pour multiplier les possibilités d'utilisations et 4 LEDs, nous pourrons leur trouver diverses utilités plus tard dans le projet.

Photo du routage en forme de manette avec deux poignées, cela peut permettre une meilleure prise en main.
Photo de la Schématique


Fichier compressé du projet KiCad : Fichier:SE3-pad 2.zip

PCB et Soudure des composants

Reçu carte vierge

Photo de la carte vierge

Carte après soudure des composants

Photo de la carte avec composants soudés

Différents problèmes rencontrés

Lors de la soudure du composants nous avons rencontrés principalement deux problèmes (si on ne compte pas la fois où nous avons soudé l'ATMega dans le mauvais sens). Le premier étant qu'une patte permettant de connecter celle du microP à la carte est morte, Mr.Redon a alors travaillé minutieusement afin de soudé un fil entre la résistance et la patte du microP. Le deuxième est que nous avons de relié la LED D1 au VCC (voir photo du routage), nous avons alors soudé un fil entre eux. (Pas minutieusement)

Photo du fil remplaçant la patte.
Photo du fil pour relié la LED de tension.


Software

Allumage de LEDS sur Programmateur AVR

Avant de programmer directement sur la manette, nous avons allumé des LED sur un programmateur AVR.

include<avr/io.h>
#include<stdio.h>
#include<stdlib.h>
void config(unsigned int bit, unsigned char port, unsigned int io){
   
    if (io == 1){
        if (port == 'B')    DDRB |= (io<<bit);
        if (port == 'C')    DDRC |= (io<<bit); 
        if (port == 'D')    DDRD |= (io<<bit); 
    }
    else if (io == 0){
        if (port == 'B')    DDRB &= ~(1<<bit);
        if (port == 'C')    DDRC &= ~(1<<bit); 
        if (port == 'D')    DDRD &= ~(1<<bit); 
    }
}
void put_bit(unsigned int bit, unsigned char port, unsigned int io){
    if (io == 1){
        if (port == 'B')    PORTB |= (io<<bit);
        if (port == 'C')    PORTC |= (io<<bit); 
        if (port == 'D')    PORTD |= (io<<bit); 
    }
    else if (io == 0){
        if (port == 'B')    PORTB &= ~(1<<bit);
        if (port == 'C')    PORTC &= ~(1<<bit); 
        if (port == 'D')    PORTD &= ~(1<<bit); 
    }
}
int get_bit(unsigned int bit, unsigned char port){
    if (port == 'B')    return 1 & (PINB>>bit);
    if (port == 'C')    return 1 & (PINC>>bit);
    if (port == 'D')    return 1 & (PIND>>bit);
    return -1;
}
int main(void){   
     //Setup
    config(2,'C',1);
    config(4,'C',1);
    put_bit(2,'C',1);
    put_bit(4,'C',1);
    while (1);
    return 0;
}

Programmation de la manette

Programmation ISP

Premièrement, notre manette n'est pas reconnue comme un périphérique USB sur un ordinateur. Pour cela, nous la programmons par ISP afin de pouvoir installer le Bootloader USB et continuer. Nous devons alors connecter la manette par ISB avec un Arduino et rentrer les commandes suivantes dans le terminal :

avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U lfuse:w:0xFF:m -U efuse:w:0xF7:m

L'ATMega sait alors qu'il faut passer en mode DFU quant le bouton d'HWP est pressé.

avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U flash:w:ATMega32U4-usbdevice_dfu-1_0_0.hex

Cette commande doit être utiliser une fois avoir télécharger le Bootloader au lien suivant : https://www.microchip.com/en-us/product/ATmega32U4#document-table


GIT

https://archives.plil.fr/ktouron/S6_TPI