Coordoner moteur pas à pas et raspicam

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Avatar du membre
Eddie
Messages : 80
Enregistré le : lun. 2 mars 2015 20:30

Re: Coordoner moteur pas à pas et raspicam

Message par Eddie » ven. 17 avr. 2015 11:56

J'ai testé le code sur mon pc et j'ai erreur sur la ligne 4 :

Code : Tout sélectionner

    import RPi.GPIO as GPIO
ImportError: No module named 'RPi'
Bizarre ce truc ??? Y'a un ordre pour les import ?
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6

Avatar du membre
Manfraid
Raspinaute
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Coordoner moteur pas à pas et raspicam

Message par Manfraid » ven. 17 avr. 2015 12:01

Si tu essaye le code sur ton PC et non sur le Pi c'est normal le module RPi.GPIO est propre au raspberry c'est le module qui permet de gérer les GPIO
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Avatar du membre
Eddie
Messages : 80
Enregistré le : lun. 2 mars 2015 20:30

Re: Coordoner moteur pas à pas et raspicam

Message par Eddie » ven. 17 avr. 2015 12:08

Manfraid a écrit :Si tu essaye le code sur ton PC et non sur le Pi c'est normal le module RPi.GPIO est propre au raspberry c'est le module qui permet de gérer les GPIO
Ha ben oui en effet ;) mais je pensais que ça testait juste la cohérence du code et non pas l'interaction...
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6

Avatar du membre
Eddie
Messages : 80
Enregistré le : lun. 2 mars 2015 20:30

Re: Coordoner moteur pas à pas et raspicam

Message par Eddie » ven. 17 avr. 2015 12:15

Ca progresse... J'ai modifié les pas 1500 et 5 pour arret.

En effet le dolly avance et prend une photo. Et là il tourne en boucle sur raspistil... Il reprend pas sa course après avoir prit la photo. J'ai cette info aussi :
On dirait une contradiction de timming

Code : Tout sélectionner

test.py:46: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(pin,GPIO.OUT)
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6

Avatar du membre
Manfraid
Raspinaute
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Coordoner moteur pas à pas et raspicam

Message par Manfraid » ven. 17 avr. 2015 18:32

le programme fait combien de photo ? 1 ou 5
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Avatar du membre
Eddie
Messages : 80
Enregistré le : lun. 2 mars 2015 20:30

Re: Coordoner moteur pas à pas et raspicam

Message par Eddie » ven. 17 avr. 2015 19:11

Manfraid a écrit :le programme fait combien de photo ? 1 ou 5
Je comprend pas ou je dois trouver l'info ?
Je pense que c'est soit là

Code : Tout sélectionner

sequence = [1500]*50 # avance de 300pas pour 50 arret
ou là

Code : Tout sélectionner

    call("raspistill -o myimage_%04d.jpg -tl 3000 -t 22500 -w 800 -h 600", shell=True)
TL à 3img/s pendant 22500
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6

Avatar du membre
Manfraid
Raspinaute
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Coordoner moteur pas à pas et raspicam

Message par Manfraid » ven. 17 avr. 2015 19:15

a la commande raspistill fait déjà la gestion des prise de vue

je croyais qu'elle ne faisait qu'une seule photo voila ou est le soucis

du coup mon programme ne peu pas fonctionner
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Avatar du membre
Eddie
Messages : 80
Enregistré le : lun. 2 mars 2015 20:30

Re: Coordoner moteur pas à pas et raspicam

Message par Eddie » ven. 17 avr. 2015 19:25

Gggggrrrrrrrrrrrrrrrrrrrrrrrrrrrrr Zzzzuuuuuttttttttt

Je suis sur ce site http://picamera.readthedocs.org/en/rele ... ipes1.html ça permet pas de remplacer la commande raspistill ?
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6

Avatar du membre
Manfraid
Raspinaute
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Coordoner moteur pas à pas et raspicam

Message par Manfraid » ven. 17 avr. 2015 19:29

Sinon je peu te faire une adaptation de le script python pour que ce soit lui qui gère la totalité de la prise de vue
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Avatar du membre
Manfraid
Raspinaute
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Coordoner moteur pas à pas et raspicam

Message par Manfraid » ven. 17 avr. 2015 19:58

essaye ça

Code : Tout sélectionner

#!/usr/bin/env python
#import pour comportement proche de python3
from __future__ import (unicode_literals, absolute_import,
                        print_function, division)


#import global
import RPi.GPIO as GPIO
from time import sleep,time
from subprocess import call

# 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]
PasParTour = 4096
TourParMinute = 1
motor = MotorPaP(StepPins,PasParTour,TourParMinute)
sequence = [1500]*50 # avance de 1500pas pour 50 arret
try:
    i = 0
    for s in sequence:
        motor.move(s)
        cmd = "raspistill -o myimage_{:04d}.jpg  -w 800 -h 600".format(i)
        call(cmd, shell=True)
        i +=1
except KeyboardInterrupt:
    pass
finally:
    GPIO.cleanup()


et en fait pour le from __future__ import ce que je ne savais pas c'est qu'il faut l'appeler au début du script mais je connait peu python2 personnellement je n'utilise que python3
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Répondre

Retourner vers « Python »