Files
ModulX_BaseRoulante/README.md
2025-12-03 01:57:57 +01:00

139 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TP Tests Unitaires Moteur DC & Capteur HC-SR04
Niveau : débutant MicroPython ESP32
## Objectifs du TP
Comprendre ce quest un test unitaire.
Apprendre à séparer la logique du programme du pilotage matériel.
Créer une fonction simple représentant la logique dun moteur DC ou dun capteur ultrason.
Écrire des tests unitaires avec assert en MicroPython.
## TP1 — Tests unitaires dun 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 nallez 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 :
larrê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 dun 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 nallez 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.