Questo forum utilizza i cookies
Questo forum fa uso di cookie per migliorare l'esperienza utente. I cookie sono piccoli file di testo memorizzati sul tuo browser. I cookie impostati dal forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza, vengono utilizzati unicamente per memorizzare le tue preferenze. Navigando sul sito accetti che RaspberryItaly installi i cookie sul tuo browser.
Per maggiori informazioni consulta l'informativa sui Cookie di RasberryItaly

Un cookie verra memorizzato nel browser indipendentemente dalla scelta per evitare che questa domanda ti venga posta di nuovo. Sarai in grado di modificare le impostazioni dei cookie in qualsiasi momento utilizzando il link nel footer.
  • 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: 2 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect