Modifications

Sauter à la navigation Sauter à la recherche
11 678 octets ajoutés ,  8 avril 2014 à 10:47
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:
   −
'''{{underline|Via le connecteur Jack Arduino}}'''
+
==== 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.
 
L'alimentation moteur peut provenir du connecteur JACK de la carte Arduino sur lequel vous aurez brancher une alimentation 12V.
   Ligne 36 : Ligne 38 :  
Avantage non négligeable, cette source d'alimentation servira aussi à alimenter votre Arduino par l'intermédiaire du régulateur de tension +5V.
 
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.
+
Dans ce cas, le '''cavalier "Vmot-Vin" doit être ponté''' sur la FabScan /StepStick Shield  (ce qui est le cas par défaut).
 
  −
'''{{underline|Alimentations séparées}}'''
      +
==== 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.  
 
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.  
 
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}}
29 917

modifications

Menu de navigation