BE 2025 Groupe1: Difference between revisions
No edit summary |
No edit summary |
||
| Line 38: | Line 38: | ||
=== Séances 3 à 6 : routage de la carte === | === 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 | |||
Revision as of 16:46, 13 February 2026
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