jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Wed Aug 05, 2015 10:04 pm

Bonjour,

J'essaie d'installer un capteur de mouvement sur mon Raspberry pi 2.

Quand je lance le script python ci-dessous, je n'ai que des alertes ! Le capteur semble détecter des mouvements constamment alors qu'il n'y a rien.

Code: Select all

import time
import RPi.GPIO as io
io.setmode(io.BCM)
 
pir_pin = 18
 
io.setup(pir_pin, io.IN)
 
while True:
    if io.input(pir_pin):
        print("PIR ALARM!")
    time.sleep(0.5)
J'ai testé en scrutant le port GPIO via les commandes wiringPi suivantes :

Code: Select all

gpio mode 1 in
gpio read 1
et le résultat est bien "0" puis se met à "1" dès que je passe la main devant.

J'ai donc visiblement un problème avec python ou avec la librairie RPi.GPIO.
J'ai bien tenu compte du fait que :
- le pin numéro 12 correspond au pin BCM n°18
- le pin numéro 12 correspond au pin wiringPi n°1

Quelqu'un peut-il m'aider ou m'expliquer pourquoi en python, je vois toujours le port sur "1" ?

Merci à tous pour votre aide !

totoharibo
Posts: 4152
Joined: Thu Jan 24, 2013 8:43 am

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Thu Aug 06, 2015 6:53 am

on peut voir les alertes ?
python ne parle pas pour ne rien dire : il faut l'écouter.
c'est sans doute très intéressant.

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Thu Aug 06, 2015 7:45 am

En fait quand je parlais d'alertes, c'était un abus de langage.
Mon script python est codé pour afficher "PIR ALARM" dès qu'un mouvement est détecté. Or, je reçois constamment "PIR ALARM" alors qu'il n'y a aucun mouvement.

Le plus étrange est que lorsque je teste l'état du pin avec wiringPi, à fonctionne très bien ("0" quand il n'y a pas de mouvement et "1" dès que qqch est détecté).

Merci encore pour ton aide !

i-zerocool
Posts: 98
Joined: Tue Oct 02, 2012 10:27 am

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Thu Aug 06, 2015 9:15 am

peut être que l'état du pin est incertain (pin en "l'air")...

essayes de mettre une résistance en pulldown comme ici (à la place du push button, c'est ta sortie de capteur)
Image

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Thu Aug 06, 2015 10:25 am

Merci !

Désolé mais je débute un peu en électronique.

Qu'est-ce qu'une résistance pull down?

i-zerocool
Posts: 98
Joined: Tue Oct 02, 2012 10:27 am

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Thu Aug 06, 2015 12:19 pm

comme le schéma l'indique: une résistance mise à la masse.

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Thu Aug 06, 2015 3:55 pm

Donc une résistance pull-down, c'est juste une résistance intercalée entre la masse et le 5V ?

JumpZero
Posts: 946
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Thu Aug 06, 2015 4:01 pm

Bjr,
Tu peux aussi utiliser l'option pullup ou pulldown.
Ainsi pas besoin du résistance physique.
--
Jmp0

jareczek
Posts: 170
Joined: Tue Jul 23, 2013 2:45 pm
Location: Auvergne

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sat Aug 08, 2015 11:43 am

jeremy_fritz wrote:Donc une résistance pull-down, c'est juste une résistance intercalée entre la masse et le 5V ?
Non, entre I/O et 0V.
Sauf erreur ou omission . . .

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sat Aug 08, 2015 9:54 pm

Bonsoir,

Merci à tous pour votre aide.
Je me suis bien renseigné sur les pull-down et pull-up resistors. J'ai utilisé la pull-down resistor interne du Raspberry pi mais ça ne fonctionne toujours pas...

Pour essayer de débugger tout ça, j'ai essayé tout simplement d'allumer une LED en utilisant le code suivant, lancé en sudo :

Code: Select all

#Import des bibliotheques
import RPi.GPIO as GPIO
import time

#Configuration
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)

