Ligne 1 : |
Ligne 1 : |
| {{Hack-micropython-Robot2Wheel-NAV}} | | {{Hack-micropython-Robot2Wheel-NAV}} |
− |
| |
− | == Bibliothèque r2wheel et hbridge ==
| |
− | Le code permettant de faire fonctionner cette plateforme est disponible sur [https://github.com/mchobby/pyboard-a-roulette GitHub dans le projet PyBoard-a-Roulette].
| |
− |
| |
− | Pour les détails, vous pouvez explorer le dépôt ici: [https://github.com/mchobby/pyboard-a-roulette https://github.com/mchobby/pyboard-a-roulette]
| |
− |
| |
− | === HBridge & DualHBridge ===
| |
− | Le fonctionnement de la plateforme robotique repose sur deux classes de base (bibliothèque [https://github.com/mchobby/pyboard-a-roulette/blob/master/libraries/r2wheel/hbridge.py hbridge.py]):
| |
− | * La classe {{fname|HBridge}} pour le contrôle d'un simple pont-H (donc un moteur dans les deux sens)
| |
− | ** Cette première classe permet de contrôler la marche avant {{fname|forward()}}, arrière {{fname|backward()}} et l'arrêt {{fname|halt()}} d'un moteur.
| |
− | ** Elle permet également de configurer un signal PWM pour contrôler la vitesse d'un moteur entre 0 et 100% (de cycle utile)
| |
− | * La classe {{fname|DualHBridge}} pour le contrôle des deux pont-H du L293D (donc deux moteur dans les deux sens)
| |
− | ** Cette seconde classe prend le contrôle de deux moteurs pour faire avancer {{fname|forward()}}, reculer {{fname|backward()}} et arrêter {{fname|halt()}} les deux moteurs en une seule fois.
| |
− | ** Comme pour {{fname|HBridge}}, il est possible de préciser la vitesse des moteurs (entre 0 et 100%). Si une seule vitesse est précisée alors deux moteurs sont utilise la même vitesse.
| |
− | ** Cerise sur le gâteau, cette classe '''permet de gérer la dérive''' de la plateforme en ralentissant volontairement l'un ou l'autre des moteurs d'un certain pourcentage. Voyez {{fname|DualHBridge.__init__()}}
| |
− |
| |
− | === Robot2Wheel ===
| |
− |
| |
− | La plateforme Robotique 2 Wheel utilise la classe {{fname|Robot2Wheel}} (bibliothèque [https://github.com/mchobby/pyboard-a-roulette/blob/master/libraries/r2wheel/r2wheel.py r2wheel.py].
| |
− |
| |
− | {{fname|Robot2Wheel}} étend la classe {{fname|DualHBridge}} et offre des fonctionnalités supplémentaires bien pratique:
| |
− | * Utilise la définition des broches tel que décrit dans le [[Hack-micropython-Robot2Wheel-Montage|plan de raccordement]]
| |
− | * Permet d'inverser la commande de marche-avant/marche-arrière du moteur 1 / moteur 2 au moment de la création de l'objet avec {{fname|1=reverse_mot1 = True}} / {{fname|1=reverse_mot2 = True}}.<br />Il n'est donc pas nécessaire de modifier votre câblage moteur si l'un des moteurs devait tourner à l'envers lors de l'exécution de {{fname|forward()}}
| |
− | * L'option {{fname|1=fix_rotate = True}} lors de la création de l'objet permet également d'inverser moteur 1 et moteur 2 sur la plateforme sans devoir démonter votre plateforme.<br />Bigrement pratique si votre robot tourne à gauche lorsque vous lui demandez de tourner à droite avec {{fname|turn( Robot2Wheel.RIGHT_ROTATE )}}.
| |
− |
| |
− | Les méthodes héritées de la classe {{fname|DualHBridge}} restent disponibles:
| |
− | * forward( speed = 100, speed_2 = None )<br />Passe les deux moteurs en marche avant (100% de régime). Spécifier une valeur pour {{fname|speed}} entre 0 et 100 pour modifier la vitesse des deux moteurs. Spécifier {{fname|speed_2}} pour avoir une vitesse différente pour le deuxième moteur.
| |
− | * backward( speed = 100, speed_2 = None )<br />Passe les deux moteurs en marche arrière (100% de régime). Spécifier une valeur pour {{fname|speed}} entre 0 et 100 pour modifier la vitesse des deux moteurs. Spécifier {{fname|speed_2}} pour avoir une vitesse différente pour le deuxième moteur.
| |
− | * halt( self )<br />Arrête mes deux moteurs.
| |
− |
| |
− |
| |
− | {{fname|Robot2Wheel}} offre une méthode complémentaire pour permettre au robot de tourner (la façon de tourner est spécifique au nombre de roue du robot ;-) ).
| |
− | * turn( direction, speed=100 )<br />Indique de quel côté et {{fname|speed}} indique la vitesse moteur (0-100%) à laquelle la doit tourner.<br />Voici les différentes valeurs pour {{fname|direction}}:
| |
− | ** DualHBridge.RIGHT_ROTATE - Rotation à droite, sur place.
| |
− | ** DualHBridge.LEFT_ROTATE - Rotation à gauche, sur place.
| |
− | ** DualHBridge.RIGHT_BEND - Rotation en négociant un tournant sur la droite. Speed indique de combien il faut ralentir le moteur (0-100%) droit pour entamer le virage.
| |
− | ** DualHBridge.LEFT_BEND - Rotation en négociant un tournant sur la gauche. Speed indique de combien il faut ralentir le moteur (0-100%) gauche pour entamer le virage.
| |
− |
| |
| == Installer == | | == Installer == |
− | Vous pouvez télécharger la bibliothèque et les codes d'exemple directement depuis le dépôt GitHub du PyBoard-a-roulette | + | Vous pouvez télécharger la bibliothèque et les codes d'exemples directement depuis le dépôt GitHub du PyBoard-a-roulette |
| | | |
| {{download-box|Télécharger PyBoard-a-Roulette.zip|https://github.com/mchobby/pyboard-a-roulette/archive/master.zip}} | | {{download-box|Télécharger PyBoard-a-Roulette.zip|https://github.com/mchobby/pyboard-a-roulette/archive/master.zip}} |
| + | |
| + | Vous aurez besoin d'installer/copier les fichiers sur votre PyBoard: |
| + | * hbridge.py |
| + | * r2wheel.py |
| | | |
| Copiez les fichiers {{fname|hbridge.py}} et {{fname|r2wheel.py}} dans le répertoire racine de votre PyBoard. | | Copiez les fichiers {{fname|hbridge.py}} et {{fname|r2wheel.py}} dans le répertoire racine de votre PyBoard. |
Ligne 187 : |
Ligne 153 : |
| === Corriger la dérive === | | === Corriger la dérive === |
| {{traduction}} | | {{traduction}} |
| + | |
| + | == Bibliothèque r2wheel et hbridge == |
| + | Le code permettant de faire fonctionner cette plateforme est disponible sur [https://github.com/mchobby/pyboard-a-roulette GitHub dans le projet PyBoard-a-Roulette]. |
| + | |
| + | Pour les détails, vous pouvez explorer le dépôt ici: [https://github.com/mchobby/pyboard-a-roulette https://github.com/mchobby/pyboard-a-roulette] |
| + | |
| + | === HBridge & DualHBridge === |
| + | Le fonctionnement de la plateforme robotique repose sur deux classes de base (bibliothèque [https://github.com/mchobby/pyboard-a-roulette/blob/master/libraries/r2wheel/hbridge.py hbridge.py]): |
| + | * La classe {{fname|HBridge}} pour le contrôle d'un simple pont-H (donc un moteur dans les deux sens) |
| + | ** Cette première classe permet de contrôler la marche avant {{fname|forward()}}, arrière {{fname|backward()}} et l'arrêt {{fname|halt()}} d'un moteur. |
| + | ** Elle permet également de configurer un signal PWM pour contrôler la vitesse d'un moteur entre 0 et 100% (de cycle utile) |
| + | * La classe {{fname|DualHBridge}} pour le contrôle des deux pont-H du L293D (donc deux moteur dans les deux sens) |
| + | ** Cette seconde classe prend le contrôle de deux moteurs pour faire avancer {{fname|forward()}}, reculer {{fname|backward()}} et arrêter {{fname|halt()}} les deux moteurs en une seule fois. |
| + | ** Comme pour {{fname|HBridge}}, il est possible de préciser la vitesse des moteurs (entre 0 et 100%). Si une seule vitesse est précisée alors deux moteurs sont utilise la même vitesse. |
| + | ** Cerise sur le gâteau, cette classe '''permet de gérer la dérive''' de la plateforme en ralentissant volontairement l'un ou l'autre des moteurs d'un certain pourcentage. Voyez {{fname|DualHBridge.__init__()}} |
| + | |
| + | === Robot2Wheel === |
| + | |
| + | La plateforme Robotique 2 Wheel utilise la classe {{fname|Robot2Wheel}} (bibliothèque [https://github.com/mchobby/pyboard-a-roulette/blob/master/libraries/r2wheel/r2wheel.py r2wheel.py]. |
| + | |
| + | {{fname|Robot2Wheel}} étend la classe {{fname|DualHBridge}} et offre des fonctionnalités supplémentaires bien pratique: |
| + | * Utilise la définition des broches tel que décrit dans le [[Hack-micropython-Robot2Wheel-Montage|plan de raccordement]] |
| + | * Permet d'inverser la commande de marche-avant/marche-arrière du moteur 1 / moteur 2 au moment de la création de l'objet avec {{fname|1=reverse_mot1 = True}} / {{fname|1=reverse_mot2 = True}}.<br />Il n'est donc pas nécessaire de modifier votre câblage moteur si l'un des moteurs devait tourner à l'envers lors de l'exécution de {{fname|forward()}} |
| + | * L'option {{fname|1=fix_rotate = True}} lors de la création de l'objet permet également d'inverser moteur 1 et moteur 2 sur la plateforme sans devoir démonter votre plateforme.<br />Bigrement pratique si votre robot tourne à gauche lorsque vous lui demandez de tourner à droite avec {{fname|turn( Robot2Wheel.RIGHT_ROTATE )}}. |
| + | |
| + | Les méthodes héritées de la classe {{fname|DualHBridge}} restent disponibles: |
| + | * forward( speed = 100, speed_2 = None )<br />Passe les deux moteurs en marche avant (100% de régime). Spécifier une valeur pour {{fname|speed}} entre 0 et 100 pour modifier la vitesse des deux moteurs. Spécifier {{fname|speed_2}} pour avoir une vitesse différente pour le deuxième moteur. |
| + | * backward( speed = 100, speed_2 = None )<br />Passe les deux moteurs en marche arrière (100% de régime). Spécifier une valeur pour {{fname|speed}} entre 0 et 100 pour modifier la vitesse des deux moteurs. Spécifier {{fname|speed_2}} pour avoir une vitesse différente pour le deuxième moteur. |
| + | * halt( self )<br />Arrête mes deux moteurs. |
| + | |
| + | |
| + | {{fname|Robot2Wheel}} offre une méthode complémentaire pour permettre au robot de tourner (la façon de tourner est spécifique au nombre de roue du robot ;-) ). |
| + | * turn( direction, speed=100 )<br />Indique de quel côté et {{fname|speed}} indique la vitesse moteur (0-100%) à laquelle la doit tourner.<br />Voici les différentes valeurs pour {{fname|direction}}: |
| + | ** DualHBridge.RIGHT_ROTATE - Rotation à droite, sur place. |
| + | ** DualHBridge.LEFT_ROTATE - Rotation à gauche, sur place. |
| + | ** DualHBridge.RIGHT_BEND - Rotation en négociant un tournant sur la droite. Speed indique de combien il faut ralentir le moteur (0-100%) droit pour entamer le virage. |
| + | ** DualHBridge.LEFT_BEND - Rotation en négociant un tournant sur la gauche. Speed indique de combien il faut ralentir le moteur (0-100%) gauche pour entamer le virage. |
| + | |
| | | |
| {{Hack-micropython-Robot2Wheel-TRAILER}} | | {{Hack-micropython-Robot2Wheel-TRAILER}} |