« I2L 2022 Groupe1 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 49 : Ligne 49 :
{| class="wikitable"
{| class="wikitable"
|+
|+
! rowspan="5" |cables
! rowspan="7" |cables
! colspan="3" |
! colspan="6" |
|-
|-
|PB7 = 7
| colspan="2" |'''ligne 1'''
|PB5 = 8
| colspan="2" |'''ligne 2'''
|PB3 = 9
| colspan="2" |'''ligne 3'''
|-
|-
|PB6 = 4
|port
|PB4 = 5
|touche
|PB2 = 6
|port
|touche
|port
|touche
|-
|-
|PD4 = 1
|PB7
|PD6 = 2
|7
|PB1 = 3
|PB5
|8
|PB3
|9
|-
|-
|PD3 = verrou num
|PB6
|PD5 = 0
|4
|PB0 = .
|PB4
|5
|PB2
|6
|-
|PD4
|1
|PD6
|2
|PB1
|3
|-
|PD3
|verrou num
|PD5
|0
|PB0  
|.
|}
|}


Ligne 82 : Ligne 105 :
!bit
!bit
|-
|-
|1
|led 1
|PD0
|PD0
|rouge
|rouge
Ligne 88 : Ligne 111 :
|0x01
|0x01
|-
|-
|2
|led 2
|PD1
|PD1
|bleu
|bleu
Ligne 94 : Ligne 117 :
|
|
|-
|-
|3
|led 3
|PD2
|PD2
|vert
|vert

Version du 25 mai 2023 à 09:39

Proposition de système

Créer un pad numérique avec 12 touches, les chiffres (de 0 à 9), le point, la touche verrou numérique et trois led (rouge, bleu, vert).

La touche "verrou numérique" permet d'avoir une double signification des touches (numérique/flèches de direction), avec une LED de contrôle de l'activation du verrou.

Contre-proposition

Pas de souci sur le principe. Mais étant donné que le code pour votre carte est le plus simple à réaliser vous devez ajouter une fonctionnalité supplémentaire.

Je vous propose les difficultés suivantes :

  • une touche "verrou numérique" qui permet d'avoir une double signification des touches (numérique/flèches de direction), avec une LED de contrôle de l'activation du verrou
  • un jeu en mode autonome (quand le périphérique est alimenté sans être connecté à un bus USB), par exemple un mini-simon avec les 3 LED associées aux touches 1,2 et

Programmes

  • Prog SE
    • LED
    • Boutons
  • Prog USB
    • LUFA

Compilation

Utilitaires

https://winavr.sourceforge.net/

https://github.com/mariusgreuel/avrdude/releases

  • gcc-avr
  • avr-libc
  • dfu-programmer
    • DFU/USB

Compilation par ligne de commande:

compilation : avr-gcc -mmcu=atmega328p -DF_CPU=8000000UL -c -Wall -I. -Os timer.c -o timer.o (8000000 au lieu de 16000000)

  • fichier .c → fichier .o

édition des liens : avr-gcc -mmcu=atmega328p -g -lm -Wl,--gc-sections -o timer.elf timer.o (.elf exécutable)

  • fichier .c → fichier .elf

téléversement : avr-objcopy -j .text -j .data -O ihex timer.elf timer.hex

  • fichier .elf → fichier .hex

commade des dfu programmer : avrdude -F -v -p atmega328p -c stk500v1 -b 115200 -P /dev/ttyACM0 -U flash:w:timer.hex

Tableau des touches

cables
ligne 1 ligne 2 ligne 3
port touche port touche port touche
PB7 7 PB5 8 PB3 9
PB6 4 PB4 5 PB2 6
PD4 1 PD6 2 PB1 3
PD3 verrou num PD5 0 PB0 .

Tableau des leds

port led touches bit
led 1 PD0 rouge chiffres ou flèches 0x01
led 2 PD1 bleu verrou num
led 3 PD2 vert

Fichiers

Fichier:I2L-2022-CARUYER-MONBORREN.zip