FabScan-StepStick-Shield-Utiliser

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.

Les emplacements

Il est possible de placer 4 stepsticks sur ce shield... de quoi commander 4 moteurs pas-à-pas.

Voici la correspondance step-stick et connecteur pour le moteur.

FabScan-StepStick-Shield-Use-02.jpg

Placer les stepsticks

Voici comment placer les stepstick A4988 sur le shield.

Notez la position des micro-potentiomètres (le petit rond) pour vous aider a détecter l'orientation.

FabScan-StepStick-Shield-Use-01.jpg

Alimentation

Alimenter la logique de contrôle

Le pilote (stepstick) requière une tension d'alimentation entre 3 et 5.5 V pour le fonctionnement de la logique.

Cette alimentation est fournie par le régulateur de tension de votre carte Arduino. Le FabScan / StepStick shield utilise la broche +5V

Alimentation moteur

La tension d'alimentation moteur est comprise entre 8 et 35 V pour le stepstick. Parmi les différentes options disponibles, souvenez vous que le régulateur de tension de votre Arduino supporte au maximum 19V.

La tension la plus courante pour des moteurs pas-à-pas 12V / 200 pas c'est 12 volts.

Cette source d'alimentation peut être obtenue par deux biais différents:

Via le connecteur Jack Arduino

L'alimentation moteur peut provenir du connecteur JACK de la carte Arduino sur lequel vous aurez brancher une alimentation 12V.

Dans ce cas, le FabScan / StepStick shield prend sa source d'alimentation sur la broche Vin de votre Arduino (directement connectée sur la fiche jack)

Avantage non négligeable, cette source d'alimentation servira aussi à alimenter votre Arduino par l'intermédiaire du régulateur de tension +5V.

Dans ce cas, le cavalier "Vmot-Vin" doit être ponté sur la FabScan /StepStick Shield (ce qui est le cas par défaut).

Alimentations séparées

Les moteurs sont une source important de parasites pouvant fortement perturber votre Arduino. Si ce dernier se comporte de façon inattendu, c'est soit un problème des parasites, soit un problème de mémoire.

Il est donc recommandé (et préférable) d'utiliser des sources alimentations séparées pour la logique et pour les moteurs.

Pour commencer, vous devez rompre cavalier "Vmot-Vin" sur le shield. Vous pouvez ensuite connecter une alimentation séparée sur le bornier Power du FabScan / StepStick shield.

le bornier Power comporte les points de connexion suivants:

  • VMot: borne positive de votre alimentation
  • GND: la masse/GND de votre alimentation

Ne jamais arracher l'alimentation!

Brochage

Voici les différentes informations permettant de contrôler les StepStick depuis votre Arduino.

Commençons par le diagramme que nous avons volontairement simplifié. Il est possible de commander des Servo moteurs, Laser, etc dans le cadre du projet FabScan (voir ressource). Le diagramme complet est disponible ici

FabScan-StepStick-Shield-Diag.jpg

Configuration du Stepping

Vous pouvez modifier la configuration du microstepping à la volée grâce à la broche Analogique A5 qui doit être pilotée en mode digitale (pin 19).

Il est préférable d'altérer cette configuration lorsque tous les StepSticks sont désactivés... en effet, cette modification de configuration stepping est effective pour TOUS les stepsticks.

  • Pin 19 = LOW - Les stepstick sont configuré en Full Step. Une impulsion step correspond à 1 pas entier sur le moteur.
  • Pin 19 = HIGH - Les stepstick sont configuré en 1/16 pas. Une impulsion step correspond à 1/16 pas sur le moteur. Il faut 16 impulsions step pour avancer le moteur d'un pas réel sur le moteur.

Raccordement des différents StepStick

Vous trouverez de nombreux détails concernant le StepStick A4988 dans le tutoriel qui lui est dédié.

StepStick 1

Repéré par la lettre A sur le diagramme :-)

Signal StepStick Broche Arduino Correspondante Description/Fonctionnalité
Enable Pin 2 Active / Désactive le module StepStick.
  • HIGH - Module désactivé. Tous les autres signaux sont ignorés.
  • LOW - Le module est activé... le moteur est maintenu avec un couple de maintien et les autres signaux sont tenu en compte.
DIR Pin 4 Permet d'indiquer la direction de rotation du moteur. Etat Haut=High pour tourner dans un sens, Etat bas=Low pour tourner dans l'autre sens.
STEP Pin 3 (PWM) Envoyer un signal d'horloge (Niveau Haut puis Niveau bas, High puis Low) pour avancer le moteur d'un pas (en fonction de la configuration Full Step/micro-stepping.
MS1..MS3 Pin 19 (A5) Permet de configurer le mode Full Step ou 1/16 de pas. Voyez la description ci-dessus.

StepStick 2

Repéré par la lettre B sur le diagramme :-)

