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

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
(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 : [[Media:LUFA_Minimal.zip]].
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 =
= Répartition du travail =


= 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

Photo de notre carte ATmega32U4

Réalisation

Démonstrations

Rendus

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

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