« I2L 2023 Groupe5 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 33 : Ligne 33 :


== Conception ==
== Conception ==
* Mise en place d'un programme simple de test qui inverse l'état de deux LED lors de l'appui sur un bouton
<syntaxhighlight lang="c">
    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)
    DDRC    |= (1 << 4);
    DDRC    |= (1 << 5);
    DDRB    &= ~(1 << BUT_BIT);
    PORTB  |= (1 << BUT_BIT);
    PORTC |= (1 << 4);
    while(1) {
        if (!(PINB & (1 << BUT_BIT))) {
            PORTC ^= (1 << 4);
            PORTC ^= (1 << 5);
            _delay_ms(1000);
        }
    }
</syntaxhighlight>
* Création d'un programme pour manipuler les LEDs multicolores:
''Problème: faible intensité lumineuse, probablement un défaut de la carte''
* Création du cœur du système de jeu (utilisable en dehors de la carte):
* Création d'un programme pour permettre une connexion avec un terminal externe:


== Réalisation ==
== Réalisation ==

Version du 29 septembre 2023 à 14:20

Proposition de système

Le projet consiste en un Mastermind où un joueur doit deviner une série de 4 couleurs en proposant des séries une à une. La carte comprend deux séries de 4 LEDS multicolores, l'une pour les propositions faites par le joueur, la seconde pour valider ou non les couleurs proposées. En dessous se trouve un clavier de 6 boutons permettant de :

  • proposer les couleurs (1 par couleur donc 4 en tout)
  • un bouton RESET
  • un bouton ENTER pour confirmer une proposition.

Enfin, un port USB permettant de jouer au jeu en mode non-autonome depuis une console texte (avec affichage d'un historique).

SchemaMasterMindPdf.pdf

Contre-proposition

Il doit être aussi possible de jouer du PC quand la carte y est connectée. Pour ce faire vous utiliserez un terminal série comme minicom ou putty. Votre carte doit donc implanter un périphérique USB de type émulation de port série.

Pour la programmation du périphèrique USB vous utilisez, comme base, la démonstration LUFA Demos/Device/LowLevel/VirtualSerial.

Vous n'avez pas à écrire de programme PC avec la bibliothèque libusb.

Proposition définitive

Répartition du travail

Carte

I2L-2023-Carte3D-G5.png
I2L-2023-CarteSchema-G5.pdf

Carte Finale:

M2I2L-Groupe5-Carte.jpg

Code

Conception

  • Mise en place d'un programme simple de test qui inverse l'état de deux LED lors de l'appui sur un bouton
    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)

    DDRC    |= (1 << 4);
    DDRC    |= (1 << 5);
    DDRB    &= ~(1 << BUT_BIT);
    PORTB   |= (1 << BUT_BIT);

    PORTC |= (1 << 4);
    while(1) {
        if (!(PINB & (1 << BUT_BIT))) {
            PORTC ^= (1 << 4);
            PORTC ^= (1 << 5);
            _delay_ms(1000);
        }
    }
  • Création d'un programme pour manipuler les LEDs multicolores:

Problème: faible intensité lumineuse, probablement un défaut de la carte

  • Création du cœur du système de jeu (utilisable en dehors de la carte):
  • Création d'un programme pour permettre une connexion avec un terminal externe:


Réalisation

Démonstrations

Rendus

Projet KiCAD : Fichier:I2L-2023-Carte-G5.zip

Programmes : Fichier:I2L-2022-Programmes-G5.zip