• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
tasto spegnimento di 2020 edition accensione guida

Guida: Tasto di accensione/spegnimento 2020 edition
#11
(11/03/2024, 12:04)dackberry Ha scritto: Salve a tutti, una domanda.. come si dovrebbe modificare il progetto se invece di un pulsante, volessi collegare un interruttore?

Non ho provato, ma volendo usare un interruttore anziche un pulsante la riga dovrebbe diventare:
 
Codice:
dtoverlay=gpio-shutdown,active_low=0,gpio_pull=up
Risposta
#12
L'utilizzo di un pulsante prevede un contatto elettrico (chiusura del circuito) momentaneo, al suo rilasio il contatto viene interrotto. Normalmente l'avvio di un processo avviene sui fronti di salita o disesca del livello di tensione applicata al pin. L'interrutore potrebbe anche andare bene se utilizzato per realizzare un contatto elettico momentaneo (simulando il pulsante), ma se lasciato in condizione di contatto normalmente chiuso potrebbe essere visto dal RPi, dopo il boot, come la richiesta di shutdown.
Risposta
#13
Salve a tutti, premetto che le mie conoscenze sono limitate ma ho bisogno di un chiarimento. Anzi due.
Nel caso volessi utilizzare un pulsante momentaneo con led luminoso, se ho capito bene per l'avvio/spegnimento utilizzo i PIN 5 e 6 ma per il led quali PIN uso? E se avessi i PIN 5 e 6 occupati dai collegamenti con il Display ufficiale da 7"?
Grazie
Risposta
#14
Per il led puoi usare i pin che vuoi, uno programmabile da portare a livello logico 1 (3,3V con uno script che lancerai all'avvio= e un GND.
Purtroppo, come scritto nella guida, questo sistema è più comodo dei precedenti, ma ha dei limiti: se è abilitato I2C, funzionerà l'accensione, ma non lo spegnimento con lo stesso pulsante.
puoi usare un secondo pulsante, per lo spegnimento, da collegare a altro pin programmabile (non il3) usando lo script pthon proposto nella guida (a cui andrà cambiato il 3 nella riga
Codice:
shutdown_btn = Button(3, hold_time=2)
con il numero corrispondente al GPIO a cui collegherai il secondo pulsante.
per usare l'accensione anche con il display ufficiale collegato con i pin al GPIO, dovrai per forza di cose collegarli entrambi: o unisci i fili o ci sono sdoppiatori di GPIO.
Risposta
#15
Grazie della risposta. Il mio è un progettino semplicissimo di uno streamer audio con un display, che non deve necessariamente essere quello ufficiale da 7", che vorrei accendere con un pulsante. Per lo spegnimento non ho problemi perché lo spengo direttamente dall'interfaccia web del player che utilizzerò (credo Picoreplayer) quando smetto di ascoltare musica.

Quindi in sostanza vediamo se ho capito. Con i contatti switch del pulsante cortocircuito i pin 5 e 6 così da avviare il boot. E sono a posto così.  Per il led del pulsante vado in config.txt e setto un PIN qualunque come uscita alta e collego contatti del LED del pulsante a questo PIN e a GND. Giusto? Per non sbagliare saresti così gentile da dirmi il comando corretto? Ho trovato diverse guide in rete ma da niubbo quale sono....
Grazie
Risposta
#16
Non proprio, per l'accensione comandata di un qualunque LED all'accensione del Pi è necessario realizzare un piccolissimo programma che parte in esecuzione automatica dopo il boot.
Risposta
#17
esatto, non da config.txt
Te lo spiego divagando dall'argomento principale della discussione. Nel caso servissero approfondimenti su come lanciare uno script o un programma all'avvio, apri pure una discussione dedicata (le preesistenti sono datate e specifiche per dei progetti).

prima crei uno script che attiva un pin (a cui collegherai il LED del pulsante, eventualmente con una resistenza in serie da 330 Ohm per limitare la corrente che transita nel LED, se non è già incorporata), E poi configurerai il sistema per fare in modo che lanci all'avvio il tuo programma

per farlo esistono un milione di modi,  vediamo un esempio:

PROGRAMMA/SCRIPT
colleghiamo il LED così (a Raspberry Pi spento):
[Immagine: led_bb.svg]

Il programma puoi scriverlo nel linguaggio che vuoi, bash, python, anche scratch, ecc. Qui, vediamo un esempio in Python:
un file di testo:
Codice:
#!/usr/bin/python
from gpiozero import LED            #importo la classe LED dalla libreria gpiozero
spia = LED(17)                                    # assegno all'oggetto LED spia il pin GPIO 17 ( o altro al quale e collegato)
spia.on                                                  # accendo la spia
questo script andrà chiamato con un nome con estensione .py (Pthon) ad esempio led_accensione.py


ora digitando da Terminale
Codice:
python led_accensione.py
il LED si accenderà- Attenzione che lo troverà sol ose sei nella stessa directory, quindi è meglio sempre usare il percorso assoluto, ad esempio /home/nomeutente/led_accensione.py se lo script si trova nella home del tuo utente.

ESECUZIONE DI UN PROGRAMMA ALL'AVVIO
Anche per fare questo ci sono molti modi diversi, vediamone uno:
Uso di rc.local
rc.local è un file di testo che è un po' la "lista della spesa" che il sistema (l'utente root in realtà) legge all'avvio e esegue in sequenza, prima di lanciare l'interfaccia grafica (se c'è).

Per andare a editare questo file di testo, useremo sempre il Terminale e la linea di comando: digitiamo
Codice:
sudo nano /etc/rc.local
cioè usiamo l'editor di testo "nano" per aprire il file rc.local nella directory /etc
Si aprirà un breve testo.
Dobbiamo scendere e inserire subito sopra la riga "exit 0" il nostro comando, ad esempio, assumendo il percorso di prima:
Codice:
python /home/nomeutente/led_accensione.py
Ora premiamo CTRL+X per uscire da nano, S per confermare e INVIO per mantenere lo stesso nome del file.
ecco, ora, riavviando, il programma Python verrà eseguito all'avvio, accendendo il LED
Risposta
#18
Grazie infinite. Appena mi arriva il Pi seguirò queste indicazioni. Prima di chiedere qui avevo fatto delle ricerche e avevo trovato questo 3D https://forum.openmarine.net/showthread.php?tid=3820. Qui si parla proprio del tipo di pulsante che ho in mente. Ed è qui che avevo letto, evidentemente interpretando male, che si potesse configurare il PIN che alimenta il led da config.txt.
Risposta
#19
Si, si può fare anche così, evidentemente, non è il metodo più ortodosso e non so se funziona con le versioni recenti dell'OS.. COme detto ci sono moltissimi modi per fare le cose..
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect