Modifications

Sauter à la navigation Sauter à la recherche
11 195 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:
Ligne 60 : Ligne 62 :     
[[Fichier:FabScan-StepStick-Shield-Diag.jpg|800px]]
 
[[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