Modifications

Sauter à la navigation Sauter à la recherche
aucun résumé de modification
Ligne 31 : Ligne 31 :  
Petit rappel avec [[MicroPython.brochage.pyboard#Le_brochage|le schéma des broches]], si nous utilisons la sortie X3, nous devons choisir le Timer et Channel approprié pour pouvoir créer un signal PWM.
 
Petit rappel avec [[MicroPython.brochage.pyboard#Le_brochage|le schéma des broches]], si nous utilisons la sortie X3, nous devons choisir le Timer et Channel approprié pour pouvoir créer un signal PWM.
   −
<nowiki>>>> from hbridge import HBridge
+
<syntaxhighlight lang="python">
>>> MOT1_PINS = ( pyb.Pin.board.X6, pyb.Pin.board.X5 )
+
from hbridge import HBridge
>>> MOT1_PWM = {'pin' : pyb.Pin.board.X3, 'timer' : 2, 'channel' : 3 } </nowiki>
+
MOT1_PINS = ( pyb.Pin.board.X6, pyb.Pin.board.X5 )
 +
MOT1_PWM = {'pin' : pyb.Pin.board.X3, 'timer' : 2, 'channel' : 3 }
 +
</syntaxhighlight>
    
Voila, nous avons défini nos broches de commandes dans le tuple {{fname|MOT1_PINS}} et les informations de la broche PWM dans {{fname|MOT1_PWM}} pour le contrôle de la vitesse.
 
Voila, nous avons défini nos broches de commandes dans le tuple {{fname|MOT1_PINS}} et les informations de la broche PWM dans {{fname|MOT1_PWM}} pour le contrôle de la vitesse.
Ligne 39 : Ligne 41 :  
Nous allons pouvoir créer l'objet Pont-H pour le commander.
 
Nous allons pouvoir créer l'objet Pont-H pour le commander.
   −
<nowiki>>>> h = HBridge( MOT1_PINS, MOT1_PWM )</nowiki>
+
<syntaxhighlight lang="python">
 +
h = HBridge( MOT1_PINS, MOT1_PWM )
 +
</syntaxhighlight>
    
Nous allons pouvoir tester les méthodes de base:
 
Nous allons pouvoir tester les méthodes de base:
Ligne 48 : Ligne 52 :  
Laissez un peu de temps entre chacune des commandes pour pouvoir constater les effets sur votre mobile.
 
Laissez un peu de temps entre chacune des commandes pour pouvoir constater les effets sur votre mobile.
   −
<nowiki>>>> h.forward()
+
<syntaxhighlight lang="python">
>>> h.backward()
+
h.forward()
>>> h.halt()</nowiki>
+
h.backward()
 +
h.halt()
 +
</syntaxhighlight>
    
Vous pouvez maintenant tester votre deuxieme pont-H avec les commandes suivantes:
 
Vous pouvez maintenant tester votre deuxieme pont-H avec les commandes suivantes:
<nowiki>>>> MOT2_PINS = ( pyb.Pin.board.X7, pyb.Pin.board.X8 )
+
<syntaxhighlight lang="python">
>>> MOT2_PWM = {'pin' : pyb.Pin.board.X4, 'timer' : 5, 'channel' : 4 }         
+
MOT2_PINS = ( pyb.Pin.board.X7, pyb.Pin.board.X8 )
>>> h2 = HBridge( MOT2_PINS, MOT2_PWM )
+
MOT2_PWM = {'pin' : pyb.Pin.board.X4, 'timer' : 5, 'channel' : 4 }         
>>> h2.forward()
+
h2 = HBridge( MOT2_PINS, MOT2_PWM )
>>> h2.backward()
+
h2.forward()
>>> h2.halt()</nowiki>
+
h2.backward()
 +
h2.halt()
 +
</syntaxhighlight>
    
=== Contrôle de vitesse ===
 
=== Contrôle de vitesse ===
Ligne 71 : Ligne 79 :  
Nous allons donc revoir notre programme de commande du deuxième pont-h pour contrôler la vitesse moteur.
 
Nous allons donc revoir notre programme de commande du deuxième pont-h pour contrôler la vitesse moteur.
   −
<nowiki>>>> from hbridge import HBridge
+
<syntaxhighlight lang="python">
>>> from pyb import delay
+
from hbridge import HBridge
>>> MOT2_PINS = ( pyb.Pin.board.X7, pyb.Pin.board.X8 )
+
from pyb import delay
>>> MOT2_PWM = {'pin' : pyb.Pin.board.X4, 'timer' : 5, 'channel' : 4 }         
+
MOT2_PINS = ( pyb.Pin.board.X7, pyb.Pin.board.X8 )
>>> h2 = HBridge( MOT2_PINS, MOT2_PWM )
+
MOT2_PWM = {'pin' : pyb.Pin.board.X4, 'timer' : 5, 'channel' : 4 }         
>>> for speed in range( 0, 100, 10 ):
+
h2 = HBridge( MOT2_PINS, MOT2_PWM )
>>>     h2.backward( 100-speed )
+
for speed in range( 0, 100, 10 ):
>>>     delay( 1000 )
+
     h2.backward( 100-speed )
>>> h2.halt()</nowiki>
+
     delay( 1000 )
 +
    h2.halt()
 +
</syntaxhighlight>
    
L'instruction {{fname|for speed in range( 0, 100, 10 )}} permet de faire varier la vitesse entre 0 et 100 par pas de 10.
 
L'instruction {{fname|for speed in range( 0, 100, 10 )}} permet de faire varier la vitesse entre 0 et 100 par pas de 10.
Ligne 108 : Ligne 118 :  
Vous l'aurez compris, pour passer la marche arrière, il suffit de...
 
Vous l'aurez compris, pour passer la marche arrière, il suffit de...
   −
<nowiki>>>> r2.backward()</nowiki>
+
<syntaxhighlight lang="python">
 +
r2.backward()
 +
</syntaxhighlight>
    
=== Un moteur tourne dans le mauvais sens! ===  
 
=== Un moteur tourne dans le mauvais sens! ===  
Ligne 119 : Ligne 131 :  
Vous pouvez inverser la commande de l'un OU l'autre OU des deux pont-H durant la création de l'objet Robot2Wheel... voici les différentes syntaxes à votre disposition.
 
Vous pouvez inverser la commande de l'un OU l'autre OU des deux pont-H durant la création de l'objet Robot2Wheel... voici les différentes syntaxes à votre disposition.
   −
<nowiki>r2 = Robot2Wheel( reverse_mot2 = True )
+
<syntaxhighlight lang="python">
 +
r2 = Robot2Wheel( reverse_mot2 = True )
 
r2 = Robot2Wheel( reverse_mot1 = True )
 
r2 = Robot2Wheel( reverse_mot1 = True )
r2 = Robot2Wheel( reverse_mot1 = True, reverse_mot2 = True )</nowiki>
+
r2 = Robot2Wheel( reverse_mot1 = True, reverse_mot2 = True )
 +
</syntaxhighlight>
    
Dans le cadre de mes tests, j'ai utilisé {{fname|1=r2 = Robot2Wheel( reverse_mot2 = True )}} pour corriger la rotation de l'un de mes moteurs.
 
Dans le cadre de mes tests, j'ai utilisé {{fname|1=r2 = Robot2Wheel( reverse_mot2 = True )}} pour corriger la rotation de l'un de mes moteurs.
Ligne 130 : Ligne 144 :  
Nous allons commencer simplement, nous allons faire tourner la plateforme 2 roues sur place... en faisant tourner un moteur dans un sens et l'autre dans l'autre sens.
 
Nous allons commencer simplement, nous allons faire tourner la plateforme 2 roues sur place... en faisant tourner un moteur dans un sens et l'autre dans l'autre sens.
   −
<nowiki>>>> r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
+
<syntaxhighlight lang="python">
>>> r2.turn( Robot2Wheel.RIGHT_ROTATE )
+
r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
>>> r2.halt()</nowiki>
+
r2.turn( Robot2Wheel.RIGHT_ROTATE )
 +
r2.halt()
 +
</syntaxhighlight>
    
Vous pouvez également indiquer une vitesse moteur durant la rotation.
 
Vous pouvez également indiquer une vitesse moteur durant la rotation.
 
+
<syntaxhighlight lang="python">
<nowiki>>>> r2.turn( Robot2Wheel.RIGHT_ROTATE, speed=60 )</nowiki>
+
r2.turn( Robot2Wheel.RIGHT_ROTATE, speed=60 )
 +
</syntaxhightlight>
    
=== La plateforme tourne dans le mauvais sens! ===
 
=== La plateforme tourne dans le mauvais sens! ===
Ligne 150 : Ligne 167 :  
Nous avons prévu un paramètre supplémentaire lors de la création de Robot2Wheel pour échanger le moteur1 et moteur2 de façon logiciel.
 
Nous avons prévu un paramètre supplémentaire lors de la création de Robot2Wheel pour échanger le moteur1 et moteur2 de façon logiciel.
   −
<nowiki>>>> r2 = Robot2Wheel( fix_rotate = True )</nowiki>  
+
<syntaxhighlight lang="python">
 +
r2 = Robot2Wheel( fix_rotate = True )
 +
</syntaxhighlight>
    
Après cela, la plateforme tournera dans le bon sens.
 
Après cela, la plateforme tournera dans le bon sens.
Ligne 170 : Ligne 189 :  
Comme pour la marche avant/arrière, vous avez la possibilité d'indiquer une vitesse (par défaut c'est 100%).
 
Comme pour la marche avant/arrière, vous avez la possibilité d'indiquer une vitesse (par défaut c'est 100%).
   −
<nowiki>>>> from r2wheel import Robot2Wheel
+
<syntaxhighlight lang="python">
>>> from pyb import delay
+
from r2wheel import Robot2Wheel
>>> r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
+
from pyb import delay
>>> r2.turn( Robot2Wheel.RIGHT_ROTATE )
+
r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
>>> delay( 1500 ) # pendant 1.5 secondes
+
r2.turn( Robot2Wheel.RIGHT_ROTATE )
>>> r2.forward()
+
delay( 1500 ) # pendant 1.5 secondes
>>> delay( 5000 )
+
r2.forward()
>>> r2.turn( Robot2Wheel.LEFT_ROTATE, speed=80 )
+
delay( 5000 )
>>> r2.forward()
+
r2.turn( Robot2Wheel.LEFT_ROTATE, speed=80 )
>>> delay( 5000 )
+
r2.forward()
>>> r2.halt()</nowiki>
+
delay( 5000 )
 +
r2.halt()
 +
</syntaxhighlight>
    
Vous pourriez obtenir le même résultat avec les méthodes {{fname|right()}} et {{fname|left()}}.
 
Vous pourriez obtenir le même résultat avec les méthodes {{fname|right()}} et {{fname|left()}}.
   −
<nowiki>>>> from r2wheel import Robot2Wheel
+
<syntaxhighlight lang="python">
>>> from pyb import delay
+
from r2wheel import Robot2Wheel
>>> r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
+
from pyb import delay
>>> r2.right()
+
r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
>>> delay( 1500 ) # pendant 1.5 secondes
+
r2.right()
>>> r2.forward()
+
delay( 1500 ) # pendant 1.5 secondes
>>> delay( 5000 )
+
r2.forward()
>>> r2.left( speed=80 )
+
delay( 5000 )
>>> r2.forward()
+
r2.left( speed=80 )
>>> delay( 5000 )
+
r2.forward()
>>> r2.halt()</nowiki>
+
delay( 5000 )
 +
r2.halt()
 +
</syntaxhighlight>
    
=== Les virages ===
 
=== Les virages ===
Ligne 211 : Ligne 234 :  
Lorsqu'il n'y a qu'un seul paramètre de vitesse, ce paramètre {{fname|speed}} mentionne la différence de vitesse entre les deux moteurs.
 
Lorsqu'il n'y a qu'un seul paramètre de vitesse, ce paramètre {{fname|speed}} mentionne la différence de vitesse entre les deux moteurs.
   −
<nowiki>>>> from r2wheel import Robot2Wheel
+
<syntaxhighlight lang="python">
>>> from pyb import delay
+
from r2wheel import Robot2Wheel
>>> r2 = Robot2Wheel()
+
from pyb import delay
>>> r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
+
r2 = Robot2Wheel()
>>> r2.turn(Robot2Wheel.RIGHT_BEND, speed=40)
+
r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
>>> delay( 15000 )
+
r2.turn(Robot2Wheel.RIGHT_BEND, speed=40)
>>> r2.forward()
+
delay( 15000 )
>>> delay( 5000 )
+
r2.forward()
>>> r2.halt()</nowiki>
+
delay( 5000 )
 +
r2.halt()
 +
</syntaxhighlight>
    
Il est également possible de contrôler la vitesse du mobile durant un virage en précisant 2 vitesses. Lorsqu'il y a deux vitesses mentionnées: la vitesse globale du mobile est précisée avec {{fname|speed}}, puis la différence de vitesse entre les deux moteurs dans {{fname|speed2}}.
 
Il est également possible de contrôler la vitesse du mobile durant un virage en précisant 2 vitesses. Lorsqu'il y a deux vitesses mentionnées: la vitesse globale du mobile est précisée avec {{fname|speed}}, puis la différence de vitesse entre les deux moteurs dans {{fname|speed2}}.
   −
<nowiki>>>> from r2wheel import Robot2Wheel
+
<syntaxhighlight lang="python">
>>> from pyb import delay
+
from r2wheel import Robot2Wheel
>>> r2 = Robot2Wheel()
+
from pyb import delay
>>> r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
+
r2 = Robot2Wheel()
>>> r2.turn(Robot2Wheel.LEFT_BEND, speed=70, speed2=40)
+
r2 = Robot2Wheel( reverse_mot2 = True ) # inverser la commande du moteur moteur
>>> delay( 15000 )
+
r2.turn(Robot2Wheel.LEFT_BEND, speed=70, speed2=40)
>>> r2.forward()
+
delay( 15000 )
>>> delay( 5000 )
+
r2.forward()
>>> r2.halt()</nowiki>
+
delay( 5000 )
 +
r2.halt()
 +
</syntaxhighlight>
    
Dans l'exemple ci-dessus, nous tournons à gauche avec une vitesse globale du mobile de 70% et une différence de vitesse de 40%. Le moteur droit fonctionne donc à 70% et le moteur gauche à 70%-40%, soit 30%.
 
Dans l'exemple ci-dessus, nous tournons à gauche avec une vitesse globale du mobile de 70% et une différence de vitesse de 40%. Le moteur droit fonctionne donc à 70% et le moteur gauche à 70%-40%, soit 30%.
Ligne 263 : Ligne 290 :  
Voici deux exemple avec corrige de dérive, l'un appliquée sur un moteur... et l'autre sur l'autre moteur:
 
Voici deux exemple avec corrige de dérive, l'un appliquée sur un moteur... et l'autre sur l'autre moteur:
   −
<nowiki>>>> robot = Robot2Wheel( reverse_mot2 = True, derivative_fix = 5 )
+
<syntaxhighlight lang="python">
>>> robot.forward()
+
robot = Robot2Wheel( reverse_mot2 = True, derivative_fix = 5 )
>>> delay( 15000 )
+
robot.forward()
>>> robot.halt()</nowiki>
+
delay( 15000 )
 +
robot.halt()
 +
</syntaxhighlight>
   −
<nowiki>>>> robot = Robot2Wheel( reverse_mot2 = True, derivative_fix = -3 )
+
<syntaxhighlight lang="python">
>>> robot.forward()
+
robot = Robot2Wheel( reverse_mot2 = True, derivative_fix = -3 )
>>> delay( 15000 )
+
robot.forward()
>>> robot.halt()</nowiki>
+
delay( 15000 )
 +
robot.halt()
 +
</syntaxhighlight>
    
==== D'autres options ====
 
==== D'autres options ====
704

modifications

Menu de navigation