Signal StepStick Broche Arduino Correspondante Description/Fonctionnalité
Enable Pin 5 Active / Désactive le module StepStick.
  • HIGH - Module désactivé. Tous les autres signaux sont ignorés.
  • LOW - Le module est activé... le moteur est maintenu avec un couple de maintien et les autres signaux sont tenu en compte.
DIR Pin 7 Permet d'indiquer la direction de rotation du moteur. Etat Haut=High pour tourner dans un sens, Etat bas=Low pour tourner dans l'autre sens.
STEP Pin 6 (PWM) Envoyer un signal d'horloge (Niveau Haut puis Niveau bas, High puis Low) pour avancer le moteur d'un pas (en fonction de la configuration Full Step/micro-stepping.
MS1..MS3 Pin 19 (A5) Permet de configurer le mode Full Step ou 1/16 de pas. Voyez la description ci-dessus.

StepStick 3

Repéré par la lettre C sur le diagramme :-)

Signal StepStick Broche Arduino Correspondante Description/Fonctionnalité
Enable Pin 11 Active / Désactive le module StepStick.
  • HIGH - Module désactivé. Tous les autres signaux sont ignorés.
  • LOW - Le module est activé... le moteur est maintenu avec un couple de maintien et les autres signaux sont tenu en compte.
DIR Pin 13 Permet d'indiquer la direction de rotation du moteur. Etat Haut=High pour tourner dans un sens, Etat bas=Low pour tourner dans l'autre sens.
STEP Pin 12 Envoyer un signal d'horloge (Niveau Haut puis Niveau bas, High puis Low) pour avancer le moteur d'un pas (en fonction de la configuration Full Step/micro-stepping.
MS1..MS3 Pin 19 (A5) Permet de configurer le mode Full Step ou 1/16 de pas. Voyez la description ci-dessus.

StepStick 4

Repéré par la lettre A sur le diagramme :-)

Signal StepStick Broche Arduino Correspondante Description/Fonctionnalité
Enable Pin 14 (A0) Active / Désactive le module StepStick.
  • HIGH - Module désactivé. Tous les autres signaux sont ignorés.
  • LOW - Le module est activé... le moteur est maintenu avec un couple de maintien et les autres signaux sont tenu en compte.