# Demarrage
print("Allumage de la LED")
GPIO.output(18,True)
time.sleep(5)
print("Extinction de la LED")
GPIO.output(18,False)
time.sleep(5)
GPIO.cleanup()
Mais ça ne fonctionne toujours pas...
Alors je teste avec wiringPi la commande suivante (avec l'option "-g" pour utiliser la configuration BCM au lieu de celle de wiringPi) :

Code: Select all

sudo gpio -g write 23 1
Et ça marche !

J'en déduis que je dois avoir un problème avec python ou directement la bibliothèque RPi.GPIO...

J'ai pourtant essayé une MAJ mais rien n'y fait...

Là, j'avoue être un peu perdu...

Est-ce que quelqu'un a une idée ?

Merci beaucoup !

totoharibo
Posts: 4152
Joined: Thu Jan 24, 2013 8:43 am

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sat Aug 08, 2015 10:12 pm

gpio en ligne de commande n' a pas beoin de sudo.

essaie gpio readall pour l'état de tes I/O

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sat Aug 08, 2015 10:14 pm

merci,

J'ai essayé gpio readall après mes commandes en python.
L'état du PIN reste désespérément à 0...

JumpZero
Posts: 946
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sun Aug 09, 2015 9:26 am

Bjr,
Je réponds a ton problème de GPIO en input tjrs a 1 (ou 0). Et non pas a ton dernier code posté ou tu utilises le gpio en sortie (output).
Il s'agit d'un problème classique ton entrée flotte car elle n'est connectée a rien.
Ceci est très bien décrit dans la doc de rpi.gpio:
http://sourceforge.net/p/raspberry-gpio ... ki/Inputs/
Dans cette même doc tu trouveras aussi comment utiliser les résistances de pullup/pulldown internes du raspberry pi.
GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Tu as aussi un exemple ici:
http://raspi.tv/2013/rpi-gpio-basics-6- ... pull-downs
Ce n'est qu'un exemple parmis d'autres que l'on peut trouver sur le web en cherchant avec les mots clef:
raspberry pi gpio input soft pullup
Tu dois comprendre le fonctionnement suivant:
si par exemple on raccorde un interrupteur entre le GND (le 0V) et un gpio
on configure ce gpio en input
si l'on n'a pas de pullup l’état logique sera indéterminé. Il flotte quelque part entre le 0 et le 1.
si l'on met un pullup (reel ou interne = hard ou soft) quand l'interrupteur n'est pas actionne le gpio est tiré vers le haut (pullup vers le 3.3V), le gpio est donc a l’état logique 1. Si l'on appui sur l'interrupteur (ferme le contact) le gpio sera au niveau de la masse ( = GND, = 0V) il sera alors a l’état logique 0.
A noter que le même montage est possible en raccordant l'interrupteur entre le gpio et le 3.3V et en utilisant une résistance de pulldown.
--
Jmp0

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sun Aug 09, 2015 9:36 am

Merci jmp0 !

C'est très clair.
Dans mes recherches précédentes, j'étais déjà tombé sur les sites que tu indiques.

Malgré cela, mon problème reste entier : je n'arrive pas à manipuler l'état (1 ou 0) via la bibliothèque RPi.GPIO.

Les ports ne sont pas morts puisqu'en le faisant via wiringPi, ça marche.
Le composant n'est pas mort non plus puisque je n'arrive pas à allumer de LED via la librairie RPi.GPIO.

Je pense que j'ai vraiment un problème dans l'utilisation de cette librairie mais je n'arrive pas à voir où...

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sun Aug 09, 2015 3:09 pm

Je continue mon diagnostic...

- Essai sur un RPi différent : j'ai essayé d'allumer la même LED sur un raspberry pi différent (même modèle, càd Raspberry pi 2) avec une nouvelle installation (carte SD différente mais même distrib). Ca fonctionne !
- Essai sur un RPi différent avec la même carte SD : j'ai mis la carte SD initiale (celle où j'ai tous mes scripts) dans le 2ème Raspberry pi. Ca ne fonctionne pas... Quand je lance le script, quel que soit le port GPIO utilisé, il me dit :

Code: Select all

GPIO-intro-script-1.py:4: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(7, GPIO.OUT) ## Setup GPIO pin 7 to OUT
Tout m'amène à penser qu'il y a vraisemblablement un problème avec python ou avec ma distribution d'une façon ou d'une autre...

Est-ce que quelqu'un peut m'aider à découvrir l'origine du problème ? Là je commence vraiment à ne plus savoir où chercher...

totoharibo
Posts: 4152
Joined: Thu Jan 24, 2013 8:43 am

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sun Aug 09, 2015 3:31 pm

pour les ports GPIO certains numéros ont changé suivant les versions de cartes.
comparer les version de carte B B+ entre autre
GPIO n° : 0 1 2 3 21 27
à voir

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sun Aug 09, 2015 3:43 pm

Merci.

En fait j'utilise 2 Raspberry pi 2 donc les cartes sont les mêmes.

J'ai aussi fait un "gpio readall" pour vérifier le numéro BCM.

JumpZero
Posts: 946
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sun Aug 09, 2015 6:12 pm

Bonsoir,
"This channel already in use"
Ce message est clair sur cette première carte SD tu as du activer/installer un programme qui utilise les gpio et empêche donc la bibliothèque Python d’accéder au hard (il est probablement verrouillé: locked)
Si tu n'as rien d'important sur cette carte, recommence avec une install fraiche de Raspbian. Le + simple a mon avis.
Sinon essaies de trouver, n'as tu pas un autre gestionnaire de gpio lancé au boot?
wiringpi reste actif? (je ne connais pas wiringpi)
la commande 'ps aux' liste tous les process en cours, tu peux comparer les process des 2 cartes SD, bon c'est juste des pistes...
--
Jmp0

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Sun Sep 27, 2015 1:04 am

J'ai finalement "résolu" le problème en réinstallant raspbian...

Ce n'est pas vraiment une solution mais j'imagine que j'ai dû casser quelque chose sans savoir comment.

Raboxer
Posts: 1
Joined: Thu Oct 22, 2015 4:11 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Thu Oct 22, 2015 4:14 pm

jeremy_fritz : J'ai le meme probleme que toi comment faire s'il te plait?

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Problèmes avec Rpi.GPIO : le pin est toujours lu à "1" !

Fri Oct 23, 2015 6:17 am

Bonjour,

La réponse est indiquée juste au-dessus :)

Return to “Français”