Différences entre versions de « FabScan-StepStick-Shield-Utiliser »
Ligne 167 : | Ligne 167 : | ||
== Code Arduino == | == 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. | Du coup, le corps du programme se réduit à ceci. | ||
− | <nowiki>// Initialisation du programme | + | <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 | // Broche permettant d'activer le full_step ou microstepping 1/16 de pas | ||
const int PIN_MS = 19; // broche A5 en digital | const int PIN_MS = 19; // broche A5 en digital | ||
Ligne 233 : | Ligne 240 : | ||
Le programme de test complet est disponible ici, n'hésitez pas à le consulter: | Le programme de test complet est disponible ici, n'hésitez pas à le consulter: | ||
− | * [http://df.mchobby.be/fabscan/FabScanTest.ino FabScanTest.ino] | + | * [http://df.mchobby.be/fabscan/FabScanTest.ino FabScanTest.ino] (offert en l'état, sans garantie, Licence: CC-BY-SA) |
== Utilisation Avancée == | == Utilisation Avancée == |
Version du 8 avril 2014 à 10:46
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.
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.
Attention! l'orientation du StepStick sur le port 4 EST DIFFERENT! Vous détruirez le stepstick si vous vous trompez. |
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.
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
- GND: la masse/GND de votre alimentation
Ne jamais arracher l'alimentation!
Les stepsticks utilisent des capacités céramiques à faible résistance série équivalente (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
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
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.
|
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.
|
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.
|
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.
|
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.
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.
Le programme de test complet est disponible ici, n'hésitez pas à le consulter:
- 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.
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:
- 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.
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.