SE3Binome2023-9

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Voiture

1. Objectif du Projet

Le but est de concevoir et développer une mini-voiture autonome en termes d'énergie, optimisée pour une utilisation efficiente de l'énergie, avec une gestion intelligente des mouvements et une signalisation intégrée.



2. Caractéristiques Techniques

a. Alimentation

  • Batterie au Lithium : Utilisation d'une batterie au lithium pour l'alimentation principale, garantissant une autonomie élevée et une recharge efficace.
  • Alimentation Intégrée : Mise en place d'un système d'alimentation intégré sur la carte pour une distribution optimale de l'énergie.

b. Propulsion

  • Moteurs Continus : Deux moteurs continus de petite taille (2 cm) seront utilisés, positionnés au niveau des roues avant.
  • Gestion des Moteurs : Utilisation d'un pont en H pour la réduction des contraintes mécaniques et l'inversion du sens de rotation des roues, favorisant une meilleure gestion de l'espace et du poids.

c. Signalisation

Beta.pdf
  • LED de Surface : Installation de quatre LED de surface, deux à l'avant et deux à l'arrière, pour indiquer le sens de déplacement


3. Contrôle et Programmation

  • Interface de Programmation : L'utilisateur peut programmer le trajet et les comportements de la voiture via un logiciel dédié sur ordinateur, qui communique avec la voiture via USB.
  • Microcontrôleur : Le projet utilisera un microcontrôleur ATmega16u4 , la sélection dépendant de l'espace disponible pour la mémoire flash.




SCHEMA ET COMPOSANTE :

1- Batterie (Lithium)On utilise une batterie au Lithium afin que la voiture fonctionne de manière autonome

Batterie
Batterie
batterie LIPO

2-Microcontrôleur :

on utilise un ATMEGA16U4 :

Screenshot 2024-06-12 215722.png
Microchip-ATMEGA16U4-AU.jpg








3-régulateur et moteur  :

Screenshot 2024-06-12 220955.png
Screenshot 2024-06-12 220513.png


4-port USB :

10-08112019-127049L.gif
Screenshot 2024-06-12 221300.png


PCB :


Screenshot 2024-06-12 221619.png


Screenshot 2024-06-12 223401.png












Programmateur AVR :

Nous allons tester nos LED en codant un simple code permettant de les faire clignoter, nous allons utiliser un programmateur AVR :


#include<avr/io.h>
#include<util/delay.h>

#define LED_PIN PF4


int main(void)
{  
  DDRF |=(1 << LED_PIN);
    while(1)
    {  
        PORTF |= (1 << LED_PIN);
       _delay_ms(1000);
	PORTF &= ~(1 << LED_PIN);
       _delay_ms(1000);
    }
return 0;
}
 


makefile :




export CC = avr-gcc

export MCU = atmega16U4
export TARGET_ARCH = -mmcu=$(MCU)

export CFLAGS =  -Wall -I. -DF_CPU=16000000 -Os #-g
export LDFLAGS = -g $(TARGET_ARCH) -lm -Wl,--gc-sections #	-Os


TARGET = display
TERM = /dev/ttyUSB0
#TERM = /dev/ttyACM0
CPPFLAGS = -mmcu=$(MCU)
PGMER = -c stk500v1 -b 57600 -P $(TERM)
PGMERISP = -c stk500v1 -b 115200 -P $(TERM)
ARVDUDECONF= -C /usr/local/arduino/arduino-0021/hardware/tools/avrdude.conf
export DUDE = /usr/bin/avrdude -F -v -p $(MCU) $(AVRDUDECONF)

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


all: $(TARGET).hex

ass:$(C_SRC)
	$(CC) -S $(CPPFLAGS) $(CFLAGS) $< -o $@

clean:
	rm -f *.o

%.o:%.c
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@


$(TARGET).elf: $(OBJS)
	$(CC) $(LDFLAGS) -o $@ $(OBJS)

$(TARGET).hex: $(TARGET).elf
	avr-objcopy -j .text -j .data -O ihex $(TARGET).elf $(TARGET).hex
	avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex $(TARGET).elf eeprom.hex

upload: $(TARGET).hex
	stty -F $(TERM) hupcl # reset
	$(DUDE) $(PGMER) -U flash:w:$(TARGET).hex
#	$(DUDE) $(PGMERISP) -U flash:w:$(TARGET).hex

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



test LED :