diff --git a/README.md b/README.md index 752c71c..f523028 100644 --- a/README.md +++ b/README.md @@ -1 +1,140 @@ -# Code a trous vous allez voir c'est cool :D \ No newline at end of file +# TP Tests Unitaires – Moteur DC & Capteur HC-SR04 + +Niveau : débutant – MicroPython – ESP32 + +## Objectifs du TP + +Comprendre ce qu’est un test unitaire. + +Apprendre à séparer la logique du programme du pilotage matériel. + +Créer une fonction simple représentant la logique d’un moteur DC ou d’un capteur ultrason. + +Écrire des tests unitaires avec assert en MicroPython. + +## TP1 — Tests unitaires d’un moteur DC +### Contexte + +Un moteur DC piloté via un pont en H utilise : + +deux signaux logiques in1, in2 pour choisir le sens, + +un signal PWM pour la vitesse. + +Dans ce TP, vous n’allez pas piloter un vrai moteur. +Vous allez tester la logique qui décide des valeurs à envoyer. + +### Énoncé + +Vous devez écrire une fonction : + +calcul_signaux_moteur(vitesse_pourcent, pwm_max=1023) + + +Elle reçoit une vitesse en pourcentage, entre -100 et +100, et doit retourner un dictionnaire contenant : + +{ + "in1": ..., + "in2": ..., + "pwm": ... +} + +La logique à implémenter : +[img logique]( img/image.png ) + +#### Calcul du PWM : + +pwm = pwm_max * (abs(vitesse) / 100) + +Exemple (si pwm_max = 1000) : + +vitesse = 50 → pwm = 500 + +vitesse = -100 → pwm = 1000 + +vitesse = 200 → pwm = 1000 (clamp) + +## Vous devez faire : + +Compléter le fichier : +logique_moteur_eleve.py +(qui contient des zones ____ à remplir) + +Puis compléter les tests dans : +test_logique_moteur_eleve.py + +Les tests vérifieront automatiquement : + +l’arrêt, + +la marche avant, + +la marche arrière, + +le PWM proportionnel, + +la saturation des valeurs extrêmes. + +## TP2 — Tests unitaires du capteur HC-SR04 +### Contexte + +Le HC-SR04 mesure une distance grâce à l’écho d’un ultrason. + +Il renvoie un temps d’écho (en microsecondes), et la distance se calcule via : + +distance_cm = (temps_echo_microsecondes × 0.0343) / 2 + + +Dans ce TP, vous n’allez pas utiliser de vrai capteur. +Vous allez tester la fonction de calcul seulement. + +### Énoncé + +Vous devez écrire une fonction : + +calcul_distance_cm(temps_echo_us) + + +Elle doit : + +1. Retourner None si : + +temps_echo_us est None + +ou ≤ 0 + +2. Sinon : + +convertir les microsecondes en secondes + +appliquer le calcul de distance + +retourner la distance en centimètres (float) + +Aides : + +1 seconde = 1 000 000 microsecondes + +vitesse du son = 343 m/s = 34300 cm/s + +Exemple : + +1000 µs → environ 17.15 cm + +3000 µs → environ 51.45 cm + +## Vous devez faire : + +Compléter le fichier : +logique_hcsr04_eleve.py + +Compléter les tests dans : +test_logique_hcsr04_eleve.py + +Les tests vérifieront : + +les entrées invalides, + +les distances calculées, + +la cohérence des valeurs retournées. \ No newline at end of file