View on GitHub

A3967 EasyDriver Shield Stepper Motor Driver Module

Description de la classe EasyStepperDriver développée en C# sous .NETMF 4.3 pour les cartes Netduino et FEZ (PANDA, COBRA...)

Download this project as a .zip file Download this project as a tar.gz file

Sommaire

  1. LE MATERIEL
    1. Les cartes EasyDriver 4.4 et Stepper click
    2. Les cartes Netduino
    3. Les cartes FEZ
  2. LE LOGICIEL
    1. Contenu du répertoire proposé au téléchargement
    2. Le NuGet MicroToolsKit
    3. Le wiki .NetMF v4.3
    4. Description et utilisation de la classe EasyStepperDriver
  3. LIENS
    1. Exemples codés en C# pour les cartes Netduino et Fez (Panda 3, BrainPad)
    2. La page du projet MicroToolsKit

1. LE MATERIEL


1.1 Les cartes EasyDriver 4.4 et Stepper click à circuit A3967


1.2 Les cartes Netduino

Wilderness Labs

Netduino plus 2 Netduino 3 wifi
Netduino + 2 Netduino 3 wifi* (compatible Gadgeteer)

1.3 Les cartes FEZ

GHI Electonics (Extrait)

BrainPad PANDA III COBRA III
BrainPad PANDA III* COBRA III** (compatible Gadgeteer)

2. LE LOGICIEL


2.1 Contenu du répertoire proposé au téléchargement

Le répertoire proposé au téléchargement (au format zip ou tar.gz) contient la solution EasyStepperDriver composée :


2.2 Le NuGet MicroToolsKit

La dernière version compilée de la classe EasyStepperDriver se situe dans la bibliothèque MicroToolsKit disponible sur nuget.org.

Organisation des classes contenues dans MicroToolsKit [lien]

Important : Installer cette bibliothèque dans le projet simplifie l'utilisation de cette classe.


2.3 Le wiki .NetMF v4.3


2.4 Description et utilisation de la classe EasyStepperDriver



