@@ -1,35 +0,0 @@
|
||||
def calc_signal_moteur(vitesse_pourcent, pwm_max=1023):
|
||||
|
||||
# 1) On limite la valeur entre -100 et 100
|
||||
if vitesse_pourcent > 100:
|
||||
vitesse_pourcent = 100
|
||||
if vitesse_pourcent < -100:
|
||||
vitesse_pourcent = -100
|
||||
|
||||
# 2) Cas arrêt
|
||||
if vitesse_pourcent == 0:
|
||||
return {
|
||||
"in1": 0,
|
||||
"in2": 0,
|
||||
"pwm": 0
|
||||
}
|
||||
|
||||
# 3) Détermination du sens
|
||||
if vitesse_pourcent > 0:
|
||||
in1 = 1 # avant
|
||||
in2 = 0
|
||||
amplitude = vitesse_pourcent
|
||||
else:
|
||||
in1 = 0 # arrière
|
||||
in2 = 1
|
||||
amplitude = -vitesse_pourcent # valeur positive
|
||||
|
||||
# 4) Conversion pourcentage -> PWM
|
||||
pwm = int(pwm_max * (amplitude / 100))
|
||||
|
||||
# 5) On renvoie les signaux à appliquer
|
||||
return {
|
||||
"in1": in1,
|
||||
"in2": in2,
|
||||
"pwm": pwm
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
from logique_moteurDC import calc_signal_moteur
|
||||
|
||||
def lancer_tests():
|
||||
# On prend un pwm_max simple pour vérifier : 1000
|
||||
pwm_max = 1000
|
||||
|
||||
# Test 1 : arrêt
|
||||
sortie = calc_signal_moteur(0, pwm_max)
|
||||
assert sortie["in1"] == 0 and sortie["in2"] == 0 and sortie["pwm"] == 0, \
|
||||
"Test arrêt : échec"
|
||||
|
||||
# Test 2 : 100% avant
|
||||
sortie = calc_signal_moteur(100, pwm_max)
|
||||
assert sortie["in1"] == 1 and sortie["in2"] == 0, \
|
||||
"Test avant (sens) : échec"
|
||||
assert sortie["pwm"] == 1000, \
|
||||
"Test avant (PWM) : échec"
|
||||
|
||||
# Test 3 : 100% arrière
|
||||
sortie = calc_signal_moteur(-100, pwm_max)
|
||||
assert sortie["in1"] == 0 and sortie["in2"] == 1, \
|
||||
"Test arrière (sens) : échec"
|
||||
assert sortie["pwm"] == 1000, \
|
||||
"Test arrière (PWM) : échec"
|
||||
|
||||
# Test 4 : valeur > 100 -> doit être clampée
|
||||
sortie = calc_signal_moteur(150, pwm_max)
|
||||
assert sortie["pwm"] == 1000, \
|
||||
"Test clamp >100 : échec"
|
||||
|
||||
# Test 5 : valeur < -100 -> doit être clampée
|
||||
sortie = calc_signal_moteur(-200, pwm_max)
|
||||
assert sortie["pwm"] == 1000 and sortie["in2"] == 1, \
|
||||
"Test clamp <-100 : échec"
|
||||
|
||||
# Test 6 : vitesse intermédiaire 50% avant
|
||||
sortie = calc_signal_moteur(50, pwm_max)
|
||||
assert sortie["in1"] == 1 and sortie["in2"] == 0, \
|
||||
"Test 50% avant (sens) : échec"
|
||||
assert sortie["pwm"] == 500, \
|
||||
"Test 50% avant (PWM) : échec"
|
||||
|
||||
print("Tous les tests unitaires du moteur sont PASSE !")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
lancer_tests()
|
||||
Reference in New Issue
Block a user