• 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
rpi3 spegnimento momentary dac quot accensione per pulsante

Pulsante "momentary" per accensione/spegnimento RPI3 + DAC
#1
Buona sera al forum
Sto costruendomi un network streamer HiFi basato su un RPI3 e un HifiBerry DAC PRO+. Ho una schedina Mausberry, che dovrebbe gestire le fasi di accensione e spegnimento del sistema, pilotabile con un momentary button (con LED blu a 3V). Per un pò ha funzionato, poi complice una errata saldatura (ho dovuto dissaldare e poi risaldare un connettore femmina perchè il filo "scappava" sempre essendo troppo basso) , la schedina non "sente" più la chiusura del circuito e quindi non è più in grado di far partire il Raspy.

Cercando qui sul forum ma anche su altri, ho visto che potrebbe esserci una soluzione, sulla quale però pesano due interrogativi.
La soluzione sarebbe quella di connettere C e NO del pulsante ai pin fisici 5 (GPIO2) e 6 (GND) del raspy. Premendo il pulsante, e quindi chiudendo il circuito, si dovrebbe far partire il raspy (che deve comunque essere alimentato, e quindi bisogna almeno una volta accenderlo e poi spegnerlo con uno shutdown da SSH o altro, lasciando inserita la microUSB).
Al boot, in rc.local (o in init.d) viene fatto partire uno script python che aspetta un cambio stato del GPIO2, e se lo rileva fa partire "shutdown -h now". Il Raspy dovrebbe andare giù, rimanendo alimentato e pronto a ripartire alla successiva pressione del pulsante.

Ecco i riferimenti:
Link1
Link2


Fin qui potrebbe anche funzionare.....

Problema 1
Posizionato sopra il Raspy ho un DAC PRO+, che usa (insieme ad altri) il GPIO2 per la sua configurazione (quindi non viene usata per gestire il flusso audio o altro). Andrebbe in conflitto? Il suo utilizzo per l'accensione non credo, è proprio l'innesco che fa partire il tutto, e il DAC non è sicuramente ancora "running". Per lo spegnimento, detto che lo script sarebbe in attesa di un cambio stato dello stesso GPIO, a naso anche qui non dovrebbe avere problemi. Lo intercetto e , DAC o non DAC, faccio lo shutdown.
Fra l'altro, avevo fatto qualche esperimento (senza sapere di questi possibili conflitti) con un Display LCD I2C, che guarda caso usa proprio il pin 5 per il canale SCL, e non mi ha dato problemi usandolo ovviamente insieme al DAC.....

Dal sito HiFiBerry..
https://www.hifiberry.com/build/document...ry-boards/
Vedere controindicazioni?
Problema 2
Il pulsante ha un bel led blu da 3V. Per accenderlo, usando la schedina Mausberry, basta connettere i due connettori + e - dello stesso ai due pin relativi sulla schedina. Volendo fare in modo che il Led si accenda subito dopo averlo premuto per lo startup, e si spenga alla successiva pressione che scatena lo shutdown, come posso collegarlo al raspy? Io pensavo in due modi, ma non so quale sia il migliore e il più sicuro (o meno pericoloso per il raspy o per il pulsante)

1) connetto il + al pin 01 della board (3.3V) e il - a una qualunque GND. Premendo, chiudo il circuito, il raspy parte ...e immagino che i 3.3V siano resi immediatamente disponibili sulla board, accendendo il LED. Se premo di nuovo, quando va a 0 la tensione sul pin 1, spegnendo il led? Subito dopo o alla fine della procedura di shutdown? In questo modo, comunque, essendo il led a 3V e dandogliene 3.3... si potrebbe bruciare?

2) connetto il + ad un GPIO libero (es GPIO13) , e ovviamente il - sempre a un GND. Nello script di partenza, lo stesso che poi va in loop in ascolto sul pin 5 GPIO2, imposto GPIO13 come output, lo tiro su, e accendo il LED. Quando intercetto il cambio stato sul GPIO2, prima di fare shutdown, tiro giù il GPIO13 e spengo il LED. Di nuovo, problemi con le tensioni/correnti?

Grazie a chi mi vorrà aiutare!!!
Andrea
Risposta
#2
Ciao,
Mi sembra tutto più complicato del dovuto.
Raspberry ha dei pin (in realtà delle piazzole, perchè non popolate da pin) apposite per dare i lcomando di accensione (o di reset, se già acceso) tramite pulsante, e sono quelle denominate P6 o RUN, a seconda del modello. Usando quello, non serve nessuno script per accendere.
Permettimi di dirti che non hai cercato molto bene: le guide e gli articoli sono sul blog, e lì ci sono ben 2 guide dedicate all' argomento:
https://www.raspberryitaly.com/pulsante-...egnimento/
https://www.raspberryitaly.com/connettor...neriavvio/

Cerrto, questa soluzione, senza aggiungere dell' elettronica, comporta l'utilizzo di due pulsanti diversi, uno per accendere  il Raspberry e uno per spegnerlo.
Quello di spegnimento lo puoi collegare a qualsiasi pin programmabile tu voglia, poi con uno script Phyton semplicissimo, puoi inviare il comando di shutdown quando tieni premuto quel tasto per (esempio) 3 secondi.:
Codice:
from gpiozero import Button
from subprocess import check_call
from signal import pause

def shutdown():
   check_call(['sudo', 'poweroff'])

shutdown_btn = Button(17, hold_time=3)
shutdown_btn.when_held = shutdown

pause()
(qui l'esempio è con GPIO17)
i GPIO 2 e 3 sono quelli relativi al bus I2C, e il bus ti serve, per far funzionare il DAC. sciocco usarli per altro, quando hai altri 38 pin..

Il tasto lo puoi usare per il P6/run (C e NO) e comandare il led dallo sript di spegnimento, collegandolo a un GPIO libero, invece che al +3,3 fisso (la luce si accenderà quando lo script viene lanciato, cioè quando il sistema ha fatto il boot (ti dà anche questa indicazione, direi utile) e si spegne quando si spegne il Raspberry.
in tal caso, lo script (da mettere in avvio automatico) sarà:
[code]
from gpiozero import Button
from gpiozero import LED
from subprocess import check_call
from signal import pause

def shutdown():
   check_call(['sudo', 'poweroff'])

acceso = LED(27)
acceso.on()

shutdown_btn = Button(17, hold_time=3)
shutdown_btn.when_held = shutdown

pause()
[code]
Per andare sul sicuro e non rischiare di bruciare il LED, metti in serie tra il pin e il led una resistenza da 120 Ohm o più (più è alta, ovviamente, più la luce sarà debole)
Risposta
#3
Anzitutto grazie per la esauriente risposta.
I due tutorial li avevo visti, ma scartati perchè devo usare un solo pulsante per accensione e spegnimento, e quindi cercavo qualcos'altro. Se non ci sono alternative , prenderò un'altra schedina Mausberry....

grazie
A.
Risposta
#4
Per usare un solo tasto, o lo lasci acceso a monitorare il GPIO (e allora tanto vale lasciarlo acceso h24, è sempre pronto, non rischi corruzioni della SD, e il consumo annuo è di 5 euro circa) oppure ci aggiungi dell'elettronica.
Personalme ne ho un paio accesi h24, vengono molto comodi perché possono fare anche da server per altro.
Risposta
  


Vai al forum:


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