# 🤖 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é (`ARPE` et `OCxPE`) pour des transitions fluides.



## 📋 Installation

1. Cloner le dépôt : `git clone <url-du-repo>`
2. Ouvrir le projet dans **STM32CubeIDE**.
3. Compiler le projet (Build).
4. Flasher via ST-Link.

## 💡 Utilisation

Pour piloter les roues, utiliser les fonctions d'initialisation puis la commande de vitesse :

```c
// 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*

---