« I2L 2023 Groupe4 » : différence entre les versions
(Section Travail réalisé) |
|||
Ligne 18 : | Ligne 18 : | ||
= Contre-proposition = | = Contre-proposition = | ||
Le périphérique USB doit être de type spécifique (classe 0) et utiliser un point d'accès interruption, vous pouvez vous appuyer sur cet exemple LUFA de base : [[ | Le périphérique USB doit être de type spécifique (classe 0) et utiliser un point d'accès interruption, vous pouvez vous appuyer sur cet exemple LUFA de base : [[Média:LUFA_Minimal.zip]]. | ||
Pour remettre à zéro votre dictionnaire et ajouter des mots, vous écrirez une application avec la bibliothèque <code>libusb</code>. | Pour remettre à zéro votre dictionnaire et ajouter des mots, vous écrirez une application avec la bibliothèque <code>libusb</code>. | ||
= Proposition définitive = | = Proposition définitive = | ||
= Carte = | = Carte = | ||
Ligne 30 : | Ligne 28 : | ||
Même carte que le groupe 3. | Même carte que le groupe 3. | ||
= Code = | = Travail réalisé = | ||
== Code de test == | |||
Avant de réaliser nos tests, nous avons créé un script Bash afin de compiler et transverser automatiquement notre code vers notre carte ATmega32U4 afin de gagner du temps.<syntaxhighlight lang="bash" line="1"> | |||
#!/bin/bash | |||
# Supprimer le fichier de sortie s'il existe | |||
if [[ -f out/$1.o ]] | |||
then | |||
rm out/$1.o | |||
fi | |||
# Compilation | |||
avr-gcc -mmcu=atmega32u4 -DF_CPU=16000000UL -c -Wall -I. -Os src/$1.c -o out/$1.o | |||
if [[ -f out/$1.o ]] | |||
then | |||
avr-gcc -mmcu=atmega32u4 -g -lm -Wl,--gc-sections -o out/$1.elf out/$1.o | |||
avr-objcopy -j .text -j .data -O ihex out/$1.elf out/$1.hex | |||
# Transverser vers la carte | |||
dfu-programmer atmega32u4 erase | |||
dfu-programmer atmega32u4 flash out/$1.hex | |||
dfu-programmer atmega32u4 reset | |||
fi | |||
</syntaxhighlight>Nous avons commencé par développer 2 codes de test pour vérifier le fonctionnement des boutons et des LEDs. | |||
== Conception == | == Conception == | ||
[[Fichier:Carte.jpg|vignette|Photo de notre carte ATmega32U4]] | |||
== Réalisation == | == Réalisation == |
Version du 29 septembre 2023 à 13:13
Proposition de système
Description
Notre idée serait de faire un "pendu" : jeu qui consiste à deviner un mot en soumettant des lettres. Pour cela, les lettres trouvées seraient affichées sur un écran LCD qui afficherait également la lettre à proposer, celle-ci pourrait être changée avec 2 boutons (avant/après dans l'alphabet), et un 3ème bouton de validation est également présent.
Pour représenter le nombre de vies restantes (et donc d'échecs possibles) il y aurait 3 LEDs qui s'éteindraient au fur et à mesure des erreurs du joueur.
Le mot à trouver serait pioché au hasard dans un dictionnaire de mots qui pourrait être changé grâce à un échange de données via le port USB.
Matériel requis
- 1 micro-contrôleur ;
- 3 boutons (pour les actions flèche haut, flèche bas, entrée) ;
- 3 LEDs (nombre de vies) ;
- Écran LCD à 2 lignes à contrôleur HD44780 ;
- Port USB afin de changer le dictionnaire des mots.
Contre-proposition
Le périphérique USB doit être de type spécifique (classe 0) et utiliser un point d'accès interruption, vous pouvez vous appuyer sur cet exemple LUFA de base : Média:LUFA_Minimal.zip.
Pour remettre à zéro votre dictionnaire et ajouter des mots, vous écrirez une application avec la bibliothèque libusb
.
Proposition définitive
Carte
Même carte que le groupe 3.
Travail réalisé
Code de test
Avant de réaliser nos tests, nous avons créé un script Bash afin de compiler et transverser automatiquement notre code vers notre carte ATmega32U4 afin de gagner du temps.
#!/bin/bash
# Supprimer le fichier de sortie s'il existe
if [[ -f out/$1.o ]]
then
rm out/$1.o
fi
# Compilation
avr-gcc -mmcu=atmega32u4 -DF_CPU=16000000UL -c -Wall -I. -Os src/$1.c -o out/$1.o
if [[ -f out/$1.o ]]
then
avr-gcc -mmcu=atmega32u4 -g -lm -Wl,--gc-sections -o out/$1.elf out/$1.o
avr-objcopy -j .text -j .data -O ihex out/$1.elf out/$1.hex
# Transverser vers la carte
dfu-programmer atmega32u4 erase
dfu-programmer atmega32u4 flash out/$1.hex
dfu-programmer atmega32u4 reset
fi
Nous avons commencé par développer 2 codes de test pour vérifier le fonctionnement des boutons et des LEDs.
Conception
Réalisation
Démonstrations
Rendus
Projet KiCAD : Fichier:I2L-2023-Carte-G4.zip
Programmes : Fichier:I2L-2022-Programmes-G4.zip