Différences entre versions de « FabScan-StepStick-Shield-Utiliser »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(27 versions intermédiaires par le même utilisateur non affichées)
Ligne 25 : Ligne 25 :
  
 
=== Alimentation moteur ===
 
=== Alimentation moteur ===
La tension d'alimentation moteur est comprise entre 8 et 35 V. Le plus courant c'est 12V pour des {{pl|236|moteurs pas-à-pas 12V / 200 pas}} .  
+
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 {{pl|236|moteurs pas-à-pas 12V / 200 pas}} c'est 12 volts.  
  
 
Cette source d'alimentation peut être obtenue par deux biais différents:
 
Cette source d'alimentation peut être obtenue par deux biais différents:
Ligne 43 : Ligne 45 :
 
Il est donc recommandé (et préférable) d'utiliser des sources alimentations séparées pour la logique et pour les moteurs.  
 
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'''.
+
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.
 +
 
 +
{{ambox-stop|text=Il est important de respecter la polarité au risque de détruire vos stepsticks.}}
  
Il est important de respecter la polarité au risque de détruire vos stepsticks.
+
le bornier '''Power''' comporte les points de connexion suivants:
 
* '''VMot''': borne positive de votre alimentation
 
* '''VMot''': borne positive de votre alimentation
 
* '''GND''': la masse/GND de votre alimentation
 
* '''GND''': la masse/GND de votre alimentation
  
=== Recommandation Importante ===
+
=== Ne jamais arracher l'alimentation! ===
 
 
 
{{ambox-stop|text=Les stepsticks utilisent des capacités céramiques à faible résistance série équivalente ([http://www.jmax-hardware.com/forum/index.php?topic=5171.0;wap2 low-ESR]),ce qui la sensible aux destructions par les pointes de surtensions induites par les circuits LC, plus spécialement sur vous utilisez des câbles d'alimentations d'une longueur supérieure à quelques centimètres. Sous de mauvaises conditions, ces  pointes de tension peuvent excéder les 35 V de tension maximale du A4988 et endommager la carte de façon permanente (même pour une alimentation moteur à 12 V). Une façon de protéger les pilotes est de placer, au plus près de la carte, une capacité électrolytique importante (au moins 47 µF) entre VMOT et la masse.}}
 
{{ambox-stop|text=Les stepsticks utilisent des capacités céramiques à faible résistance série équivalente ([http://www.jmax-hardware.com/forum/index.php?topic=5171.0;wap2 low-ESR]),ce qui la sensible aux destructions par les pointes de surtensions induites par les circuits LC, plus spécialement sur vous utilisez des câbles d'alimentations d'une longueur supérieure à quelques centimètres. Sous de mauvaises conditions, ces  pointes de tension peuvent excéder les 35 V de tension maximale du A4988 et endommager la carte de façon permanente (même pour une alimentation moteur à 12 V). Une façon de protéger les pilotes est de placer, au plus près de la carte, une capacité électrolytique importante (au moins 47 µF) entre VMOT et la masse.}}
  
 
== Brochage ==
 
== Brochage ==
[[Fichier:FabScan-StepStick-Shield-Use-10.jpg|800px]]
+
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). [https://github.com/watterott/FabScan-Shield/tree/master/pcb Le diagramme complet est disponible ici]
 +
 +
[[Fichier:FabScan-StepStick-Shield-Diag.jpg|800px]]
 +
 +
=== 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 [[A4988|StepStick A4988 dans le tutoriel qui lui est dédié]].
 +
 +
==== StepStick 1 ====
 +
 +
Repéré par la lettre A sur le diagramme :-)
 +
 +
{| class="wikitable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Signal StepStick'''
 +
| align="center" style="background:#f0f0f0;"|'''Broche Arduino Correspondante'''
 +
| align="center" style="background:#f0f0f0;"|'''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 :-)
 +
 +
{| class="wikitable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Signal StepStick'''
 +
| align="center" style="background:#f0f0f0;"|'''Broche Arduino Correspondante'''
 +
| align="center" style="background:#f0f0f0;"|'''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 :-)
 +
 +
{| class="wikitable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Signal StepStick'''
 +
| align="center" style="background:#f0f0f0;"|'''Broche Arduino Correspondante'''
 +
| align="center" style="background:#f0f0f0;"|'''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 :-)
 +
 +
{| class="wikitable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Signal StepStick'''
 +
| align="center" style="background:#f0f0f0;"|'''Broche Arduino Correspondante'''
 +
| align="center" style="background:#f0f0f0;"|'''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 ==
 
== Branchement des moteurs ==
xx
+
 
 +
Pour le raccordement moteur, nous avons utilisé ces {{pl|236|moteurs pas-à-pas 200pas en 12v}}.
 +
 
 +
[[Fichier:FabScan-StepStick-Shield-Moteur.jpg|800px]]
 +
 
 +
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 [[A4988|tutoriel sur le stepstick A4988]]
  
 
== Code Arduino ==
 
== Code Arduino ==
xxx
+
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.
 +
 
 +
<nowiki>// 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);
 +
}</nowiki>
 +
 
 +
Les différentes routines s'appuient sur une structure définissant les différentes broches (et raccordement) des stepstick sur le shield
 +
 
 +
<nowiki>// 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
 +
}; </nowiki>
 +
 
 +
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:
 +
* [http://df.mchobby.be/fabscan/FabScanTest.ino  FabScanTest.ino] (offert en l'état, sans garantie, Licence: CC-BY-SA)
 +
 
 +
== 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.<br />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).<br />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.<br />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:
 +
# Vous passer du stepstick 3 (noté C sur le diagramme)
 +
# Sectionner la piste de la broches 11 (signal ENABLE) pour éviter que la LED+résistance perturbe le signal du bus. 
  
 
{{FabScan-StepStick-Shield-TRAILER}}
 
{{FabScan-StepStick-Shield-TRAILER}}

Version actuelle datée du 8 avril 2014 à 10:47


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.