BE 2025 Groupe1

From Wiki PeiP systèmes embarqués
Revision as of 16:51, 13 February 2026 by Abelaaro (talk | contribs)
Jump to navigation Jump to search

Proposition d'objet

Après mûres réflexions, nous avons choisi de nous orienter vers la création d'un jeu Simon. Le jeu culte de mémoire dont le but et de réaliser la plus longue série de notes musicales successives.

Carte électronique

Carte réalisée en utilisant le logiciel KiCAD : File:2025 BE G1 kicad.zip.

Schéma électronique de la carte :

Mon schéma électronique

Résultat du routage :

Mon routage

Photo de la carte soudée :

Vidéo très courte et en basse résolution de la carte en fonctionnement :

Media:2025_BE_G1_demo.mp4

Travail effectué

Séance 1 : recherche de sujet

Séance 2 : création du schéma

En nous inspirant des travaux de camarades des années précédentes nous sommes arrivées à réaliser notre schéma électronique, nous avons également compris l'ensemble du matériel dont nous auront besoin.

Principaux composants :

  • 5 Boutons (4 Jeu + RESET)
  • 5 Leds (4 Jeu + Indication fonctionnement)
  • écran Led 8 pins
  • système audio 8 bits
  • microcontrôleur ATmega32U4

Séances 3 à 6 : routage de la carte

Fichier led.c :

#include <avr/io.h>

#define LED 3

#define BOUTON 0

int main(void){ DDRB |= (1 << 4); // Sortie pour la LED

DDRC &= ~(1 << 1); // Entrée pour le bouton

PORTC |= (1 << 1); // Configuration de la résistance de tirage

while(1){

 if(!(PINC & (1 << 1))) PORTB &= ~(1 << 4);      // LED éteinte
 else PORTB |= (1 << 4);                  // LED allumée
 }

}


Ficher makefile : export CC = avr-gcc

export LD = avr-gcc

export MCU = atmega328p

export FCPU = 16000000

export TARGET_ARCH = -mmcu=$(MCU)

export CFLAGS = -Wall -I. -DF_CPU=$(FCPU) -Os

export LDFLAGS = -g $(TARGET_ARCH) -lm -Wl,--gc-sections

TERM = /dev/ttyACM0

PGMERISP = -c stk500v1 -b 115200 -P $(TERM)

export DUDE = /usr/bin/avrdude -F -v -p $(MCU)

TARGET = led

C_SRC = $(wildcard *.c)

OBJS = $(C_SRC:.c=.o)

all: $(TARGET).hex

clean:

rm -f $(TARGET).o $(TARGET).hex $(TARGET).elf

$(TARGET).elf: $(OBJS)

$(LD) $(LDFLAGS) -o $@ $(OBJS)

$(TARGET).hex: $(TARGET).elf

avr-objcopy -j .text -j .data -O ihex $(TARGET).elf $(TARGET).hex

upload: $(TARGET).hex

stty -F $(TERM) hupcl # reset

$(DUDE) $(PGMERISP) -U flash:w:$(TARGET).hex

size: $(TARGET).elf

avr-size --format=avr --mcu=$(MCU) $(TARGET).elf

  1. include <avr/io.h>
  1. define LED 3
  2. define BOUTON 0

int main(void){ DDRB |= (1 << 4); // Sortie pour la LED DDRC &= ~(1 << 1); // Entrée pour le bouton PORTC |= (1 << 1); // Configuration de la résistance de tirage

while(1){

 if(!(PINC & (1 << 1))) PORTB &= ~(1 << 4);      // LED éteinte
 else PORTB |= (1 << 4);                  // LED allumée
 }

}