Sommaire
- LE MATERIEL
- Les cartes EasyDriver 4.4 et Stepper click
- Les cartes Netduino
- Les cartes FEZ
- LE LOGICIEL
- LIENS
1. LE MATERIEL
1.1 Les cartes EasyDriver 4.4 et Stepper click à circuit A3967
- Présentation
- Alimentation: 7 à 30 Vcc maxi
- Commande: via un microcontrôleur 0 - 5 Vcc (mode, direction et vitesse)
- Sortie: 150 à 750 mA maxi par phase
- Dimensions: 48 x 21 x 18 mm
- Schéma: : EasyDriver v4.4
- Fiche technique: : EasyDriver Stepper Motor Driver
- Distributeur: GOTRONIC
- Documentation: MikroElektronika
- Distributeur : Farnell
Ces cartes permettent de contrôler facilement un moteur pas-à-pas bipolaire jusqu'à 750 mA par phase.
Elle sont basées sur le circuit Allegro A3967 et permettent de contrôler un moteur pas-à-pas (par ex: ITC-VNC-2) très facilement à partir d'un microcontrôleur (deux broches pour le mode, une broche pour la direction et une pour la vitesse). Ces modules autorise le fonctionnement en mode pas complet, demi-pas, quart de pas ou 1/8 de pas (mode par défaut).
Pour simplifier la connectique, la carte EasyDriverv4.5 peut être intallée sur une carte miniE Shield
La carte Stepper click de MikroElektronika est au format mikroBus.
EasyDriver 4.4 | miniE Shield |
Stepper click
sur mikroBus |
Commun
EasyDriver 4.4
Stepper click
1.2 Les cartes Netduino
Wilderness Labs
- Microcontrôleur : STM32F405RG 32 bits à architecture Cortex-M4 cadencé à 168 MHz.
- RAM : 100 KB (164+)*.
- Flash : 384 KB (1408KB)*.
- Port Ethernet : 10Mbps (Wifi:802.11b/g/n)*.
- E/S numériques : 22
- Entrées analogiques : 6
- Stockage: carte µSD
- IDE : Microsoft Visual Studio
- Framework : .NETMF 4.3
- Langages de programmation : C#, VB
Netduino + 2 | Netduino 3 wifi* (compatible Gadgeteer) |
- Sites à consulter: Netduino
- Distributeurs : Mouser Electronics
1.3 Les cartes FEZ
GHI Electonics (Extrait)
-
Microcontrôleur
- 84 MHz 32-bit ARM Cortex-M4 ( BrainPad ),
- 180 MHz 32-bit ARM Cortex-M4 ( PANDA III)*,
- 120 MHz 32-bit ARM Cortex-M3 ( COBRA III)**
- SoC(SoM)* : G30 G80 G120*
- RAM : 68KB, 156KB*, 2.87MB**.
- Flash : 128KB, 256KB*, 13.67MB**.
- E/S numériques : 49, 53*, 60**
- Entrées analogiques : 16, 16*, 8**
- Réseaux : Ethernet TCP/IP, WiFi, and SSL.
- Stockage: carte µSD
- IDE : Microsoft Visual Studio Community 2015
- Framework : .NETMF 4.3
- Langages de programmation : C#, VB
BrainPad | PANDA III* | COBRA III** (compatible Gadgeteer) |
- Sites à consulter : GHI ELECTRONICS
- Distributeurs : Mouser Electronics
- Schémas : BrainPad v1, Panda III, Cobra III
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 :
- Du projet EasyStepperDriver : le code source de la classe EasyStepperDriver.
- Du projet Netduino : un exemple d'utilisation de cette classe avec une carte Netduino.
- Du projet FezPanda : un exemple d'utilisation de cette classe avec une carte Panda III.
- Du projet BrainPad : un exemple d'utilisation de cette classe avec une carte BrainPad v1 et un module Stepper click.
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
-
Un wiki est dédié au
microframework .Net v4.3. Il propose au téléchargement :
- Des exemples de code pour les cartes Netduino, GHI FEZ (Panda 3 , BrainPad v1, etc.) . [lien]
2.4 Description et utilisation de la classe EasyStepperDriver
-
Rôle: Contrôler une carte de commande de moteur pas à pas à circuit A3967.
-
Assembly:
MicroToolsKit (disponible sur
nuget.org)
-
Espace de noms:
Microtoolskit.Hardware.MotorDrivers
Création d'un projet avec l'IDE Visual Studio
- 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]
- 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.)
- Ajouter l'espace de noms Microtoolskit.Hardware.MotorDrivers dans l'en-tête du fichier source.
- 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.
- Commander le moteur en rotation avec la méthode Turn.
- 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) 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.
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.
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.
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.
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.
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) |