Création d'un projet avec l'IDE Visual Studio

  1. Créer un nouveau projet en suivant la démarche décrite dans le chapitre "Premier programme en C# étape par étape" avec à une carte Netduino ou une carte Fez (Panda 3, BrainPad v1, etc.). [lien]
  2. Utiliser le gestionnaire de paquets NuGet pour ajouter la bibliothèque MicroToolsKit ( nuget.org) dans le projet. (Dans l'explorateur de solution, clic droit sur les Références du projet puis choisir Gérer les packages NuGet.... Installer le paquet.)
  3. Ajouter l'espace de noms Microtoolskit.Hardware.MotorDrivers dans l'en-tête du fichier source.
  4. Créer un objet en utilisant un des constructeurs EasyStepperDriver. Selon le besoin, la carte peut être contrôlée à l'aide de 2, 3, 4, 5 ou 6 sorties numériques.
  5. Commander le moteur en rotation avec la méthode Turn.
  6. Optionnel : activer la carte avec la méthode WakeUp si la broche Sleep est connectée. (Utiliser éventuellement la méthode Sleep pour réduire sa consommation)
  7. Désactiver la commande du moteur à l'arrêt (si la broche /Enable est connectée) avec la méthode DisableOutputs pour limiter son échauffement. Ne pas oublier de réactiver les sorties avec EnableOutputs.

Exemple pour la carte Panda
using System;
using System.Threading;
using Microsoft.SPOT;
using GHI.Pins;

using Microtoolskit.Hardware.MotorDrivers;

namespace PANDA_3_EasyStepperMot
{
    public class Program
    {
        public static void Main()
        {
            // N=200 pas - U=12V - C=200g/cm - EasyStepperMotor v4.4 
            UInt16 delay = 2; UInt32 nbpas = 200;
            var stepper = new EasyStepperDriver(FEZPandaIII.Gpio.D13, FEZPandaIII.Gpio.D12, FEZPandaIII.Gpio.D10, FEZPandaIII.Gpio.D11);

            while (true)
            {
                // 45° for ITC-VNC-1 motor
                stepper.StepMode = EasyStepperDriver.Mode.Full; stepper.StepDirection = EasyStepperDriver.Direction.Backward;
                stepper.Turn(25,delay);
                Thread.Sleep(1000);

                // 360° for ITC-VNC-1 motor
                stepper.Turn(nbpas, EasyStepperDriver.Direction.Forward, delay, EasyStepperDriver.Mode.Full);
                Thread.Sleep(1000);
            }
        }
    }
}

				

Constructeurs

Syntaxe Description
EasyStepperDriver( Pins DirectionPin, Pins StepPin) Instancie un objet "EasyStepperDriver". Contrôle de la direction et du nombre de pas.
  • DirectionPin: Digital I/O de la carte Netduino connectée à la broche DIR de la carte EasyDriver
  • StepPin: Digital I/O de la carte Netduino connectée à la broche STEP de la carte EasyDriver

Configuration par défaut: Forward, mode huitième de pas.

EasyStepperDriver( Pins DirectionPin, Pins StepPin, Pins SleepPin) Instancie un objet "EasyStepperDriver". Contrôle de la direction, du nombre de pas et fonction Sleep/WakeUp.
  • DirectionPin: Digital I/O de la carte Netduino connectée à la broche DIR de la carte EasyDriver
  • StepPin: Digital I/O de la carte Netduino connectée à la broche STEP de la carte EasyDriver
  • SleepPin: Digital I/O de la carte Netduino connectée à la broche SLP de la carte EasyDriver (fonction Sleep désactivée par défaut)

Configuration par défaut: Forward, Sleep activé, mode huitième de pas

EasyStepperDriver( Pins DirectionPin, Pins StepPin, Pins StepModePinOne, Pins StepModePinTwo) Instancie un objet "EasyStepperDriver". Contrôle de la direction, du nombre de pas et du mode.
  • DirectionPin: Digital I/O de la carte Netduino connectée à la broche DIR de la carte EasyDriver
  • StepPin: Digital I/O de la carte Netduino connectée à la broche STEP de la carte EasyDriver
  • StepModePinOne: Digital I/O de la carte Netduino connectée à la broche MS1 de la carte EasyDriver
  • SleepModePinTwo: Digital I/O de la carte Netduino connectée à la broche MS2 de la carte EasyDriver

Configuration par défaut: Forward, mode huitième de pas


Exemple
var stepper = new EasyStepperDriver(FEZPandaIII.Gpio.D13, FEZPandaIII.Gpio.D12, FEZPandaIII.Gpio.D10, FEZPandaIII.Gpio.D11);
EasyStepperDriver( Pins DirectionPin, Pins StepPin, Pins StepModePinOne, Pins StepModePinTwo, Pins SleepPin) Instancie un objet "EasyStepperDriver". Contrôle de la direction, du nombre de pas, du mode et fonction Sleep/WakeUp.
  • DirectionPin: Digital I/O de la carte Netduino connectée à la broche DIR de la carte EasyDriver
  • StepPin: Digital I/O de la carte Netduino connectée à la broche STEP de la carte EasyDriver
  • StepModePinOne: Digital I/O de la carte Netduino connectée à la broche MS1 de la carte EasyDriver
  • SleepModePinTwo: Digital I/O de la carte Netduino connectée à la broche MS2 de la carte EasyDriver
  • SleepPin: Digital I/O de la carte Netduino connectée à la broche SLP de la carte EasyDriver (fonction Sleep désactivée par défaut)

Configuration par défaut: Forward, Sleep activé, mode huitième de pas

EasyStepperDriver( Pins DirectionPin, Pins StepPin, Pins StepModePinOne, Pins StepModePinTwo, Pins SleepPin, Pins EnablePin) Instancie un objet "EasyStepperDriver". Contrôle de la direction, du nombre de pas et fonction Sleep/WakeUp.
  • DirectionPin: Digital I/O de la carte Netduino connectée à la broche DIR de la carte EasyDriver
  • StepPin: Digital I/O de la carte Netduino connectée à la broche STEP de la carte EasyDriver
  • StepModePinOne: Digital I/O de la carte Netduino connectée à la broche MS1 de la carte EasyDriver
  • SleepModePinTwo: Digital I/O de la carte Netduino connectée à la broche MS2 de la carte EasyDriver
  • SleepPin: Digital I/O de la carte Netduino connectée à la broche SLP de la carte EasyDriver (fonction Sleep désactivée par défaut)
  • EnablePin: Digital I/O de la carte Netduino connectée à la broche ENABLE de la carte EasyDriver

Configuration par défaut: Forward, Sleep activé, mode huitième de pas, Enable activé

Enumérations

Syntaxe Description
Direction - Forward: sens horaire
- Backward: sens anti-horaire
Mode - Full: pas entier
- Half: demi pas
- Quarter: quart de pas
- OneEighth: huitième de pas ( mode par défaut)

Propriétés

Syntaxe Description
IsDriverSleep Retourne :
- False si la logique et les sorties sont activées ( mode par défaut)
- True si la logique et les sorties sont désactivées
IsOutputsEnable Retourne :
- True si les sorties sont activées ( mode par défaut)
- False si les sorties sont désactivées
StepDelay Retourne ou fixe la durée d'un pas en ms
StepDirection Retourne ou fixe le sens de rotation:
0: horaire
1: anti-horaire

Exemple
stepper.StepDirection = EasyStepperDriver.Direction.Backward;
StepMode Retourne ou fixe le mode de fonctionnement du moteur:
0: pas entier
1: demi pas
2: quart de pas
3: huitième de pas ( mode par défaut)

Exemple
stepper.StepMode = EasyStepperDriver.Mode.Full;
Steps Retourne le nombre de pas que le moteur doit effectuer

Méthodes

Syntaxe Description
bool DisableOutputs() Désactivation des sorties A et B de la carte EasyDriver.
Renvoi un booléen attestant de l'opération. (La broche Enable doit être initialisée à l'aide d'un constructeur avant d'utiliser cette méthode)
bool EnableOutputs() Activation des sorties A et B de la carte EasyDriver.
Renvoi un booléen attestant de l'opération. (La broche Enable doit être initialisée à l'aide d'un constructeur avant d'utiliser cette méthode)
bool Sleep() Désactivation de la logique de commande et des sorties A et B de la carte EasyDriver.
Renvoi un booléen attestant de l'opération. (La broche SLP doit être initialisée à l'aide d'un constructeur avant d'utiliser cette méthode)
Mode activé par défaut
void Turn( UInt32 steps, int [delay=2]) Commande du moteur pas à pas:
- steps: Nombre de pas à effectuer
- delay: durée d'un pas ( 2ms par défaut)

Exemple
stepper.Turn(25);
void Turn( UInt32 steps, Mode mode, direction direction, int [delay=2]) Commande du moteur pas à pas:
- steps: Nombre de pas à effectuer
- mode: Mode de fonctionnement (Full, Half, Quarter, OneEighth)
- direction: Sens de rotation (Forward, Backward)
- delay: durée d'un pas ( 2ms par défaut)

Exemple
stepper.Turn(nbpas, EasyStepperDriver.Direction.Forward, delay, EasyStepperDriver.Mode.Full);
bool WakeUp() Activation de la logique de commande et des sorties de la carte EasyDriver.
Renvoi un booléen attestant de l'opération. (La broche SLP doit être initialisée à l'aide d'un constructeur avant d'utiliser cette méthode)