Forum >> Programmazione Python >> Scripting >> aiuto programmazione

Pagina: Indietro 1 2 3 Avanti

Riprovato lo sketch con le tue correzioni ma è uguale il risultato. Ho provato anche a usare il debugger è nelle assegnazioni delle librerie riscontra dei problemi cosa può essere?
Allegati
Riprovato lo sketch con le tue correzioni ma è uguale il risultato. Ho provato anche a usare il debugger è nelle assegnazioni delle librerie riscontra dei problemi cosa può essere?
Ciao caro, lo script è corretto e funzionante, anche in console, l'ho testato per sicurezza.

Ti ho suggerito di scrivere lo script in un file e poi eseguirlo, così da rendersi conto di eventuali anomalie.

Prova e fai sapere, sono sicuro che ci riesci.

Intanto ti auguro un buon anno.
Daniele
Cavolo, mi hanno fatto notare che tu lo script lo hai messo in un file, scusa la fretta a volte è cattiva consigliera e credevo fossi nella console interattiva.

L'errore è che nel file non devi mettete >>> davanti alle righe e nemmeno la prima riga d'intestazione, togli tutto.

Aggiusta questi dettagli e vedrai che funziona tutto.

Cya
buona sera, scusate se non vi ho più risposto ma ho seguito il vostro consiglio e adesso funziona tutto, o meglio adesso non ho più errori però utilizzando il sensore di movimento mi resta in stato di segnalazione e non si resetta più. Sapete quale possa essere il problema?? Ho aggiunto anche un time.sleep finale pensando che poi si riavvi ma niente continua a segnalarmi un movimento anche coprendolo. ho provato anche a cambiare pin e sensore ma niente. cosa può essere Grazie in anticipo.
Allegati
adesso non ho più errori però utilizzando il sensore di movimento mi resta in stato di segnalazione e non si resetta più. Sapete quale possa essere il problema?? Ho aggiunto anche un time.sleep finale pensando che poi si riavvi ma niente continua a segnalarmi un movimento anche coprendolo. ho provato anche a cambiare pin e sensore ma niente. cosa può essere Grazie in anticipo.
Ciao caro, ma lo stato del sensore cambia ogni tanto o resta sempre lo stesso, ed ha mai funzionato?

Coprendolo cosa intendi, con le mani? Questo lo percepirà come un movimento, ovviamente, e resterà sempre attivo.

Cya

P.S. L'allegato non so cosa sia, non lo vedo.
P.P.S. Lo sleep finale non serve assolutamente a "resettarlo".
Buona sera, il sensore funziona perché l ho testato anche con arduino. Il problema si verifica quando (con raspberry ) deve attivare un'uscita perché utilizzando lo sketch che scrive su shelll "movimento rilevato" funziona fermandosi e ripartendo quando rileva un movimento ma con un led lo accende e non lo spegne più.
Nel programma ho cambiato print ("movimento rilevato") con GPIO.output (4,GPIO.HIGH).

Per caso manca qualcosa al programma?

Il sensore ho provato sia a coprirlo con una scatola sia lasciandolo rivolto verso un muro.

P.S. Ho provato anche a cambiare pin ma è sempre la stessa cosa.

Grazie in anticipo ;)
Ora che vedo il tuo allegato, mi sembra logico che non vada. Infatti stai sbagliando il concetto alla base dell'applicativo, cioè la gestione del sensore. Se usi un led, ovviamente imposti lo stato di acceso e spento, comandando tu sul suo funzionamento, ma in questo caso devi reagire a quanto propone il sensore, cioè se rileva o meno il movimento.

Scriviamo qualcosa di leggermente diverso e molto minimalista, senza usare gpiozero, voglio farti capire prima il concetto alla base, poi usi altre librerie e/o fai degli esperimenti a tuo piacere:
import RPi.GPIO as GPIO
 
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO_PIR = 24
GPIO.setup(GPIO_PIR,GPIO.IN)

while True:
    i = GPIO.input(GPIO_PIR)
    if i == True:
        print("Trovato movimento")
    else:
       print("Tutto tace")

Quindi DEVI gestire il cambiamento di stato del sensore e non "accenderlo" come se fosse un led.

Cya

Buona sera, mi sembrava che mancava qualcosa :embarrassed: comunque ora ho aggiunto else: GPIO.output(23,GPIO.LOW) ma mi da errore riferito al else. Ho provato a togliere i due punti a spostarlo ma niente continua a darmi errore.Cosa può essere?
poi guardandomi in giro ho trovato la funzione GPIO.cleanup() che da quello che ho capito resetta i pin potrebbe andare bene al posto del else?
comunque ora ho aggiunto else: GPIO.output(23,GPIO.LOW) ma mi da errore riferito al else. Ho provato a togliere i due punti a spostarlo ma niente continua a darmi errore.Cosa può essere?
Ciao caro, posta codice ed errore, così capisco cosa hai fatto.

poi guardandomi in giro ho trovato la funzione GPIO.cleanup() che da quello che ho capito resetta i pin potrebbe andare bene al posto del else?

No, in questo caso non ti serve.

Fammi sapere.

Daniele




Grazie mille per l'aiuto che mi stai dando, questo è lo sketch. buona serata ;)
Allegati


Pagina: Indietro 1 2 3 Avanti



Esegui il login per scrivere una risposta.