BE 2025 Groupe1
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 :
Résultat du routage :
Photo de la carte soudée :
Vidéo très courte et en basse résolution de la carte en fonctionnement :
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
- 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 }
}