2.6 KiB
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
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 :
- Retourner None si :
temps_echo_us est None
ou ≤ 0
- 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.