I2L 2022 Groupe1

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

Proposition de système

Notre proposition :

  • 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).

Les propositions acceptées :

  • 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.
  • Un mini-simon est disponible en mode autonome, trois leds (rouge, bleu et vert) associées aux touches 1, 2 et 3.

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 3.

Programmes

Programme version 1 :

Programme version finale :

Prog USB

  • LUFA

Schéma, présentation du système embarqué

Schéma du système embarqué sur Kicad :

Schéma
Carte

Carte soudée :

Carte soudée.jpg


Vidéo du simon:

Problèmes rencontrés

Nous avons tout d'abord rencontré un problème sur la difficulté du projet, en effet par rapport à d'autre groupe, l'idée d'un clavier numérique de 12 touches étaient trop "simple".

Nous avons donc accepté la contre proposition émise.

Ensuite le problème que nous avons rencontré a été de distinguer la mode clavier du mode simon. Dans la première version du code le simon ce lance lorsque on le connecte au pc et ensuite il passe en mode clavier.

Ce problème est résolu dans la version finale.

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

commande dfu-programmer :

dfu-programmer atmega16u2 erase
dfu-programmer atmega16u2 flash timer.hex
dfu-programmer atmega16u2 reset

Tableau des touches

cables
colonne 1 colonne 2 colonne 3
port touche port touche port touche
PB7 7 PB5 8 / flèche vers le haut PB3 9
PB6 4 / flèche vers la gauche PB4 5 PB2 6 / flèche vers la droite
PD4 1 PD6 2 / flèche vers le bas PB1 3
PD3 verrou num PD5 0 PB0 . / ;
Clavier.jpg

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
Leds.jpg

Fichiers

Projet KiCAD : Fichier:I2L-2022-CARUYER-MONBORREN.zip.

Programme C : Fichier:I2L-2022-G1-programme.zip.

Programme V1: Fichier:Projet SystemeEmbarque-LUFA V1.zip .

Programme version finale: