Adafruit Motor Shield V2-Moteur Stepper

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Brancher un moteur pas-à-pas

Motor Shield V2-Logiciel-10.jpg

Les moteurs pas-à-pas sont vraiment géniaux pour un contrôle semi-précis, parfait pour de nombreux robots et projets CNC. Le shield adafruit supporte jusqu'à deux moteurs pas-à-pas. La bibliothèque fonctionne de façon identique avec les moteurs bipolaires et unipolaire.

Pour les moteurs unipolaires

Pour connecter un moteur unipolaire, vous devez identifier quel fils appartient à quel bobine.

Si votre moteur à 4 fils alors il n'a pas de contact commun entre les bobines... il se monte comme sur l'image.

Si vous avez un moteur avec 5-fils alors il y a un fils commun pour le centre des deux bobines. Il y a de nombreux tutoriels pour identifier les bobines et fils des moteur pas-à-pas... nous vous proposons ce tutoriel d'Adafruit (anglais).

Si vous avez un moteur 6-fils, alors le centre de chacune des deux deux bobines est repris sur un fils distinct.

Le centre des bobines (5 fils) doit être connecté sur la borne GND (masse) du shield moteur. Si vous avez un connecteur 6-fils alors les centres des deux bobines doivent être connectés ensembles sur la broche GND.

Ensuite:

  • La bobine 1 doit être connectés sur un port moteur (disons M1, ou M3)
  • La bobine 2 doit être connectées sur l'autre port moteur correspondant (disons M2, ou M4).

pour les moteurs bipolaires

For bipolar motors: its just like unipolar motors except theres no 5th wire to connect to ground. The code is exactly the same.

Running a stepper is a little more intricate than running a DC motor but its still very easy

Programmation

Inclure la bibliothèque

Assurez-vous d'avoir inclus les bibliothèques nécessaires à l'aide de l'instruction #include

#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"

Créer un objet Adafruit_MotorShield

Adafruit_MotorShield AFMS = Adafruit_MotorShield();

Créer un objet "moteur pas-à-pas"

Demander la création d'un objet Stepper (littéralement pas-à-pas) à Adafruit_MotorShield:

Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 2);

Utiliser la fonction getStepper(steps, stepper#) où:

  • steps: (nbre de pas) indique le nombre de pas par révolution du moeur. Un moteur à 7.5degrés/pas à donc 360°/7.5° = 48 pas. La moteurs pas-à-pas ont souvent 200 pas.
  • Stepper#: indique sur quel port le moteur pas-à-pas est connecté. Si vous utilisez le bornier M1 + M2, c'est le port 1. Si vous utilisez le bornier M3 + M4, c'est lle port 2

Initialiser la vitesse par défaut

Initialiser la vitesse du moteur en utilisant la fonction setSpeed(rpm) ou rpm représente le nombre de rotation par minutes à laquelle le moteur doit tourner.

Faire fonctionner le moteur

Ensuite, vous appelez la fonction step(#steps, direction, step_type) à chaque fois que le moteur doit se mouvoir.

  • #steps': est le nombre de pas dont le moteur doit se déplacer.
  • direction: est le sens de rotation FORWARD (avant) ou BACKWARD (arrière)
  • step_type: est le type de pas à utiliser SINGLE (simple), DOUBLE (double), INTERLEAVE (intermédiaire) ou MICROSTEP (microstepping).

Type de pas:

  • "Single": Signifiant "unique/seul" en français. Activation d'une seule bobine moteur
  • "Double": indique que 2 bobines sont alimentés en une fois (pour plus de couple)
  • "Interleave": Signifiant "entrelacer" indique qu'il y a alternance entre l'activation "Single" et "Double" pour doubler la résolution (mais bien entendu avec la moitier de la vitesse).
  • "Microstepping": Est une méthode où les bobines sont commandés avec un signal PWM permettant ainsi de créer un mouvement fluide entre les pas.

Il existe une masse d'information colossale concernant les pros et cons des différentes méthodes de stepping (voyez la page des ressources).

Vous pouvez utiliser la méthode de stepping de votre choix... et même la changer au vol en fonction de votre besoin (minimum de puissance, plus de couple ou plus de précision).

Par défaut, le moteur maintient sa position après le déplacement. Appelez la fonction release() si vous voulez désactiver (release) toutes les bobines, de façon à pouvoir bouger librement l'axe.

Les commandes de stepping/mouvement sont 'bloquantes' et rendent la main au programme une fois tous les pas terminés.

Etant donné que les commandes de stepping/mouvement sont bloquantes, vous devez envoyer des instructions aux moteurs chaque fois que vous voulez qu'ils bougent. Si vous voulez en apprendre plus sur le traitement en tâches de fond (background) des moteurs pas-à-pas, vous pouvez consulter la bibliothèque AccelStepper disponible sur le GitHub d'AdaFruit. L'installation de la bibliothèque AccelStepper est très similaire à celle de Adafruit_MotorShield. AccelStepper dispose de quelques exemples pour contrôler 3 moteurs pas-à-pas simultanément avec des variations d'accélération.


Source: Adafruit Motor Shield V2 for Arduino créé par LadyAda pour AdaFruit Industries. Crédit [www.adafruit.com AdaFruit Industries]

Traduit par Meurisse D. pour MCHobby.be

Nos remerciements à Mr Pierre M. pour ses suggestions de correction.

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.