• 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: 3 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect