Coordoner moteur pas à pas et raspicam
Modérateurs : Francois, Manfraid
Re: Coordoner moteur pas à pas et raspicam
Oui j'ai déjà essayé mais pas facile de trouver vraiment ce qu'on veut... L'on trouve des prog de l'un ou de l'autre mais pas des 2 à la fois.
Comme dirait l'autre j'suis pas faignant mais partisan du moindre effort
C'est quoi une class python ?
Comme dirait l'autre j'suis pas faignant mais partisan du moindre effort
C'est quoi une class python ?
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Re: Coordoner moteur pas à pas et raspicam
je te conseille de lire ceci c'est un excellent moyen d'apprendre python, et j'y vais encore cela me sert aussi de pense bête
alors en gros un class c'est un objet, par exemple dans ton projet tu pourrais avoir une class moteur, est c'est celle si qui s'occupera de faire bouger ton moteur, et dans le programme principale du utilisera cette class juste pour dire au moteur fait 100 pas a droite ou 200 a gauche (c'est un exemple)
alors en gros un class c'est un objet, par exemple dans ton projet tu pourrais avoir une class moteur, est c'est celle si qui s'occupera de faire bouger ton moteur, et dans le programme principale du utilisera cette class juste pour dire au moteur fait 100 pas a droite ou 200 a gauche (c'est un exemple)
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.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Re: Coordoner moteur pas à pas et raspicam
voici un exemple de class pour un moteur pas à pas, je l'ai fait vite fait, elle ne fonctionne peu être pas, mais je n'ai rien chez moi pour pouvoir la tester
pour l'utilisé avec ton code cela donnerai
Code : Tout sélectionner
#!/usr/bin/env python
#import global
import RPi.GPIO as GPIO
from time import sleep,time
#import pour comportement proche de python3
from __future__ import (unicode_literals, absolute_import,
print_function, division)
class MotorPaP(object):
""" class pour la gestion d'un moteur pas a pas
"""
seq = [[GPIO.HIGHT,GPIO.LOW,GPIO.LOW,GPIO.LOW],
[GPIO.HIGHT,GPIO.HIGHT,GPIO.LOW,GPIO.LOW],
[GPIO.LOW,GPIO.HIGHT,GPIO.LOW,GPIO.LOW],
[GPIO.LOW,GPIO.HIGHT,GPIO.HIGHT,GPIO.LOW],
[GPIO.LOW,GPIO.LOW,GPIO.HIGHT,GPIO.LOW],
[GPIO.LOW,GPIO.LOW,GPIO.HIGHT,GPIO.HIGHT],
[GPIO.LOW,GPIO.LOW,GPIO.LOW,GPIO.HIGHT],
[GPIO.HIGHT,GPIO.LOW,GPIO.LOW,GPIO.HIGHT]]
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()
Code : Tout sélectionner
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)
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.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Re: Coordoner moteur pas à pas et raspicam
Merci de passer du temps à mon sujet.
J'ai essayé ton code brut. Cela ne marche pas... Une erreure à chaque ligne ou presque. Je pense que c'est un probleme sur l'alignement des lignes...
Par contre j'ai pas compris comment je dois associer les 2 parties de code (la tienne et la mienne) ?
J'ai essayé ton code brut. Cela ne marche pas... Une erreure à chaque ligne ou presque. Je pense que c'est un probleme sur l'alignement des lignes...
Par contre j'ai pas compris comment je dois associer les 2 parties de code (la tienne et la mienne) ?
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Re: Coordoner moteur pas à pas et raspicam
Salut,
voici le code complet que je te propose par contre pas sur non plus qu'il fonctionne
voici le code complet que je te propose par contre pas sur non plus qu'il fonctionne
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)
class MotorPaP(object):
""" class pour la gestion d'un moteur pas a pas
"""
seq = [[GPIO.HIGHT,GPIO.LOW,GPIO.LOW,GPIO.LOW],
[GPIO.HIGHT,GPIO.HIGHT,GPIO.LOW,GPIO.LOW],
[GPIO.LOW,GPIO.HIGHT,GPIO.LOW,GPIO.LOW],
[GPIO.LOW,GPIO.HIGHT,GPIO.HIGHT,GPIO.LOW],
[GPIO.LOW,GPIO.LOW,GPIO.HIGHT,GPIO.LOW],
[GPIO.LOW,GPIO.LOW,GPIO.HIGHT,GPIO.HIGHT],
[GPIO.LOW,GPIO.LOW,GPIO.LOW,GPIO.HIGHT],
[GPIO.HIGHT,GPIO.LOW,GPIO.LOW,GPIO.HIGHT]]
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)
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.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Re: Coordoner moteur pas à pas et raspicam
Et faut pas faire une class pour la picam ?Manfraid a écrit :je te conseille de lire ceci c'est un excellent moyen d'apprendre python, et j'y vais encore cela me sert aussi de pense bête
alors en gros un class c'est un objet, par exemple dans ton projet tu pourrais avoir une class moteur, est c'est celle si qui s'occupera de faire bouger ton moteur, et dans le programme principale du utilisera cette class juste pour dire au moteur fait 100 pas a droite ou 200 a gauche (c'est un exemple)
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Re: Coordoner moteur pas à pas et raspicam
Ça marche pas...Manfraid a écrit :Salut,
voici le code complet que je te propose par contre pas sur non plus qu'il fonctionneCode : 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) class MotorPaP(object): """ class pour la gestion d'un moteur pas a pas """ seq = [[GPIO.HIGHT,GPIO.LOW,GPIO.LOW,GPIO.LOW], [GPIO.HIGHT,GPIO.HIGHT,GPIO.LOW,GPIO.LOW], [GPIO.LOW,GPIO.HIGHT,GPIO.LOW,GPIO.LOW], [GPIO.LOW,GPIO.HIGHT,GPIO.HIGHT,GPIO.LOW], [GPIO.LOW,GPIO.LOW,GPIO.HIGHT,GPIO.LOW], [GPIO.LOW,GPIO.LOW,GPIO.HIGHT,GPIO.HIGHT], [GPIO.LOW,GPIO.LOW,GPIO.LOW,GPIO.HIGHT], [GPIO.HIGHT,GPIO.LOW,GPIO.LOW,GPIO.HIGHT]] 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)
Je cherche désespérément sur le net' mais pas moyen de trouver. J'suis pas le premier à vouloir faire ça quant même ???
C'est chaud Python quant même... J'ai regarder ton lien mais je sais pas par ou commencer...
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Re: Coordoner moteur pas à pas et raspicam
Peu-tu me mettre ce que la console affiche comme message d'erreur, si il y en a un bien sur, et si il y en as pas peu tu me dire ce qui ne va pas plus précisément
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.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Re: Coordoner moteur pas à pas et raspicam
J'ai fait une erreur dans mon code a la place de ceci
mettre
Code : Tout sélectionner
seq = [[GPIO.HIGHT,GPIO.LOW,GPIO.LOW,GPIO.LOW],
[GPIO.HIGHT,GPIO.HIGHT,GPIO.LOW,GPIO.LOW],
[GPIO.LOW,GPIO.HIGHT,GPIO.LOW,GPIO.LOW],
[GPIO.LOW,GPIO.HIGHT,GPIO.HIGHT,GPIO.LOW],
[GPIO.LOW,GPIO.LOW,GPIO.HIGHT,GPIO.LOW],
[GPIO.LOW,GPIO.LOW,GPIO.HIGHT,GPIO.HIGHT],
[GPIO.LOW,GPIO.LOW,GPIO.LOW,GPIO.HIGHT],
[GPIO.HIGHT,GPIO.LOW,GPIO.LOW,GPIO.HIGHT]]
Code : Tout sélectionner
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]]
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.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Re: Coordoner moteur pas à pas et raspicam
Ok j'ai repris ton dernier email. Par contre ça bloque à la ligne 10
from __future__ import (unicode_literals, absolute_import,
print_function, division)
SyntaxError
J'ai mis un # pour les 2 lignes afin de voir si pas d'autres erreurs et :
ligne 69 motor = MotorPaP(StepPins)
ligne 32 self.InitOutput()
ligne 38 GPIO.setup(pin,GPIO.OUT)
RuntimeError: please set pins numbering mode using GPIO.setmode (GPIO.BOARD) or GPIO.setmode (GPIO.BCM)
Du coup c'est pas la ligne 26 qui plante ? car c'est là qu'il y'a les n° de pin. Il sont bon et le branchement aussi.
Est-ce que les def doivent être décalés ? Quant je ramène tout à la colonne 1 j'ai plus que l’erreur à la ligne 69 TypeError: object.__new__() takes no parameters
from __future__ import (unicode_literals, absolute_import,
print_function, division)
SyntaxError
J'ai mis un # pour les 2 lignes afin de voir si pas d'autres erreurs et :
ligne 69 motor = MotorPaP(StepPins)
ligne 32 self.InitOutput()
ligne 38 GPIO.setup(pin,GPIO.OUT)
RuntimeError: please set pins numbering mode using GPIO.setmode (GPIO.BOARD) or GPIO.setmode (GPIO.BCM)
Du coup c'est pas la ligne 26 qui plante ? car c'est là qu'il y'a les n° de pin. Il sont bon et le branchement aussi.
Est-ce que les def doivent être décalés ? Quant je ramène tout à la colonne 1 j'ai plus que l’erreur à la ligne 69 TypeError: object.__new__() takes no parameters
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6