Page 4 sur 6
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 11:56
par Eddie
J'ai testé le code sur mon pc et j'ai erreur sur la ligne 4 :
Bizarre ce truc ??? Y'a un ordre pour les import ?
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 12:01
par Manfraid
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
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 12:08
par Eddie
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...
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 12:15
par Eddie
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)
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 18:32
par Manfraid
le programme fait combien de photo ? 1 ou 5
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 19:11
par Eddie
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à
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
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 19:15
par Manfraid
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
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 19:25
par Eddie
Gggggrrrrrrrrrrrrrrrrrrrrrrrrrrrrr Zzzzuuuuuttttttttt
Je suis sur ce site
http://picamera.readthedocs.org/en/rele ... ipes1.html ça permet pas de remplacer la commande raspistill ?
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 19:29
par Manfraid
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
Re: Coordoner moteur pas à pas et raspicam
Posté : ven. 17 avr. 2015 19:58
par Manfraid
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