« I2L 2023 Groupe5 » : différence entre les versions
(→Carte) |
|||
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).
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
Carte Finale:
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