Page 3 sur 6

Re: Coordoner moteur pas à pas et raspicam

Posté : jeu. 16 avr. 2015 18:57
par Manfraid
déjà on va reprendre depuis le début, quel version de python utilise tu ?

ensuite c'est vrai j'ai oublier de précisé le mode du GPIO, je pensais que aller le remettre

Re: Coordoner moteur pas à pas et raspicam

Posté : jeu. 16 avr. 2015 21:00
par Eddie
Ben moi non plus j'avais pas vu qu'il manquait les gpio... ;) pour la vs je regarderais, je sais pas comment on fait mais je vais chercher sur le net... Tu parles bien de celle du rpi ?

Re: Coordoner moteur pas à pas et raspicam

Posté : jeu. 16 avr. 2015 21:10
par Manfraid
salut

rajoute juste après les import ceci

Code : Tout sélectionner

GPIO.setmode(GPIO.BCM)
je l'ai récupéré dans ton code du premier post cela devrait fonctionner je pense

Re: Coordoner moteur pas à pas et raspicam

Posté : ven. 17 avr. 2015 10:08
par Eddie
Manfraid a écrit :déjà on va reprendre depuis le début, quel version de python utilise tu ?

ensuite c'est vrai j'ai oublier de précisé le mode du GPIO, je pensais que aller le remettre
J'ai la version 2.7.3 j'ai apparemment la dernière mise à jour... J'en ai profité pour mettre à jour à partir d'ici http://mchobby.be/wiki/index.php?title=Pi-Python-Prepa

Re: Coordoner moteur pas à pas et raspicam

Posté : ven. 17 avr. 2015 10:18
par Manfraid
ok merci pour ces précisions

Par contre pourrais tu mettre le message d'erreur que tu as pour que je puisse comprendre ce qu'il se passe exactement, car sans ceux-ci c'est très compliquer pour résoudre les soucis

Re: Coordoner moteur pas à pas et raspicam

Posté : ven. 17 avr. 2015 10:31
par Eddie
Bon J'ai repris depuis le début. En intégrant la MAj des seq, et la ligne GPIO. Donc en résumé nous avons donc :

Code : Tout sélectionner

#!/usr/bin/env python

#import global
import RPi.GPIO as GPIO
from time import sleep,time
from subprocess import call
#import pour comportement proche de python3
from __future__ import (unicode_literals, absolute_import,
                        print_function, division)
# Use BCM GPIO references
# instead of physical pin numbers
GPIO.setmode(GPIO.BCM)

class MotorPaP(object):
    """ class pour la gestion d'un moteur pas a pas
    """
    seq = [[GPIO.HIGH,GPIO.LOW,GPIO.LOW,GPIO.LOW],
       [GPIO.HIGH,GPIO.HIGH,GPIO.LOW,GPIO.LOW],
       [GPIO.LOW,GPIO.HIGH,GPIO.LOW,GPIO.LOW],
       [GPIO.LOW,GPIO.HIGH,GPIO.HIGH,GPIO.LOW],
       [GPIO.LOW,GPIO.LOW,GPIO.HIGH,GPIO.LOW],
       [GPIO.LOW,GPIO.LOW,GPIO.HIGH,GPIO.HIGH],
       [GPIO.LOW,GPIO.LOW,GPIO.LOW,GPIO.HIGH],
       [GPIO.HIGH,GPIO.LOW,GPIO.LOW,GPIO.HIGH]]
    debug = False

    def __init__(self,pins=[17,22,23,24],revolution=4096,rpm=10):
        """initialisation de la class avec les pins pour le moteur"""
        self.pins = pins
        self.rpm = rpm
        self.revolution = revolution
        #remise a zero des sortie
        self.InitOutput()
        #temp de pause entre chaque pas
        self.pause = 60/(revolution*rpm)

    def InitOutput(self):
        for pin in self.pins:         
            GPIO.setup(pin,GPIO.OUT)
            GPIO.output(pin, GPIO.LOW)

    def ClearOutput(self):
        for pin in self.pins:         
            GPIO.output(pin, GPIO.LOW)
        GPIO.Cleanup()
    def set_all_pins_low(self):
        for pin in self.pins:
            GPIO.output(pin, GPIO.LOW)
     
    def log(self,msg):
        if self.debug:
            print(msg)

    def _setstep(self,pins):
        for i in range(len(self.pins)):
            GPIO.output(self.pins[i],pins[i])
   
    def move(self,nbstep,sens=1):
        if sens < 0:
            self.seq.reverse()
        for i in range(nbstep):
            p = self.seq.pop(0)
            self._setstep(p)
            sleep(self.pause)
            self.seq.append(p)
        if sens < 0:
            self.seq.reverse()       
           
StepPins = [17,22,23,24]
motor = MotorPaP(StepPins)
sequence = [300]*50 # avance de 300pas pour 50 arret

for s in sequence:
    motor.move(s)
    call("raspistill -o myimage_%04d.jpg -tl 3000 -t 22500 -w 800 -h 600", shell=True)
J'ai toujours cette satané erreur... : ligne 8 SyntaxError: from __future__ imports must occur at the beginning of the file

Je vais chercher sur le net'...

Re: Coordoner moteur pas à pas et raspicam

Posté : ven. 17 avr. 2015 10:44
par Eddie
Quant je regarde les lignes :

#import pour comportement proche de python3
from __future__ import (unicode_literals, absolute_import,
print_function, division)

J'ai pas la version 3 de python alors que j'ai fais des MAJ. C'est pas ça le blem ?

Re: Coordoner moteur pas à pas et raspicam

Posté : ven. 17 avr. 2015 11:39
par Manfraid
en fait cet import sert a avoir le comportement de python3 mais en python2.7

Re: Coordoner moteur pas à pas et raspicam

Posté : ven. 17 avr. 2015 11:46
par Eddie
Bon en cherchant sur le net cela confirme la traduction de l'erreur, j'ai donc mis au debut comme ça :

Code : Tout sélectionner

#!/usr/bin/env python

#import global
import RPi.GPIO as GPIO
from time import sleep,time
from subprocess import call
#import pour comportement proche de python3
#from __future__ import (unicode_literals, absolute_import,
#                        print_function, division)

# Use BCM GPIO references
# instead of physical pin numbers
GPIO.setmode(GPIO.BCM)
Bon alors du coup plus d'erreur. :D
J'ai bien les photos qui se prennent mais le moteur ne tourne pas... :evil:

Re: Coordoner moteur pas à pas et raspicam

Posté : ven. 17 avr. 2015 11:50
par Manfraid
essaye d'augmenter le nombre de pas je l'ai mis a 300 mais a toi de voir