IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

Commander un moteur pas à pas en python


Sujet :

Raspberry Pi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2013
    Messages : 139
    Points : 26
    Points
    26
    Par défaut Commander un moteur pas à pas en python
    Bonjour,
    je voudrais commander un moteur pas à pas en 2 sens de rotation. j'utilise une raspberry pi avec une shild moteur adafruit. Pour cela, j'ai suivi le tutoriel ci-dessous:
    https://learn.adafruit.com/adafruit-...stepper-motors
    Mon problème est que mon moteur tourne en un seul sens. Pouvez vous m'aider s'il vous plait? le mot de passe est test

    voila mon code:
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    #!/usr/bin/env python
    from Tkinter import *
    from Adafruit_MotorHAT import Adafruit_MotorHAT, Adafruit_DCMotor, Adafruit_StepperMotor
     
    import time
    import atexit
     
    mh = Adafruit_MotorHAT()
    myStepper = mh.getStepper(200, 1)  	# 200 steps/rev, motor port #1
    myStepper.setSpeed(30)
     
    # recommended for auto-disabling motors on shutdown
    def turnOffMotors():
    	mh.getMotor(1).run(Adafruit_MotorHAT.RELEASE)
    	mh.getMotor(2).run(Adafruit_MotorHAT.RELEASE)
    	mh.getMotor(3).run(Adafruit_MotorHAT.RELEASE)
    	mh.getMotor(4).run(Adafruit_MotorHAT.RELEASE)
     
    atexit.register(turnOffMotors)
     
    def call_btn_gauche():
        myStepper.step(100, Adafruit_MotorHAT.FORWARD,  Adafruit_MotorHAT.DOUBLE)
    def call_btn_droite():
        myStepper.step(100, Adafruit_MotorHAT.BACKWARD, Adafruit_MotorHAT.DOUBLE)
    def verification():
        if motdepasse.get() =='test':
            fenetre1.destroy()
     
            fenetre2 = Tk()
            fenetre2.title ( 'Bras robot' )
            label2 = Label(fenetre2)
            label2.pack(side = RIGHT, padx = 10, pady = 10)
     
            btn_exit = Button( fenetre2, text = 'Fermer' , command=fenetre2.quit )
     
            btn_gauche = Button ( fenetre2 , text = 'Gauche', command = call_btn_gauche)
            btn_droite = Button ( fenetre2 , text = 'Droite', command = call_btn_droite)
     
            label2.grid ( row = 3, column = 3  )
     
            btn_exit.grid ( row = 7, column = 5  )
     
            btn_gauche.grid ( row = 1, column = 6 )
            btn_droite.grid ( row = 2, column = 6 )
     
            fenetre2.mainloop()
     
        else:
            showwarning('mot de passe incorrect, veuillez recommencer')
            motdepasse.set('')
     
    fenetre1 = Tk()
    fenetre1.title ( 'Identification requise' )
    label1 = Label(fenetre1)
    label1.pack(side = LEFT, padx = 5, pady = 5)
     
    motdepasse=StringVar()
    Champ = Entry(fenetre1, textvariable=motdepasse, show='*', bg='bisque', fg='maroon')
    Champ.focus_set()
    Champ.pack(side = LEFT, padx = 5, pady = 5)
     
    Bouton = Button(fenetre1, text = 'Valider', command = verification)
    Bouton.pack(side = LEFT, padx = 5, pady = 5)
     
    fenetre1.mainloop()

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    le programme semble juste. Est-ce que le moteur est bien câblé ? Tu n'as pas inversé 2 fils ?
    M1 c'est rouge (A) + jaune (C)
    M2 gris (B) + vert (D).
    le 5ème fil (noir) à la masse (si c'est un moteur 5 fils).

    Ce qui me surprend c'est que les noms des entrées (A, B, C, D) ne sont pas écrites sur ton shield. Essaye d'inverser A et C ou B et D.

  3. #3
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut
    Voir le forum Adafruit
    Il y a plus compact avec Arduino + vidéo :

    https://www.pololu.com/product/2128

Discussions similaires

  1. Commande de position sur moteur pas à pas
    Par Marc29 dans le forum LabVIEW
    Réponses: 31
    Dernier message: 22/01/2017, 10h39
  2. Commande moteur pas à pas via port parallèle
    Par -N4w4k- dans le forum Robotique
    Réponses: 9
    Dernier message: 05/04/2012, 00h00
  3. Commande d'un moteur pas à pas
    Par Wikli dans le forum LabVIEW
    Réponses: 2
    Dernier message: 02/12/2010, 03h55
  4. Réponses: 1
    Dernier message: 25/10/2010, 09h17
  5. Commande de déplacement de moteurs pas à pas
    Par ecile dans le forum LabVIEW
    Réponses: 5
    Dernier message: 23/11/2009, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo