BIDOUILLE POUR MON AQUAMED

De l'aquarium à la piscine en passant par l'arrosage du massif de fleurs et la photo ultra-rapide de gouttes qui tombent, le Raspberry Pi peut tout faire...

Modérateur : Francois

Répondre
sergueï
Messages : 6
Enregistré le : mar. 2 févr. 2016 16:43

BIDOUILLE POUR MON AQUAMED

Message par sergueï » mar. 2 févr. 2016 19:34

Voilà j'ai déplacé ma demande après avoir fait les présentations. :P
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.

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

Re: BIDOUILLE POUR MON AQUAMED

Message par Manfraid » mer. 3 févr. 2016 07:03

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

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.

sergueï
Messages : 6
Enregistré le : mar. 2 févr. 2016 16:43

Re: BIDOUILLE POUR MON AQUAMED

Message par sergueï » mer. 3 févr. 2016 09:27

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)

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

Re: BIDOUILLE POUR MON AQUAMED

Message par Manfraid » mer. 3 févr. 2016 09:37

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
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
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: BIDOUILLE POUR MON AQUAMED

Message par Manfraid » mer. 3 févr. 2016 11:18

Bon j'ai eu le temps de regarder un peu

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
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.
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.

sergueï
Messages : 6
Enregistré le : mar. 2 févr. 2016 16:43

Re: BIDOUILLE POUR MON AQUAMED

Message par sergueï » mer. 3 févr. 2016 11:35

Super encore merci.
j'essaye cet après midi et te tiens informé.

sergueï
Messages : 6
Enregistré le : mar. 2 févr. 2016 16:43

Re: BIDOUILLE POUR MON AQUAMED

Message par sergueï » jeu. 4 févr. 2016 10:43

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.

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

Re: BIDOUILLE POUR MON AQUAMED

Message par Manfraid » jeu. 4 févr. 2016 11:05

L'erreur est simple

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
le NameError indique que la variable n'existe pas

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.

sergueï
Messages : 6
Enregistré le : mar. 2 févr. 2016 16:43

Re: BIDOUILLE POUR MON AQUAMED

Message par sergueï » mar. 9 févr. 2016 10:44

C'est OK ça marche.tu es au top .
Encore merci.

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

Re: BIDOUILLE POUR MON AQUAMED

Message par Manfraid » mar. 9 févr. 2016 10:48

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.

Répondre

Retourner vers « Que d'eau, que d'eau ! »