🤖 Projet voiture_Keyestudio_4WS_STM32Version
Ce projet consiste à piloter un robot mobile à 2 roues motrices piloté par un microcontrôleur STM32F446RE. Le projet est structuré pour permettre un contrôle précis de la vitesse (PWM) et de la direction des moteurs via un pont en H (DRV8833).
🚀 Fonctionnalités
- Contrôle individuel des deux moteurs (Roue Droite / Roue Gauche).
- Gestion de la vitesse par modulation de largeur d'impulsion (PWM à 50 kHz).
- Gestion du sens de rotation (Avance/Recul) via GPIOs.
- Architecture basée sur l'utilisation des Timers matériels (TIM1, TIM2, TIM3).
⚙️ Pinout (Brochage)
Le câblage ci-dessous correspond à la configuration logicielle actuelle :
Moteurs et Driver (DRV8833)
| Fonction | Pin STM32 | Timer/Channel | Rôle |
|---|---|---|---|
| Roue Droite (Vitesse) | PB5 | TIM3_CH2 | PWM Speed |
| Roue Droite (Sens) | PB10 | GPIO | Direction |
| Roue Gauche (Vitesse) | PB4 | TIM3_CH1 | PWM Speed |
| Roue Gauche (Sens) | PA10 | GPIO | Direction |
Note : Les signaux PWM sont générés avec une fréquence de 50 kHz pour garantir un fonctionnement silencieux et fluide.
🛠 Configuration Technique
- Horloge Système : 180 MHz.
- Timer Configuration :
PSC(Prescaler) : 35.ARR(Auto-reload) : 99 (Résolution de 100 pas).Mode: PWM Mode 1.Preload: Activé (ARPEetOCxPE) pour des transitions fluides.
📋 Installation
- Cloner le dépôt :
git clone <url-du-repo> - Ouvrir le projet dans STM32CubeIDE.
- Compiler le projet (Build).
- Flasher via ST-Link.
💡 Utilisation
Pour piloter les roues, utiliser les fonctions d'initialisation puis la commande de vitesse :
// Exemple pour la roue droite
init_Timer_RoueDroit();
set_RoueDroit_Vitesse(50); // PWM à 50%
🛠 TODO / Prochaines étapes
- Implémenter la rampe d'accélération logicielle.
- Intégrer les capteurs de proximité (Ultrasons).
- Mettre en place une boucle de contrôle asservie (PID).
Développé dans le cadre du cursus Ingénieur à l'INSA Rennes (2026), pour de l'apprentisage autonome
Description
Languages
C
99.3%
Assembly
0.7%