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 55 : |
Ligne 57 : |
| | | |
| == 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}} |