Page 1 sur 1

gestion BP arret pour raspberry

Posté : jeu. 7 janv. 2016 20:35
par lmgmo
Bonsoir

je souhaite explorer la gestion d'un arret propre d'un raspberry Pi , j'ai trouvé bon nombres d'exemples, mais aucun ne fonctionne, j'ai toujours la même erreur qui apparait.
j'ai bien trouvé des info sur cette erreur mais ma très très petite maitrise de l'anglais ne me permet pas de trouver la solution.
Voici l'erreur

au.py:12: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Traceback (most recent call last):
File "au.py", line 24, in <module>
GPIO.add_event_detect(25, GPIO.FALLING, callback=extinction)
RuntimeError: Failed to add edge detection

Voici le code récupéré ici http://hardware-libre.fr/2013/07/ajoute ... ec-python/

#!/usr/bin/env python2.7

# on importe les modules necessaires
import time
import os
import RPi.GPIO as GPIO

# on met RPi.GPIO en mode notation BCM (numero des pins)
GPIO.setmode(GPIO.BCM)

# on initialise le GPIO 23 en mode ecoute
GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP)

# on definit notre fonction qui sera appelee quand on appuiera sur le bouton
def extinction(channel):
# on affiche un petit message pour confirmer
print("Appui detecte sur le GPIO 25")
# on reinitialise les GPIO
GPIO.cleanup()
# on lance la commande d extinction
os.system('sudo halt')

# on met le bouton en ecoute
GPIO.add_event_detect(25, GPIO.FALLING, callback=extinction)

# on lance une boucle infinie, pour garder le script actif
while 1:
# une petite pause entre chaque boucle, afin de reduire la charge sur le CPU
time.sleep(0.02)

# on reinitialise les ports GPIO en sortie de script
GPIO.cleanup()

merci de votre aide et bonne soirée

Gereard

Re: gestion BP arret pour raspberry

Posté : ven. 8 janv. 2016 08:17
par Manfraid
Salut le message d'erreur est très explicite en python
au.py:12: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Traceback (most recent call last):
File "au.py", line 24, in <module>
GPIO.add_event_detect(25, GPIO.FALLING, callback=extinction)
RuntimeError: Failed to add edge detection

Code : Tout sélectionner

#!/usr/bin/env python2.7

# on importe les modules necessaires
import time
import os
import RPi.GPIO as GPIO

# on met RPi.GPIO en mode notation BCM (numero des pins)
GPIO.setmode(GPIO.BCM)
# Suppression des warning
GPIO.setwarnings(False)

# on initialise le GPIO 23 en mode ecoute
GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP)

# on definit notre fonction qui sera appelee quand on appuiera sur le bouton
def extinction(channel):
# on affiche un petit message pour confirmer
print("Appui detecte sur le GPIO 25")
# on reinitialise les GPIO
GPIO.cleanup()
# on lance la commande d extinction
os.system('sudo halt')

# on met le bouton en ecoute
GPIO.add_event_detect(25, GPIO.FALLING, callback=extinction)

# on lance une boucle infinie, pour garder le script actif
while 1:
# une petite pause entre chaque boucle, afin de reduire la charge sur le CPU
time.sleep(0.02)

# on reinitialise les ports GPIO en sortie de script
GPIO.cleanup()

Re: gestion BP arret pour raspberry

Posté : ven. 8 janv. 2016 09:05
par lmgmo
Bonjour

merci pour cette réponse rapide.

Pour le débutant que je suis , l’erreur n'est pas vraiment évidente, sauf à maitriser l'anglais !
Si je comprends bien en mettant
# Suppression des warning GPIO.setwarnings(False), l'erreur est toujours présente, mais ne bloque plus le système .

je vais testé et je reviens pour un retour sur la manip

Gérard

Re: gestion BP arret pour raspberry

Posté : ven. 8 janv. 2016 17:59
par lmgmo
Bonsoir Manfraid

je viens de tester le code proposé, j'ai la même erreur que précédemment .

Traceback (most recent call last):
File "au.py", line 26, in <module>
GPIO.add_event_detect(25, GPIO.FALLING, callback=extinction)
RuntimeError: Failed to add edge detection

voili voila

Gérard

Re: gestion BP arret pour raspberry

Posté : ven. 8 janv. 2016 18:13
par Manfraid
Essayé ceci dans un autre sxpcriot et donne moi le retour

Code : Tout sélectionner


import RPi.GPIO as GPIO  
a = GPIO.VERSION  
print a


Re: gestion BP arret pour raspberry

Posté : ven. 8 janv. 2016 18:31
par lmgmo
voici le résultat
0.5.11
Gerard

Re: gestion BP arret pour raspberry

Posté : ven. 8 janv. 2016 21:17
par Manfraid
Autre question est tu sus wheezy ou jessyie ?

Re: gestion BP arret pour raspberry

Posté : ven. 8 janv. 2016 22:17
par lmgmo
je suis incapable de te dire si je suis sous wheezy ou jessyie , j'ai fais pas ma d'essai !!
y a t'il une commande pour le savoir ?

depuis j'ai mis a jour le système il y était, sauf le GPIO qui est passé de 0.5.1 à 0.6.1, mais le pb persiste !

j'ai trouvé cela, mais en anglais ... je ne comprends pas tout voici le lien :https://groups.google.com/forum/#!topic ... PeRiNyLXkA

je n'ai pas mentionné, mais j'ai installé un écran Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi qui fonctionne parfaitement. Il y a peut être une incidence avec mon pb.
Mon programme de slider tourne correctement avec la gestion d'un moteur Pas à Pas utilisant d'autre E/S

bonne nuit

Re: gestion BP arret pour raspberry

Posté : jeu. 14 janv. 2016 10:46
par lmgmo
Bonjour

je reviens avec mon Pb pour stopper le raspberry

j'ai installé la version Version: November 2015 Release date: 2015-11-21 Kernel version: 4.1

avec celle-ci j'arrive a faire fonctionner mon programme, je n'ai plus d'erreur, c'est parfait ... enfin prque.

par contre le n'arrive plus a utiliser mon ecran Adafruit PiTFT - 2.8" Touchscreen Display, j'ai une erreur me disant que le serveur X est déjà utilisé !! perdu

Voila c'est le bb

Gérard