BIDOUILLE POUR MON AQUAMED
Modérateur : Francois
BIDOUILLE POUR MON AQUAMED
Voilà j'ai déplacé ma demande après avoir fait les présentations.
Cela fait presque 1 ans que j'ai commencé à bidouiller sur mon PI 2.Pendant mes moments de temps libre j'essaye de faire fonctionner et glaner des infos sur le net pour pouvoir le programmer.
Avec tout les tuto que l'ont trouve sur le net le départ à été assez simple.Démarrage et connexion à internet.
Mon projet est de faire dans un premier temps, fonctionner des servo pour actionner des oscillateurs pour les pompes de mon aquarium.Par la suite essayer de gérer une grosse partie du fonctionnement de celui-ci.Pouvoir regarder lorsque je suis en congés les paramètres et pourquoi pas ajouter une webcam pour jeter un coup d’œil.
Mais, il y a un mais depuis quelque temps je patauge dans le vide.Après avoir acheté une platine Adafruit PCA9685 et suivi le tuto sur Adafruit et chargé git hub (https://github.com/adafruit/Adafruit-Ra ... ython-Code) je n'arrive pas à faire diminuer la vitesse de rotation du dit servo.Je peux augmenter te temps de pose mais je ne peux pas jouer sur le temps de rotation.Je veux que le servo me fasse balayer les pompes de l'aquarium en petite vitesse.J'ai acheté 2 bouquins (Raspberry et python) pour essayer de trouver une astuce,mais sans succès.N'étant pas de la partie j'aurai besoin de conseil pour arriver à mes fins.
Cela fait presque 1 ans que j'ai commencé à bidouiller sur mon PI 2.Pendant mes moments de temps libre j'essaye de faire fonctionner et glaner des infos sur le net pour pouvoir le programmer.
Avec tout les tuto que l'ont trouve sur le net le départ à été assez simple.Démarrage et connexion à internet.
Mon projet est de faire dans un premier temps, fonctionner des servo pour actionner des oscillateurs pour les pompes de mon aquarium.Par la suite essayer de gérer une grosse partie du fonctionnement de celui-ci.Pouvoir regarder lorsque je suis en congés les paramètres et pourquoi pas ajouter une webcam pour jeter un coup d’œil.
Mais, il y a un mais depuis quelque temps je patauge dans le vide.Après avoir acheté une platine Adafruit PCA9685 et suivi le tuto sur Adafruit et chargé git hub (https://github.com/adafruit/Adafruit-Ra ... ython-Code) je n'arrive pas à faire diminuer la vitesse de rotation du dit servo.Je peux augmenter te temps de pose mais je ne peux pas jouer sur le temps de rotation.Je veux que le servo me fasse balayer les pompes de l'aquarium en petite vitesse.J'ai acheté 2 bouquins (Raspberry et python) pour essayer de trouver une astuce,mais sans succès.N'étant pas de la partie j'aurai besoin de conseil pour arriver à mes fins.
Re: BIDOUILLE POUR MON AQUAMED
Alors si les services sont gérer en pwm c'est très simple il faut juste "lisser" le signal
Par exemple si la première position est 0 et la deuxième 100
Par exemple si la première position est 0 et la deuxième 100
Code : Tout sélectionner
Val = 0
Sens = 1
While true:
Val += Sens
If Val >= 100:
Sens = -1
If Val <= 0:
Sens = 1
Utilisation_position(Val)
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: BIDOUILLE POUR MON AQUAMED
Bonjour et merci Manfraid pour cette réponse rapide.
En fait je ne vois pas de quelle manière je dois insérer ce code dans ma ligne de cde ci dessous :
Merci d'avance.
from Adafruit_PWM_Servo_Driver import PWM
import time
# ===========================================================================
# Example Code
# ===========================================================================
# Initialise the PWM device using the default address
pwm = PWM(0x40)
# Note if you'd like more debug output you can instead run:
#pwm = PWM(0x40, debug=True)
servoMin = 150 # Min pulse length out of 4096
servoMax = 600 # Max pulse length out of 4096
def setServoPulse(channel, pulse):
pulseLength = 1000000 # 1,000,000 us per second
pulseLength /= 60 # 60 Hz
print "%d us per period" % pulseLength
pulseLength /= 4096 # 12 bits of resolution
print "%d us per bit" % pulseLength
pulse *= 1000
pulse /= pulseLength
pwm.setPWM(channel, 0, pulse)
pwm.setPWMFreq(60) # Set frequency to 60 Hz
while (True):
# Change speed of continuous servo on channel O
pwm.setPWM(0, 0, servoMin)
time.sleep(1)
pwm.setPWM(0, 0, servoMax)
time.sleep(1)
En fait je ne vois pas de quelle manière je dois insérer ce code dans ma ligne de cde ci dessous :
Merci d'avance.
from Adafruit_PWM_Servo_Driver import PWM
import time
# ===========================================================================
# Example Code
# ===========================================================================
# Initialise the PWM device using the default address
pwm = PWM(0x40)
# Note if you'd like more debug output you can instead run:
#pwm = PWM(0x40, debug=True)
servoMin = 150 # Min pulse length out of 4096
servoMax = 600 # Max pulse length out of 4096
def setServoPulse(channel, pulse):
pulseLength = 1000000 # 1,000,000 us per second
pulseLength /= 60 # 60 Hz
print "%d us per period" % pulseLength
pulseLength /= 4096 # 12 bits of resolution
print "%d us per bit" % pulseLength
pulse *= 1000
pulse /= pulseLength
pwm.setPWM(channel, 0, pulse)
pwm.setPWMFreq(60) # Set frequency to 60 Hz
while (True):
# Change speed of continuous servo on channel O
pwm.setPWM(0, 0, servoMin)
time.sleep(1)
pwm.setPWM(0, 0, servoMax)
time.sleep(1)
Re: BIDOUILLE POUR MON AQUAMED
Salut,
pourrais tu mettre ton code entre les bonne balise pour avoir la bonne identation et que je ne cherche pas les boucles, une fois ceci fait je te ferais l'intégration sans soucis a ton code
pourrais tu mettre ton code entre les bonne balise pour avoir la bonne identation et que je ne cherche pas les boucles, une fois ceci fait je te ferais l'intégration sans soucis a ton code
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: BIDOUILLE POUR MON AQUAMED
Bon j'ai eu le temps de regarder un peu
voici une piste
donc en gros on change la position en permanence en faisant une rampe d'un point a un autre, et la du coup la tempo agit entre chaque position intermédiaire et non plus a la fin d'un mouvement complet.
voici une piste
Code : Tout sélectionner
from Adafruit_PWM_Servo_Driver import PWM
import time
# ===========================================================================
# Example Code
# ===========================================================================
# Initialise the PWM device using the default address
pwm = PWM(0x40)
# Note if you'd like more debug output you can instead run:
#pwm = PWM(0x40, debug=True)
servoMin = 150 # Min pulse length out of 4096
servoMax = 600 # Max pulse length out of 4096
def setServoPulse(channel, pulse):
pulseLength = 1000000 # 1,000,000 us per second
pulseLength /= 60 # 60 Hz
print "%d us per period" % pulseLength
pulseLength /= 4096 # 12 bits of resolution
print "%d us per bit" % pulseLength
pulse *= 1000
pulse /= pulseLength
pwm.setPWM(channel, 0, pulse)
servoPos = ServoMin
servoSens = 1
pwm.setPWMFreq(60) # Set frequency to 60 Hz
while (True):
servoPos += servoSens
If servoPos >= servoMax:
servoSens = -1
If servoPos <= ServoMin:
servoSens = 1
# Change speed of continuous servo on channel O
pwm.setPWM(0, 0, servoPos)
time.sleep(0.1) #Pseudo temps de vitesse
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: BIDOUILLE POUR MON AQUAMED
Super encore merci.
j'essaye cet après midi et te tiens informé.
j'essaye cet après midi et te tiens informé.
Re: BIDOUILLE POUR MON AQUAMED
Hello bonjour
ce matin j'ai essayé de modifier la ligne de commande suivant tes données d'hier.
Ca ne marche pas, j'ai un message d'erreur qui dit :
Traceback (most recent call last) :
File "Servo_Example py" , line 32, in <module>
servoPos += servoSens
NameError:name 'servo Pos' is not defined
Voilà et là je nage et coule doucement dans le fond de mon aquarium et sans bouée.
Help help.
ce matin j'ai essayé de modifier la ligne de commande suivant tes données d'hier.
Ca ne marche pas, j'ai un message d'erreur qui dit :
Traceback (most recent call last) :
File "Servo_Example py" , line 32, in <module>
servoPos += servoSens
NameError:name 'servo Pos' is not defined
Voilà et là je nage et coule doucement dans le fond de mon aquarium et sans bouée.
Help help.
Re: BIDOUILLE POUR MON AQUAMED
L'erreur est simple
le NameError indique que la variable n'existe pas
et l'on vois qu'il y a un espace dans la variable
Code : Tout sélectionner
Traceback (most recent call last) :
File "Servo_Example py" , line 32, in <module>
servoPos += servoSens
NameError:name 'servo Pos' is not defined
et l'on vois qu'il y a un espace dans la variable
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: BIDOUILLE POUR MON AQUAMED
C'est OK ça marche.tu es au top .
Encore merci.
Encore merci.
Re: BIDOUILLE POUR MON AQUAMED
Mais de rien ce fut un plaisir
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.