DIR Pin 16 (A2) Permet d'indiquer la direction de rotation du moteur. Etat Haut=High pour tourner dans un sens, Etat bas=Low pour tourner dans l'autre sens.
STEP Pin 15 (A1) Envoyer un signal d'horloge (Niveau Haut puis Niveau bas, High puis Low) pour avancer le moteur d'un pas (en fonction de la configuration Full Step/micro-stepping.
MS1..MS3 Pin 19 (A5) Permet de configurer le mode Full Step ou 1/16 de pas. Voyez la description ci-dessus.

Branchement des moteurs

Pour le raccordement moteur, nous avons utilisé ces moteurs pas-à-pas 200pas en 12v.

FabScan-StepStick-Shield-Moteur.jpg

Ces moteurs utilisent la codification de couleur rouge, jaune, vert, gris.

Il existe également une autre codification de couleur qui devra alors respecter l'ordre: rouge, bleu, vert, noir.

Vous trouverez plus de détails sur le câblage moteur dans notre tutoriel sur le stepstick A4988

Code Arduino

Vous pourriez fort bien écrire vos propres routines utilitaire pour répondre à vos besoins spécifiques. Vous devriez y arriver assez facilement sur base de cette documentation et du tutoriel sur le StepStick A4988.

Néanmoins, pour vous aider à démarrer plus rapidement avec ce shield, nous pris la liberté d'écrire quelques routines pour faciliter la mise en oeuvre des stepstick sur le FabScan/StepStick shield.

Du coup, le corps du programme se réduit à ceci.

// Programme et code d'exemple fourni en l'état et sans garantie.
//
// Auteur: Meurisse D. - MCHobby.be - Vente de kit et composant
// Licence CC-BY-SA 

// Initialisation du programme
// Broche permettant d'activer le full_step ou microstepping 1/16 de pas
const int PIN_MS = 19; // broche A5 en digital

void setup()
{
  // Initialise la communication série:
  Serial.begin(9600);
  
  // Initialise le mode de stepping (Full Step)
  fabscan_initstepmode( PIN_MS, true );
  
  // Initialise LES 4 stepsticks 
  for( int iStepStick = 1; iStepStick <= 4; iStepStick++ ){
    fabscan_initstepstick( iStepStick );  
  }
}

// Programme principal
void loop() {
  
  for( int iStepStick = 1; iStepStick <= 4; iStepStick++ ){
    Serial.print( F("Test StepStick "));
    Serial.println( iStepStick );
    // Active le StepStick
    fabscan_activate( iStepStick, true );
    // Déplacement dans un sens
    fabscan_move( iStepStick, true, 100 );
    // Déplacement dans l'autre sens
    fabscan_move( iStepStick, false, 100 );
    // désactiver le step stick
    fabscan_activate( iStepStick, false );
  }
  
  // bloquer le programme
  while(true);
}

Les différentes routines s'appuient sur une structure définissant les différentes broches (et raccordement) des stepstick sur le shield

// Definition de la structure maintenant la définition 
// des broches de controles d'un StepStick
typedef struct {
  boolean inUse; // indique si le StepStick est utilisé --> Initialisation des broches
  int enablePin;
  int dirPin;
  int stepPin; 
} stepstick_t;
 
// Déclaration de tous les stepsticks de la carte fabScan
//   changé le premier paramètre à false si le stepstick n'est pas 
//   utilisé.
const stepstick_t stepsticks[4] = {
  {true, 2, 4, 3 }, // StepStick 1 - inUse, Enable, DIR, Step
  {true, 5, 7, 6 }, // StepStick 2
  {true,11,13,12 }, // StepStick 3
  {true,14,16,15 }  // StepStick 4 
}; 

Le routines peuvent donc interroger cette structure stepsticks[iNumeroDeStepStick-1] pour connaitre le brochage des différents StepStick.

Code Arduino

Le programme de test complet est disponible ici, n'hésitez pas à le consulter et à vous en inspirer:

Utilisation Avancée

Nombre d'entre-vous aurons noté que ce shield utilise un nombre non négligeable de broches. Que nous reste t'il a disposition?

Port Série

Le port série (branché sur les broches 0 et 1) reste entièrement disponible... facile donc de créer un petit interpréteur de commande pour contrôler les différents moteurs pas-à-pas.

Entrée Analogique

  • Si vous n'utilisez pas la partie dédiée à la LED, l'entrée Analogique A3 est disponible.
    Veuillez rompre la piste A3 pour éviter les perturbations avec l'électronique de commande de la LED).
  • Si vous n'utilisez pas le StepStick 4 (libellé D sur le diagramme), vous disposez alors des broches A0 à A4 (mais pas A5).
    Veuillez rompre la piste A3 et A4 pour éviter les perturbations a cause de l'électronique sur la carte.


Et l'entrée analogique A5?

Voyez le point dédié au bus I2C ci-dessous.

Bus I2C

Et bien, dans l'état et à moins d'un petit Hack, le bus I2C n'est pas disponible!

Dans le cadre du projet FabScan, ce bus I2C n'est pas utilisé... il est cependant regrettable de l'avoir sacrifié car ce bus est utile à plus d'un titre.

Vous voulez utiliser votre BUS I2C??? voyez donc la suite.

Le bus I2C utilise les broches:

  • A4 pour le signal SDA (les données)
  • A5 pour le signal SCL (le signal d'horloge)

Ce shield utilise:

  • La broche A4 pour la commande du Laser FabScan.
    Dans le cadre d'autre projets, vous pouvez rompre la piste A4 (visible au dessus) pour récupérer cette broche pour le bus I2C.
  • La broche A5 est plus problématique car elle est utilisée pour configurer les StepSticks en mode Full Step ou micro-stepping 1/16 pas.

Pour récupérer le bus I2C, il faut scinder la piste A5, utiliser votre fer à pour souder la piste:

  • sur la masse/GND - pour fixer les stepstick en full step.
  • sur +5V - pour fixer les stepstick en micro-stepping 1/16 pas.
  • Sur une autre broche libre comme la PIN 8 par exemple (il ne faudra pas oublier de modifier votre programme en conséquence ;-) )

Bus SPI

Le bus SPI utilise les broches 10, 11, 12, 13 (SS, MOSI, MISO, SCK), ces dernières sont malheureusement utilisées pour le stepstick #3 (Lettre C sur le diagramme).

Si vous voulez utiliser le bus SPI, vous devrez:

  1. Vous passer du stepstick 3 (noté C sur le diagramme)
  2. Sectionner la piste de la broches 11 (signal ENABLE) pour éviter que la LED+résistance perturbe le signal du bus.

Documentation réalisée par Meurisse D. pour MCHobby.be.

Source: FabScan Shield de Watterott.

Traduction et documentation réalisées avec l'autorisation expresse Stephan Watterott - Documentation and translation built with authorization of Stephan Watterott.

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.