• 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
sviluppo presepe sistema luci e suoni per

Sviluppo sistema luci e suoni per presepe
#1
Buongiorno, da questa discussione, è nata l'idea di creare un sistema che possa comandare gli eventi di un presepe, luci, suoni, movimenti ecc.

Per migliore visibilità e minor confusione, creo una discussione apposita per questo "spin-off", in modo che si possa discuterne lo sviluppo.
Parto mettendo il post di tiziano.capecci che descrive quello che vorrebbe nel suo presepe:
Citazione:mi sono un po' informato a proposito di come le centraline classiche funzionano.  Generalmente hanno 4 uscite per luci: giallo/giorno, blu/notte, rosso/tramonto-alba e bianco per luci/stelle.
Queste si intervallano a ritmi regolari e, durante il passaggio dall'una all'altra, si sovrappongono. Per cui io credo che dovrebbe essere abbastanza semplice realizzare tramite Raspi 4 uscite che forniscono il giusto voltaggio a 4 rispettive strisce di led dei diversi colori.  In poche parole, si dovrebbe programmare in Python in codice che comanda le uscite grosso modo così:
uscita 1 - striscia a led giallo o bianco caldo - parte da 100% di potenza e va scemando fino a 0% diciamo in un time-lapse di 3min ad es.  Rimane statico per diciamo 4-5min
uscita 2 - striscia a led blu - parte da 0% poco prima che la uscita 1 finisca il ciclo, fino a raggiungere il 100% in altri 3 min. Rimane statico per diciamo 4-5min
uscita 3 - luci bianche-stelle - stesso listato della uscita 2.
uscita 4 - striscia a led rossi - parte da 0% fino a raggiungere il 100% nei 3 min classici - contemporaneamente, diciamo dopo 1 min ca. di questo cielo - la uscita 2 (blu) inizia il fading da. 100% verso lo 0% in 3 min. idem per uscita 3 -
30sec prima che il ciclo dell'uscita 4 termini, la uscita 1 inizia un nuovo ciclo che la porterà dallo 0% al 100% nei soliti 3min.

Se non ho sbagliato i tempi e se le luci corrispondono più o meno alla realtà, questo è tutto.

Naturalmente l'effetto delle luci sul presepe va testato in anticipo per vedere se effettivamente i punti luce, le intensità e i colori soddisfano il progetto.

che ne pensi?

La mia intenzione è di creare un sistema modulare partendo dagli ottimi spunti che ci ha fornito, in cui tutti i parametri siano presenti in un file di configurazione, e ognuno possa abilitare o meno un determinato "modulo" software impostandone i vari parametri per adattarli alla sua situazione (o se vuole lasciare quelli di default).
Ognuno si senta libero di dare il proprio contributo o idee.
Intanto il nome, io ho pensato a PreZepe.
Risposta
#2
Intanto, la struttura.
- un file Json con i parametri di configurazione dei vari moduli (l'utente potrà usare il programma editando solo questo file, magari tramite una interfaccia web)
- un programma principale in Python che importerà la configurazione e richiamerà i moduli
- i vari moduli che si occuperanno di un compito specifico: ad esempio: PZ_Luci_Alba_RGB, PZ_Luci_Alba, PZ_Luci_Tramonto ecc

Io ho pochissimo tempo e non ho mai usato una soluzione come questa, quindi è possibile che impieghi un anno a tirare fuori qualcosa di utilizzabile, non siate timidi nel dire la vostra opinione/soluzione.

Esempio di file JSON:

Codice:
{   "Tramonto_RGB": [           {               "active" : 1               "R_pin": 17,               "G_pin": 22,               "B_pin": 24,               "initial_R": 1,               "initial_G": 1,               "initial_B": 1,               "final_R": 0,               "final_G": 0,               "final_B": 0,               "duration": 180,               "pause": 300           }       ]     "Alba_RGB": [           {               "active" : 0               "R_pin":26,               "G_pin":28,               "B_pin": 30,               "initial_R": 0,               "initial_G": 0,               "initial_B": 0,               ..........................       ]  }

Esempio di modulo:
luci_RGB.py
Codice:
import json from gpiozero import RGBLED from time import sleep def simula_tramonto(config_file): # Carica i valori dal file json with open(config_file, "r") as f: config = json.load(f) # Prendi i parametri relativi a "PZ_Tramonto_RGB" sunset_config = config["PZ_Tramonto_RGB"][0] # controllo se active è 1 if sunset_config["active"] == 1: # Crea l'oggetto RGBLED usando i pin specificati nel file json led = RGBLED(sunset_config["R_pin"], sunset_config["G_pin"], sunset_config["B_pin"]) # Imposta i valori RGB iniziali led.red = sunset_config["initial_R"] led.green = sunset_config["initial_G"] led.blue = sunset_config["initial_B"] # Calcola i valori di incremento per ogni colore red_step = (sunset_config["final_R"] - sunset_config["initial_R"]) / sunset_config["duration"] green_step = (sunset_config["final_G"] - sunset_config["initial_G"]) / sunset_config["duration"] blue_step = (sunset_config["final_B"] - sunset_config["initial_B"]) / sunset_config["duration"] # Esegue il ciclo per simulare il tramonto for i in range(sunset_config["duration"]): led.red += red_step led.green += green_step led.blue += blue_step sleep(1) # Attende il tempo specificato led.off() sleep(sunset_config["pause"]) else: print("Il tramonto è disattivato")  


Esempio di programma principale con chiamata:
Codice:
from luci_RGB import simula_tramonto #... il codice del programma principale, con la schedulazione degli eventi ecc config_file = "config.json" simula_tramonto(config_file)
Risposta
#3
Molto bene e interessantissimo.    Visto però che io sono praticamente un neofita per quanto riguarda Raspi e CPIO, mi è sorto un dubbio e scusate se magari è una domanda stupida.  Ma, è possibile poi gestire le strisce di led a 12V dal raspi che, se non sbaglio, lavora a 5V a 500mA?  Non è che poi mi trovo ad affrontare problemi come questo? problema con raspi & led stripes
Risposta
#4
La domanda non è per nulla stupida, tanto che io non so bene la risposta, non avendo mai comandato LED da illuminazione con Raspberry.
Dipende dal tipo di strisce che si utilizza.
non è in genere un problema se sono alimentate a tensione diversa: ci sarà un alimentatore che le alimenta, non saranno alimentate direttamente da Raspberry Pi, ma solo controllate da esso (può farlo tramite relè se on/off, tramite controller o mosfet se PWM, o tramite l'apposito pin se a led indirizzabili digitalmente come le ws2801 e simili).
l'idea era di creare più "moduli" software (da richiamare come funzioni all'interno di librerie create ad hoc, per chi parla il Pythonese) adatti a ogni tipologia. in modo che ognuno possa utilizzare il modulo software adatto a comandare le luci che possiede.

PS: l'idea è di sviluppare lo stesso progetto anche per Raspberry Pi Pico, molto adatto a soluzioni di questo tipo, molto economico e piccolo e molto più facile da trovare in vendita al prezzo di listino rispetto a un computer Raspberry Pi.
Risposta
#5
Ciao,. E se chiedessimo il supporto di ChatGPT?  Sarebbe fattibile?
Risposta
  


Vai al forum:


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