Per gli amanti
dell'elettronica entriamo più in dettaglio nella parte tecnica...
L' Hardware e' realizzato intorno a due cestelli che ospitano
tutte le schede d'interfaccia.Il tutto dialoga con il PC tramite la porta
parallela.
I dati ricevuti dalla parallela vengono multiplexati su un bus a 16 bit che a sua volta
indirizza e comanda tutte le schede. Queste schede sono realizzate su piastre mille buchi
con la tecnica del "wire wrapping".
Alcune di loro sono gestite da microprocessore.
Il sistema è alloggiato in un mobiletto metallico per computer e può
indirizzare (teoricamente, spazio permettendo) fino a 255 schede d'interfaccia.
Il nuovo
software di controllo, che gira sotto Windows, ha richiesto la
sostituzione del vecchio PC inserito nel cabinet, visibile nelle
foto, con un'altro più recente e potente situato esternamente.
Il vecchio software, scritto in QB, C e moltissimo Assembler,
girava sotto DOS e riusciva a gestire benissimo tutto il
sistema.
Però, ogni volta che dovevo metterci le mani per aggiungere o
modificare qualcosa, se ne andava via tanto tempo.
Anche se
largamente commentato, mettere le mai su un programma scritto in
Assembler molto tempo prima è una cosa pazzesca.
Per questa ragione e perché nella vita bisogna sempre
migliorare, è nata
l'esigenza di riscrivere un software più potente ed elastico,
che possa anche in seguito integrarsi perfettamente con
l'evoluzione dell'hardware.
Maggiori informazioni sul vecchio software si possono trovare nella
vecchia pagina.
Il
software è abbastanza complesso
Sono passati 13 anni dalla stesura
del primo programma, era infatti il 1994.
In quel tempo la velocità dei computer non era assolutamente da paragonare
a quella attuale. La prima versione del sistema era basata su un PC con processore 286 a 16 MHz.
Fu scartato il sistema operativo Windows per la sua
lentezza e fu scelto di usare il DOS.
Proprio per la lentezza del processore molta parte del
vecchio software fu fu scritta in linguaggio ASSEMBLER. Si
riusciva così ad avere negli effetti la precisione del millesimo di
secondo. Per maggiori informazioni, consiglio di leggere la
vecchia
pagina.
Il nuovo programma gira sotto Windows, non ha più i limiti del
vecchio software e possiede molti tools che rendono l'utilizzo più
pratico.
Descrizione:
Il
nuovo software è diviso principalmente in tre sezioni:
La gestione degli Eventi
Il Debugger
Il Programma Operativo
La gestione degli
Eventi:
Si possono creare infinite Giornate
diverse.
Ad esempio, un giorno nevica e l'altro piove.
Gli Eventi sono appunto (scusate il gioco di parole) degli
eventi che si verificano nell'arco della Giornata.
L'apparizione della Cometa è un Evento, il suo movimento è
un'altro Evento.
Altri esempi di Evento sono la comparsa e la scomparsa
dell'Arcobaleno.
Il Temporale con lampi e tuoni sincronizzati è un'altro
Evento di tipo Audio Sincronizzato, un pochino più complesso degli
altri.
Merita una discussione a parte.
Schermata iniziale del
software per la gestione
degli Eventi
Gli Eventi sono divisi in quattro categorie:
Evento Step, Evento Dissolvenza, Evento
Motore e Evento Audio.
L'Evento Audio è a sua volta suddiviso in:
Evento Audio Normale e Evento Audio Sincronizzato.
Finestra
dell'Evento Step:
L'Evento Step
permette di programmare i Canali con una determinata
sequenza al di fuori del normale svolgimento del programma
stesso.
La nevicata è un esempio di questo Evento.
Altri esempi sono:
l'apertura di una porta, non presente questo anno,
il messaggio che appare nel display LCD situato nella zona
Pubblico.
Può gestire tutti i tipi di Canali.
Finestra
dell'Evento Dissolvenza:
L'Evento Dissolvenza
esegue una programmazione in dissolvenza, anche incrociata,
dei Canali Analogici.
L'apparizione della Cometa è un Evento Dissolvenza.
Si possono programmare in dissolvenza anche i servocomandi
in modo da ottenere dei movimenti fluidi.
Finestra
dell'Evento Motore:
L'Evento Motore
gestisce la rotazione dei quattro stepper motor che è
possibile controllare dal sistema di controllo.
Si programmano il numero di steps, il verso di rotazione, la
velocità di rotazione.
Si può usare il mezzo step in modo da rendere più fluido il
movimento dei motori.
Può lavorare anche in background.
Il Passaggio della Cometa è un Evento Motore.
Finestra
dell'Evento Audio Normale:
L'Evento Audio.
Come già detto vi sono due tipi di Evento Audio:
L'Evento Audio Normale e
l'Evento Audio
Sincronizzato.
Il primo serve per creare gli effetti audio che si sentono
durante la Giornata. Si gestisce la durata dell'Evento, la
durata delle dissolvenze con la colonna sonora (musica)
e il valore dei livelli audio.
Particolare cura è
stata rivolta alla gestione degli eventi in background, cioè
a quegli eventi che si devono verificare senza alterare
l'andamento della giornata.
Il canto del gallo, il vento, il
rumore delle onde ne sono un esempio.
L'Evento Audio Sincronizzato deve effettuare delle operazioni
sincronizzate con
l'effetto audio in
maniera del tutto autonoma, senza interagire con le altre
operazioni in corso.
La precisione del sincronismo è di un millesimo di secondo.
Programma Editor dei files
audio
Eseguire queste operazioni non è molto
semplice.
Per prima cosa bisogna analizzare il file con l'effetto
audio che vogliamo usare, quindi prepararci dei riferimenti ai
punti in cui vogliamo inserire i vari sincronismi.
Per fare questa operazione è stato scritto un programma
apposito. L'immagine a lato mostra il programma in
questione.
Il file audio viene ascoltato, analizzato, e vengono
inseriti i riferimenti per i sincronismi.
Elabora sia i files audio mono che quelli stereo.
Finestra
Evento Audio Sincronizzato
Una volta eseguite queste operazioni bisogna
associare ai sincronismi le varie operazioni da effettuare.
Per ogni sincronismo si prepara la sequenza di
programmazione dei Canali utilizzati dall'effetto.
Un esempio di utilizzo è il Temporale.
Sono stati inseriti
dei riferimenti ai vari tuoni e sono stati a loro associate
le sequenze di programmazione dei Canali che simulano i
lampi (luci stroboscopiche, lampadine e proiettori).
L'intervallo minimo di programmazione è di un millesimo di
secondo.
Creare dei lampi con durata variabile tra
i 25 e i 150 millesimi di secondo non è stato un problema.
Il Debugger:
Finestra del
Debugger
Il Debugger serve a inserire nel Programma
Presepio la corretta sequenza di programmazione di tutti i Canali e
la successione degli Eventi.
Serve anche a testare il perfetto funzionamento del medesimo
e verificare la programmazione dei Canali.
Le Giornate sono divise in 1024 steps.
Per ognuno dei Canali presenti nel sistema di controllo
viene associato un valore che corrisponde allo stato della
sua programmazione in ogni istante della
Giornata.
Cioè ad ogni Canale corrisponde una
sequenza di programmazione di 1024 valori.
Ad esempio, per 100 canali (in realtà sono di più)
corrispondono 100 sequenze di programmazione di 1024 valori
ognuna. Si tratta di un lavoro abbastanza lungo e
noioso che però viene reso più sopportabile dalla presenza
di molti tools che rendono molto più semplice la programmazione.
Questa parte del software è la parte più complessa ed è
stata quella che ha richiesto per la preparazione molto più
tempo rispetto alle altre parti che compongono tutto il
programma.
I Canali sono suddivisi in:
Canali Analogici, Canali
Digitali, Servocomandi, Stepper Motor, Display LCD.
Ogni Canale ha il suo specifico tool di programmazione.
Finestra per
la programmazione dei Canali Analogici e dei Servocomandi
I Canali Analogici e i Servocomandi
utilizzano lo stesso tool con cui è possibile programmarli.
L'andamento dei valori di programmazione può essere
verificato sia in pratica, direttamente programmando
l'hardware, sia graficamente.
Il tool grafico è molto utile per verificare la
sovrapposizione della luminosità dei vari Canali Analogici.
Editor della
luminosità.
L' andamento della luminosità dei Canali può essere
modificato anche graficamente agendo con il mouse
direttamente sulla curva.
La sovrapposizione della curva rispetto agli altri
Canali si verifica direttamente sul grafico.
Andamento
grafico dei Canali analogici. Visualizza la luminosità di uno o più Canali in modo
da verificare l'andamento globale.
Si può programmare l'hardware in tempo reale per verificare
in pratica il risultato.
I Canali Digitali usano un
altro tool.
Programmazione dei Canali digitali.
Sono i canali che possono essere solamente On e OFF.
Programmazione di ogni singolo bit step per step.
Il Programma
Operativo:
Questo
software gestisce il Sistema Di Controllo con il Programma
Presepio
generato dal Debugger.
Controlla e sincronizza tutti i Canali, esegue gli Eventi, esegue
gli Effetti Audio, gestisce la musica della Colonna Sonora e
(infine) verifica anche la presenza
del pubblico.
Schermata del Programma Operativo
con la barra del
Menu attivata L'immagine che si vede nella
finestra viene trasmessa da
una webcam situata all'interno del presepio.
Nuovi sviluppi:
Il prossimo passo sarà la graduale sostituzione
delle lampade ad incandescenza con dei diodi led ad alta luminosità.
Poco alla volta...
Attualmente sto progettando, a tempo perso e senza nessuna fretta, il nuovo
sistema che permetterà di
utilizzare in modo sicuro gli illuminatori a led al posto delle
lampade alogene.