ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA
SEDE DI CESENA
FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI
CORSO DI LAUREA IN SCIENZE DELL'INFORMAZIONE
PREFABBRICATI E DOMOTICA SU SECOND LIFE:
CREAZIONE DI UN KIT DI SVILUPPO
Relazione finale in:
INTELLIGENZA ARTIFICIALE
Relatore:
Presentata da:
Prof. Giorgio Casadei
Correlatore:
Dr. Stefano Cacciaguerra
Sessione III
Anno Accademico 2006/2007
Fabio Testi
Indice
Indice
INDICE ................................................................................................................I
1
INTRODUZIONE....................................................................................... 1
1.1
1.2
1.3
2
SCENARIO ..................................................................................................... 1
CONTRIBUTO DELLA TESI ............................................................................... 2
DESCRIZIONE DEI CONTENUTI ........................................................................ 3
STATO DELL’ARTE ................................................................................. 5
2.1
REALTÀ E MONDI VIRTUALI ........................................................................... 5
2.2
SECOND LIFE .............................................................................................. 13
2.3
PREFABBRICATI ........................................................................................... 17
2.4
LA DOMOTICA ............................................................................................. 19
2.4.1 Gestione dell’ambiente...............................................................................21
2.4.2 Gestione degli apparecchi domestici .........................................................22
2.4.3 Comunicazione ed informazione ................................................................22
2.4.4 Sicurezza.....................................................................................................23
3
PROGETTAZIONE .................................................................................. 27
3.1
KIT DI PREFABBRICATI ................................................................................. 27
3.2
KIT DI SCRIPT PER LA DOMOTICA .................................................................. 28
3.3
COSTRUIRE IN SECOND LIFE ........................................................................ 31
3.3.1 Primitive (prim)..........................................................................................31
3.3.2 MegaPrim...................................................................................................32
3.3.3 Sculpted Prims e Sculpted Maps ................................................................33
3.3.4 Grid Unit e Ruler Mode .............................................................................35
3.3.4.1
3.3.4.2
3.3.5
3.3.6
Grid Unit ...................................................................................................... 35
Ruler Mode .................................................................................................. 36
Link di Prim................................................................................................37
Dove costruire ............................................................................................38
3.3.6.1
3.3.6.2
Le SandBox.................................................................................................. 38
Comprare un terreno .................................................................................... 39
3.3.7 Come costruire ...........................................................................................39
3.4
IL LINDEN SCRIPT LANGUAGE (LSL) ........................................................... 44
3.4.1 Le variabili .................................................................................................45
3.4.2 Gli stati.......................................................................................................46
3.4.3 Le costanti ..................................................................................................46
I
Indice
3.4.4
3.4.5
3.4.6
4
Gli eventi ....................................................................................................47
Le funzioni ..................................................................................................47
I controlli di flusso .....................................................................................47
IMPLEMENTAZIONE.............................................................................. 49
4.1
COSTRUZIONE DI PREFABBRICATI ................................................................. 49
4.2
CREAZIONE DI SCRIPT PER LA DOMOTICA...................................................... 52
4.2.1 HVAC .........................................................................................................53
4.2.2 Lighting ......................................................................................................53
4.2.3 Audio ..........................................................................................................56
4.2.4 Video...........................................................................................................60
4.2.5 Security.......................................................................................................60
4.2.5.1
4.2.5.1.1
4.2.5.1.2
4.2.5.1.3
4.2.5.2
4.2.5.2.1
4.2.5.2.2
4.2.5.2.3
4.2.6
5
Antifurti........................................................................................................ 60
Antifurto suono .................................................................................................................60
Antifurto IM......................................................................................................................61
Antifurto e-mail ................................................................................................................61
Porte di sicurezza ......................................................................................... 62
Porta gruppo......................................................................................................................63
Porta domanda-risposta.....................................................................................................63
Porta blacklist ...................................................................................................................64
Comunicazioni............................................................................................65
GUIDA ALL’UTILIZZO ........................................................................... 67
5.1
I PREFABBRICATI ......................................................................................... 67
5.2
LA DOMOTICA ............................................................................................. 76
5.2.1 Luci.............................................................................................................77
5.2.2 Audio ..........................................................................................................78
5.2.3 Antifurti ......................................................................................................79
5.2.4 Porta domanda-risposta.............................................................................81
5.2.5 Porta blacklist ............................................................................................81
5.2.6 Posizionamento dei sensori........................................................................82
6
CONCLUSIONI E SVILUPPI FUTURI ........................................................ 85
6.1
6.2
CONCLUSIONI .............................................................................................. 85
SVILUPPI FUTURI ......................................................................................... 86
BIBLIOGRAFIA................................................................................................. 87
II
Introduzione
1 Introduzione
1.1 Scenario
Ultimamente il rapido sviluppo delle telecomunicazioni, dell’informatica
e dell’elettronica ha portato a cambiamenti sostanziali nella vita di tutti i giorni.
Quello che dieci anni fa sembrava fantascienza, oggi è realizzabile a costi non
esageratamente eccessivi.
La tecnologia d’oggi copre moltissimi campi, dal settore lavorativo a
quello del divertimento e del comfort. Di quest’ultimo, in particolare, fa parte il
settore domotico.
La domotica, detta anche in inglese “home automation”, è la scienza che
si occupa di studiare le tecnologie atte a migliorare la qualità della vita nella casa
grazie all’automazione ed il controllo di tutti i processi ripetitivi.
Si tratta quindi di un insieme di applicazioni tecnologiche che possono
essere installate nella propria abitazione. Queste applicazioni non servono
solamente a migliorare la qualità della vita, ma garantiscono anche maggiore
sicurezza e risparmio energetico.
L’installazione di tutte queste nuove tecnologie in una casa richiede una
fase di studio e progettazione sulle principali problematiche che si possono
incontrare nella realizzazione di un impianto domotico.
Spesso per la progettazione di sistemi complessi vengono utilizzati
software di simulazione che consentono di riprodurre la realtà. Questo consente
di analizzare dinamicamente il comportamento del sistema creato, valutare
1
Introduzione
situazioni ritenute particolarmente critiche,
validare scelte progettuali,
confrontare soluzioni alternative.
Quando si riproduce la realtà, si crea una realtà virtuale. Le incredibili
possibilità della realtà virtuale permettono di ricreare mondi e oggetti che sono la
trasposizione digitale di ambienti reali o di fantasia.
Il mondo virtuale di Second Life è uno tra i più famosi e utilizzati mondi
virtuali presenti sul web. Il motto di Second Life, “Your World, Your
Imagination”, è molto importante perché esprime che tutto quello che puoi
immaginare, su Second Life lo puoi fare. Inoltre, Second Life è social
environment, è possibile cioè la collaborazione tra più utenti a una qualsiasi
attività.
Second Life è un mondo virtuale tridimensionale on-line di proprietà
della società americana Linden Lab. Il sistema fornisce ai suoi utenti gli
strumenti per aggiungere al “mondo” nuovi contenuti grafici. I residenti hanno il
diritto di proprietà sulle loro creazioni digitali e possono venderle, comprarle e
scambiarle con gli altri abitanti. Tutti gli oggetti possono essere animati e
predisposti per interagire attivamente con gli utenti. Per far questo in Second
Life è presente un linguaggio di programmazione: il Linden Scripting Language
(LSL) il quale è molto simile al linguaggio di programmazione C.
1.2 Contributo della tesi
La realizzazione di infrastrutture domotiche dovrebbe migliorare la
qualità della vita di domani. Diventa perciò necessario uno strumento per lo
studio e l’analisi di tali infrastrutture. Per realizzare questo strumento, risulta
conveniente utilizzare un ambiente virtuale che consenta di fare tutte le
simulazioni e gli studi che si vogliono.
Lo scopo di questa tesi è quindi, la realizzazione di un kit di sviluppo per
la creazione di oggetti prefabbricati e un kit di algoritmi che implementino la
domotica sul mondo virtuale di Second Life.
2
Introduzione
È stato scelto Second Life perché è un ambiente virtuale che ben si presta
a questo scopo. Infatti, Second Life ha gli strumenti per costruire oggetti 3D e
dispone di un proprio linguaggio di programmazione: il Linden Script Language.
Questo kit permetterà ai futuri studenti di costruire edifici prefabbricati
semplicemente assemblando vari elementi. Inoltre, utilizzando il kit di script
delle applicazioni domotiche si potranno rendere queste infrastrutture
automatiche, sperimentando varie situazioni e analizzandone vantaggi e
svantaggi.
1.3 Descrizione dei contenuti
La tesi è così suddivisa:
Nel secondo capitolo vengono introdotti i concetti di realtà virtuale e di
mondo virtuale. In particolare viene analizzato il mondo virtuale di Second Life
valutandone pregi e difetti. Vengono inoltre esposti i concetti di prefabbricato e
di domotica.
Nel terzo capitolo vengono esposti e analizzati gli obiettivi che si
vogliono realizzare. Viene illustrato come costruire oggetti e come creare script
con il linguaggio di programmazione presente in Second Life.
Nel quarto capitolo viene illustrato come si sono realizzati il kit di
prefabbricati e il kit di script per le applicazioni domotiche. Vengono spiegati gli
standard adottati per la costruzione di prefabbricati e le tecniche utilizzate negli
script creati con rispettivi vantaggi/svantaggi.
Nel quinto capitolo viene illustrato come utilizzare il kit di prefabbricati e
come utilizzare gli script creati. In particolare, viene spiegato come impartire i
comandi riguardanti le applicazioni domotiche.
3
Introduzione
4
Stato dell’arte
2 Stato dell’arte
In questo capitolo verranno introdotti i vantaggi e gli svantaggi della
realtà virtuale, illustrando in particolare il mondo virtuale di Second Life.
Verranno inoltre esposti i concetti di prefabbricato e domotica.
2.1 Realtà e mondi virtuali
Figura 2.1: Visione di realtà virtuale
Il termine realtà virtuale è il termine utilizzato per indicare una realtà
simulata, creata attraverso l’uso del computer [REA08].
Anche se la realtà virtuale potrebbe essere costituita attraverso un sistema
totalmente immersivo in cui tutti i sensi umani possono essere utilizzati,
attualmente il termine è applicato in pratica a qualsiasi tipo di simulazione
virtuale, dai videogiochi che vengono visualizzati su un normale schermo, alle
5
Stato dell’arte
applicazioni che richiedono l’uso degli appositi guanti muniti di sensori ed infine
all’esplorazione del web.
La realtà virtuale, per sua stessa definizione, simula il più realisticamente
possibile la realtà effettiva. In pratica però, per problemi tecnologici (derivati
soprattutto dalla limitata capacità di calcolo degli attuali sistemi informatici) non
è ancora stato raggiunto un livello di realismo così elevato da rendere
indistinguibile l’ambiente simulato da quello reale. Al livello tecnologico attuale
(2008), è ancora piuttosto semplice stabilire la differenza tra l’esperienza in un
ambiente reale e in uno virtuale: se infatti le immagini simulate stanno
guadagnando un buon livello di fotorealismo, tuttavia altri sensi non vengono
correttamente simulati come ad esempio olfatto, gusto e tatto. La quasi totalità di
questi ambienti virtuali rimangono prevalentemente esperienze visive e sonore.
La realtà virtuale immersiva secondo il livello tecnologico attuale potrà
essere utilizzata da tutti grazie ad alcune periferiche:
• Visore : un casco o dei semplici occhiali in cui gli schermi vicini
agli occhi annullano il mondo reale dalla visuale dell’utente. Il
visore può inoltre contenere dei sistemi per la rilevazione dei
movimenti, in modo che girando la testa da un lato, ad esempio, si
ottenga la stessa azione anche nell’ambiente virtuale.
• Auricolari : trasferiscono i suoni all’utente.
• Guanti : i guanti rimpiazzano mouse, tastiera, joystick, trackball e
gli altri sistemi manuali di input. Possono essere utilizzati per i
movimenti, per impartire comandi, digitare su tastiere virtuali, ecc.
• Cybertuta : una tuta che avvolge il corpo. Può avere molteplici
utilizzi: può simulare il tatto flettendo su se stessa grazie al tessuto
elastico, può realizzare una scansione tridimensionale del corpo
dell’utente e trasferirla nell’ambiente virtuale.
6
Stato dell’arte
Figura 2.2: Esempio di cybertuta
Queste periferiche vengono utilizzate da diverse categorie di utenti, tra
cui i piloti di aerei che utilizzano questa tecnologia per prepararsi al volo e gli
studenti delle facoltà di medicina che possono simulare interventi senza mettere
a repentaglio la vita dei pazienti.
Le incredibili possibilità della realtà virtuale permettono di ricreare mondi
e oggetti che sono la trasposizione digitale di ambienti reali o di fantasia.
Un mondo virtuale è un ambiente simulato dove gli utenti possono
interagire attraverso i propri avatar [MON08]. Un avatar è la rappresentazione
digitale di un utente e può essere ottenuto da un modello tridimensionale o
ricavato da una foto.
L’espressione “mondo virtuale” solitamente è un ambiente 3D simile al
mondo reale, con regole del mondo reale come gravità, topografia, locomozione,
azioni in tempo reale, e comunicazione. È un tipo di “mondo alternativo”
concepito per fornire una forma differente di intrattenimento sia online che
offline.
In origine il concetto di mondo virtuale è stato sfruttato essenzialmente a
fine d’intrattenimento, per la creazione di giochi di ruolo multiutente o di
“esperimenti sociologici”. Ad esempio la realizzazione di città virtuali in cui
chiunque poteva entrare e compiere azioni caratteristiche della vita quotidiana.
Molto spesso, gli utenti di questo tipo di “mondi” hanno la possibilità di
7
Stato dell’arte
espanderli e di creare nuove regioni, in cui poi gli altri utenti potranno entrare e
interagire.
A questo tipo di realtà virtuale si è andato affiancando negli ultimi anni
un diverso uso della possibilità di simulare luoghi reali: quello di ricreare a
distanza ambienti reali o realistici, per gli usi più disparati. Sono nate così le
prime biblioteche virtuali, le riproduzioni di musei e luoghi storici, ma anche i
primi supermercati interattivi, in cui l’utente percorre una galleria di negozi
infilando gli acquisti nel proprio carrello.
La differenza sostanziale che c’è tra il mondo reale e quello virtuale è che
quest’ultimo è senza limiti e confini. Tramite i mondi virtuali è possibile
costruire una realtà come un’opera d’arte che ha origine da un’idea o da un
progetto.
La ricostruzione e la simulazione della realtà permettono di sperimentare
situazioni e soluzioni che stimolando le relazioni sociali producono innovazione
e progresso.
In origine, quindici anni fa, quando ancora non si parlava di
multimedialità, i primi mondi virtuali erano interamente testuali (MUD: Multiple
User Dungeon), si trattava solitamente di avventure modificate per poter essere
utilizzate da più utenti contemporaneamente. Questi mondi interattivi vengono
chiamati di primo tipo. I mondi del secondo tipo sono invece nati quando i
computer sono diventati sufficientemente prestazionali da poter supportare il
rendering di intere stanze simulate in tempo reale. È stato quindi possibile creare
mondi di tipo grafico, in cui l’utente si muove tramite mouse e tastiera e può
realmente vedere, in maniera più o meno soddisfacente, gli oggetti che lo
circondano.
Negli anni passati sono nati numerosi mondi virtuali basati su Internet,
che hanno iniziato a spostarsi dall’obiettivo iniziale dell’intrattenimento verso
uno nuovo, che probabilmente estenderà la capacità degli attuali sistemi di
collaborazione in tempo reale.
I mondi virtuali oggi sfruttano il social networking e gli strumenti per la
collaborazione online (integrando blog, homepage personali e talvolta
8
Stato dell’arte
funzionalità Voip), che li trasformano in strumenti incredibilmente utili per
l’edutainment e la collaborazione a distanza.
Il termine “edutainment” deriva dalla fusione delle parole “educational”
ed “entertainment”. Con questa espressione si indica una forma di
intrattenimento finalizzata sia ad educare che a divertire [EDU08].
Per edutainment si intende un’attività formativa rivolta a utenti adulti,
studenti e insegnanti che prevede:
• l’utilizzo della connessione in rete per l’utilizzo dei materiali
didattici e lo sviluppo di attività formative basate su una tecnologia
specifica, detta "piattaforma tecnologica";
• l’impiego del computer come strumento principale per la
partecipazione al percorso di apprendimento;
• un alto grado di indipendenza del percorso didattico da vincoli di
presenza fisica o di orario specifico;
• il monitoraggio continuo del livello di apprendimento, sia
attraverso il tracciamento del percorso che attraverso frequenti
momenti di valutazione e autovalutazione;
• la valorizzazione di:
multimedialità : effettiva integrazione tra diversi media
per favorire una migliore comprensione dei contenuti;
interattività con i materiali : per favorire percorsi di
studio personalizzati e di ottimizzare l’apprendimento;
interazione umana : con i docenti/tutor e con gli altri
studenti
per
favorire,
tramite
le
tecnologie
di
comunicazione in rete, la creazione di contesti collettivi
di apprendimento.
L’edutainment sfrutta le potenzialità rese disponibili da Internet per
fornire formazione sincrona o asincrona agli utenti, che possono accedere ai
contenuti dei corsi in qualsiasi momento e in ogni luogo in cui esista una
connessione online. Questa caratteristica, unita alla tipologia di progettazione dei
materiali didattici, porta a definire alcune forme di edutainment come “soluzioni
di insegnamento centrato sullo studente”.
9
Stato dell’arte
Figura 2.3: Esempio di edutainment in un mondo virtuale
Inoltre, molti dei più recenti mondi virtuali promuovono anche un nuovo
modo di fare marketing di prodotti e contenuti integrando un supporto per l’ecommerce.
Il
commercio
elettronico
o
e-commerce
consiste
nella
compravendita, nel marketing e nella fornitura di prodotti o servizi attraverso
computer collegati in rete. Questa situazione sta progressivamente portando alla
creazione di marketplace alternativi basati su Internet nei quali gli utenti
mostrano e si scambiano prodotti mentre chattano.
Alcuni tra i mondi virtuali più famosi presenti sul web sono:
• Second Life : Second Life è un ambiente 3D creativo ed altamente
sofisticato. Gli avatar ad alta risoluzione sono pienamente
personalizzabili e gli utenti possono acquistare nuovi accessori. I
personaggi di Second Life hanno la possibilità di contribuire
enormemente allo sviluppo del mondo virtuale. I residenti hanno il
diritto di proprietà sulle loro creazioni digitali e possono venderle,
comprarle e scambiarle con gli altri abitanti.
• Habbo Hotel : Habbo Hotel è un mondo virtuale che utilizza la
metafora di un hotel completo perfino di anticamere e “stanze degli
ospiti” virtuali. Le stanze degli ospiti possono essere arredate
acquistando oggetti con i “crediti Habbo”. I crediti Habbo possono
essere acquistati con vari tipi di valute reali in molte maniere (carta
10
Stato dell’arte
di credito, cellulare, carte prepagate). L’accesso al mondo è
gratuito.
• There : There dispone di luoghi esotici virtuali che gli utenti
possono esplorare. Tutti gli avatar sono umani e possono essere
personalizzati in vari modi sia nel viso che nella forma del corpo.
Una delle attività preferite dei membri di There è la possibilità di
vestire i loro personaggi con abiti personalizzati su misura, che
possono essere acquistati in valuta locale.
• Weblo : Weblo è un mondo virtuale basato sul mondo reale. I
membri possono guadagnare soldi veri possedendo repliche online
di città, stati, proprietà famose e perfino domini su internet. I
membri creano siti e vengono remunerati per la loro popolarità
attraverso un sistema di internet advertising. I proprietari di città o
nazioni possono guadagnare ulteriormente istituendo dazi per le
transazioni che avvengono nei loro territori e vendendo le loro
proprietà per trarne profitto.
• Kaneva : Kaneva è un mondo virtuale che permette agli utenti di
interagire attraverso avatar tridimensionali. Oltre a permettere agli
utenti la costruzione di ambienti personalizzati, Kaneva fornisce la
capacità di condividere, commentare, entusiasmarsi, catalogare e
cercare tra un vasto range di media inclusi video, blog, foto,
musica/audio e giochi.
• Moove : L’homepage di Moove evidenzia la costruzione di stanze
e gli incontri romantici online come attività primaria per i
visitatori. Gli avatar di Moove sono chiamati “attori” e si può
scegliere fra umanoidi, animali e robot. I nuovi visitatori hanno a
disposizione varie stanze e possono arredare in vario modo la
propria casa virtuale. Ogni membro gestisce il proprio spazio, e
questo permette una grande varietà di espressioni individuali.
• Cybertown : Cybertown è un mondo virtuale che ti permette di
avere una casa 3D virtuale con una tua chat personale, una casella
mail gratuita ed una bacheca messaggi. Puoi invitare i tuoi amici,
11
Stato dell’arte
chiacchierare e far festa. Gli shopping mall di Cybertown ed i
mercatini delle pulci ti permettono di comprare, vendere o
scambiare oggetti 3D per la tua casa virtuale.
• Playdo : Playdo è un mondo virtuale con varie funzionalità
supplementari per costruire una comunità, incluso un editor di
pagine web che permette agli utenti di creare la propria homepage
personalizzata. Playdo non ha una economia basata su punti o
merci, la socializzazione è il focus di questa community. Playdo
include un’interfaccia WAP che permette connessioni sociali fra
cellulari.
• Active Worlds : L’universo di Active Worlds è fatto di centinaia di
migliaia di utenti che chattano e costruiscono ambienti di realtà
virtuale 3D in milioni di chilometri quadrati di territorio virtuale.
Gli utenti possono fare shopping online in un negozio 3D virtuale e
chattare con i commessi mentre giocano a giochi interattivi 2D o
3D.
• Whyville : Whyville è un mondo virtuale educativo per bambini e
teenager. Fondato inizialmente come supporto agli articoli
settimanali scientifici ed educativi dell’LATimes, Whyville
impegna attivamente i suoi visitatori e li incoraggia a partecipare
ad eventi educativi e divertenti che forniscono ai ragazzi
esperienze “pratiche” su progetti scientifici.
12
Stato dell’arte
2.2 Second Life
Figura 2.4: Logo di Second Life
È stato scelto Second Life perché è un mondo virtuale in cui l’utente ha la
possibilità di creare nuovi oggetti e personalizzarli a proprio piacimento.
Second Life è un mondo virtuale tridimensionale on-line creato nel 2003
dalla società americana Linden Lab [SEC08]. Il sistema fornisce ai suoi utenti
gli strumenti per aggiungere al “mondo virtuale” di Second Life nuovi contenuti
grafici come oggetti, fondali, fisionomie dei personaggi, contenuti audiovisivi,
ecc. Gli utenti hanno quindi libertà di costruire qualunque oggetto (sedie,
automobili, case, ecc) che può essere poi venduto o scambiato con gli altri
“residenti” utilizzando una valuta virtuale (il Linden Dollar). Questa moneta
virtuale ha valore solamente su Second Life, ma può essere convertita in veri
dollari americani dando vita a reali opportunità di business.
Attualmente partecipano alla creazione del mondo di Second Life oltre
450.000 utenti di tutto il mondo, e ciò che distingue Second Life dai normali
giochi 3D on-line è che l’intero mondo virtuale è creato dagli utenti stessi.
Qualunque casa, palazzo, negozio, automobile che si trova nel mondo di Second
Life è stata creata da una qualsiasi persona che non lavora alla Linden Lab.
13
Stato dell’arte
Figura 2.5: Edificio costruito in Second Life
Per far questo Second Life mette a disposizione dell’utente uno strumento
per la creazione di figure solide, chiamate prim, che sono il cubo, la piramide, il
cilindro, ecc.
Tutti gli oggetti possono essere animati e predisposti per interagire
attivamente con gli utenti. È possibile fare in modo che si muovano o che
cambino le loro caratteristiche in seguito ad un contatto con un avatar. Per far
questo viene usato il linguaggio di programmazione Linden Scripting Language
(LSL) il quale è molto simile al linguaggio C.
Il mondo virtuale di Second Life è veramente enorme ma solo guardando
la mappa ci si può accorgere veramente della sua vastità.
14
Stato dell’arte
Figura 2.6: Mappa di Second Life
Come si vede in figura 2.6 su Second Life sono presenti miriadi di isole di
cui alcune sono di proprietà di famose aziende di vestiario, automobili,
elettronica, ecc. come ad esempio Reebok, Mercedes, Sony. Spostarsi da
un’isola all’altra o più in generale da un luogo ad un altro è molto semplice.
Second Life mette a disposizione dell’utente un sistema di teletrasporto gratuito
e molto facile da usare.
La comunicazione con altre persone nel mondo virtuale può essere
effettuata via chat, instant message (IM) e chat vocale. Essendo un mondo
virtuale 3D, la comunicazione tramite chat viene inoltre arricchita dalla
comunicazione visiva. Per esaltare il concetto di comunicazione gestuale e visiva
gli avatar possiedono una serie di “animation”: sequenze animate con cui si
possono esprimere stati d’animo come gioia o tristezza e compiere delle azioni
predefinite come salutare o ballare. Gli incontri tra personaggi all’interno del
gioco si configurano quindi come reali discussioni tra esseri umani.
15
Stato dell’arte
Gli “abitanti” vengono rappresentati tramite degli “avatar”. L’avatar è il
proprio alter-ego virtuale, la propria rappresentazione o immagine nel mondo
virtuale. In pratica è il modo in cui una persona si propone agli altri utenti e
come questi la percepiscono. Solitamente hanno l’aspetto di una persona ma
possono avere anche le sembianze di animali o oggetti. È possibile scegliere tra
tanti tipi di avatar il personaggio che meglio si avvicina e si adatta alla propria
personalità. L’avatar è personalizzabile in maniera praticamente illimitata. Può
essere cambiata in sostanza tutta la fisionomia del corpo, dall’altezza al colore
degli occhi raggiungendo alti livelli di somiglianza con l’utente reale (figura
2.7).
Accedere a Second Life è molto semplice: è sufficiente creare un account
(gratuito) e scaricare il client (gratuito) dal sito ufficiale. L’account gratuito
esclude però la possibilità di acquistare aree di terreno all’interno del gioco, per
la quale è necessario avere un premium account. Infatti, per acquistare un terreno
(land) o per acquistare Linden Dollar spendendo dollari americani è necessario
sottoscrivere un premium account (pagamento di un abbonamento mensile) che
da il totale potere all’utente di comprare terreni in vendita. Come già detto il
cambio può essere fatto solo con il dollaro americano e non con euro o altra
moneta. Attualmente 1 Linden Dollar vale 285 dollari americani, ma il valore di
cambio varia a seconda dell’economia americana.
Figura 2.7: Confronto reale e virtuale
16
Stato dell’arte
L’abilità di progettare e rivendere contenuti 3D consente di guadagnare
Linden dollar che possono essere cambiati con denaro reale. Questo permette
addirittura di creare un reale business all’interno di Second Life.
Second life si presenta agli occhi delle aziende di tutto il mondo come
uno straordinario strumento di marketing, infatti, sono già presenti aziende
come: Adidas, Reebok, Vodafone, Mazda, BMW, Mercedes, General Motors,
Apple, Microsoft, Dolce & Gabbana, Gucci, Prada, Gabetti, Cisco Systems,
Reuters, e molti altri stanno per arrivare.
Su Second Life come nel mondo reale è possibile visitare ad esempio un
negozio di vestiario e comprare la maglietta o il paio di jeans che ci piacciono
per poterli indossare.
Second Life non viene solamente utilizzato per pubblicità ma talvolta
vengono organizzati anche eventi virtuali come conferenze, concerti, incontri,
ecc. Ad esempio su Second Life si è assistito al concerto degli U2, alla
conferenza stampa del ministro Di Pietro, al concerto in diretta di Irene Grandi.
Lo strumento di costruzione di Second Life permette di creare delle
primitive che possono essere utilizzate per la costruzione di edifici, più in
particolare per la costruzione di prefabbricati. Inoltre, grazie al linguaggio di
programmazione di Second Life è possibile introdurre degli script per
l'automatizzazione e la reazione passiva di questi edifici (domotica).
2.3 Prefabbricati
La parola “prefabbricato” indica un elemento costruttivo che viene
realizzato precedentemente, in stabilimento, e poi montato o assemblato con altri
elementi nel luogo in cui verrà utilizzato [PRE08].
La tecnica della prefabbricazione è usata nella costruzione di edifici, di
navi, di aerei, di automobili e qualsiasi tipo di veicolo o macchina dove elementi
precedentemente assemblati vengono poi sottoposti al montaggio finale. In
questo progetto, ci occuperemo di prefabbricati in ambito edilizio, ossia di
prefabbricati che riguardino costruzioni di edifici.
17
Stato dell’arte
Sempre in ambito edilizio nella categoria dei prefabbricati si può trovare
la “modular home” (figura 2.9). Le “modular home” (case modulari) sono case
divise in più moduli che vengono prefabbricati in uno stabilimento e poi portati
sul luogo di costruzione dove vengono montati. Questi moduli sono indipendenti
ma di solito vengono assemblati con altri moduli per ottenere un vero e proprio
condominio.
Il metodo convenzionale di costruzione di una casa consiste nel trasporto
delle materie prime, come mattoni, cemento, sabbia, legno nel sito di
costruzione. La costruzione avviene sul luogo e i tempi per la conclusione del
lavoro sono spesso assai longevi. Utilizzando invece “materiali” prefabbricati le
materie prime rimangono in fabbrica dove vengono in parte assemblate e
successivamente vengono consegnate nel cantiere dove avverrà il montaggio
finale. Questo metodo risulta più economico e veloce rispetto al tradizionale.
Quando si parla di prefabbricati, non si intendono solo elementi strutturali, come
travi, solai, pilastri, pannelli portanti ma anche elementi non strutturali (come
facciate, tegole, ringhiere, pannelli non portanti, ecc.). Infatti, come si vede in
figura 2.8, l’azienda costruttrice di prefabbricati arriva sul posto direttamente
con le mura costruite e pronte al montaggio.
Figura 2.8: Parete prefabbricata
18
Stato dell’arte
Figura 2.9: Esempio di Modular Home
2.4 La domotica
La domotica, detta anche in inglese “home automation”, è la scienza che
si occupa di studiare le tecnologie atte a migliorare la qualità della vita nella casa
grazie all’automazione ed il controllo di processi ripetitivi oppure poco
performanti e all’integrazione dei sistemi [DOM08].
Il termine “domotica” è un neologismo derivato dal francese
“domotique”, a sua volta contrazione della parola latina “domus”, che significa
“casa”
unita
al
sostantivo
“automatica”,
quindi
significa
“scienza
dell’automazione delle abitazioni”. Ha dunque come oggetto di studio
privilegiato proprio l’automazione della casa. Serve quindi a soddisfare tutte
quelle esigenze, già in parte richieste alla normale dotazione domestica, che un
utente si aspetta dalla propria casa.
Ad oggi molti sistemi elettronici differenti sono utilizzati in maniera
corrente nello spazio abitato, adempiendo ognuno a funzioni ben specifiche: il
riscaldamento, l’illuminazione, la telefonia, le installazioni audio, la televisione,
il videoregistratore, il citofono, i sistemi d’allarme, ecc. Come già spiegato,
quando tutte queste funzionalità sono completate da mezzi d’informazione e
sono integrate attraverso un unico sistema di gestione globale, si parla di
domotica.
19
Stato dell’arte
Un sistema di home automation coordina i vari impianti presenti
nell’edificio con lo scopo sia di gestirli tutti omogeneamente da una o più
stazioni di supervisione, ma anche di farli interagire ed aumentarne le
prestazioni. In specifico si parla di integrazione impiantistica quando vi è
l’eliminazione della separazione fra i diversi tipi di impianto installati in un
edificio e la riorganizzazione in un unico sistema impiantistico multifunzione,
gestito come un sistema programmabile capace di controllare, coordinare e
comandare le singole funzioni.
La domotica trova le sue radici negli anni settanta quando cominciarono
ad
essere
studiati
e
realizzati
i
primi
progetti
che
permettevano
l’interconnessione di alcuni sistemi come l’impianto di illuminazione e quello di
sicurezza. La tecnologia odierna rende più facile accettare l’introduzione di una
nuova automazione all'interno delle nostre case, dove dispositivi di vario tipo
potranno colloquiare tra loro, utilizzando probabilmente gli stessi paradigmi che
regolano internet e divenendo così visibili ai propri utenti dai luoghi di lavoro, di
vacanza, o magari dall’estero. I campi di applicazione della domotica riguardano
tutte le funzionalità domestiche e vanno dall’home networking, ai servizi tesi al
risparmio energetico, fino al well-being (benessere e salute). Per home network
si intende indicare un ambito vasto in cui sono presenti e interagiscono
l’informazione e la comunicazione, l’intrattenimento in generale, l’automazione,
il confort, la sicurezza, il controllo della casa. Il mondo relativo alla salute ed al
benessere della persona nell’abitazione, parte dalla premessa ergonomica di
costruire una casa intelligente in grado di soddisfare i bisogni umani di base. In
questa
categoria
rientrano
i
servizi
legati
alla
salute
in
generale,
all’alimentazione ed alle soluzioni per disabili e anziani.
La domotica quindi si occupa di:
• migliorare la qualità della vita;
• migliorare la sicurezza sotto tutti i punti di vista;
• risparmiare energia;
• semplificare la progettazione, l’installazione, la manutenzione e
l’utilizzo della tecnologia;
• ridurre i costi di gestione;
20
Stato dell’arte
• convertire i vecchi ambienti e i vecchi impianti.
Lo scopo ultimo di un sistema della domotica è il controllo totale di tutti i
servizi e la possibilità di realizzare nuove operazioni complesse, possibili solo
nel caso in cui diversi sistemi semplici siano connessi e controllati in modo
intelligente.
Le aree di automazione possibili in una casa sono:
• Gestione dell’ambiente
• Gestione degli apparecchi
• Comunicazione ed informazione
• Sicurezza
Ogni area è, a sua volta, suddivisa in sottoaree specifiche del settore.
2.4.1 Gestione dell’ambiente
La gestione dell’ambiente comprende:
climatizzazione (regolazione della temperatura, della velocità e
dell’umidità dell’aria);
riscaldamento dell’acqua sanitaria;
illuminazione,
illuminazione
d’emergenza
e
alimentazione
d’emergenza;
distribuzione dell’energia elettrica e gestione dei carichi;
irrigazione del giardino;
gestione della piscina;
azionamento di sistemi d’apertura e d’ingresso;
gestione di scenari preprogrammati.
Il comfort ambientale è tutto ciò che rende piacevole il soggiorno nella
propria abitazione ed è stato una delle prime esigenze dell’utente ad originare
l’idea di una casa intelligente. L’integrazione dei sistemi di controllo delle luci e
del riscaldamento/condizionamento, porta all’ottimizzazione delle risorse
energetiche adattando temperatura delle camere ed illuminazione alla effettiva
presenza di persone al loro interno ed al tipo di attività che in quel momento
praticano. L’impianto di irrigazione permette di programmare i tempi e gli orari
21
Stato dell’arte
di funzionamento, tenendo in considerazione i fattori meteorologici. Se
l’abitazione ha una piscina, l’impianto domotico permette di automatizzarne le
funzioni in base alle abitudini o ai desideri degli utenti.
2.4.2 Gestione degli apparecchi domestici
La gestione degli apparecchi domestici comprende:
lavatrice e asciugatrice
lavastoviglie
frigoriferi e congelatori
cucine e forni
apparecchi idrosanitari, sauna, idromassaggio
Secondo un requisito emergente, una casa non può dirsi intelligente se
non consente di monitorare e controllare i vari consumi. L’utente sente sempre
più il bisogno di saper ottimizzare le varie risorse, risparmiando denaro e lavoro
proprio e altrui.
Tale requisito si traduce nella necessità di sorvegliare: il consumo
dell’energia elettrica, il consumo dell’acqua, il consumo del gas, l’utilizzo del
telefono, l’utilizzo della TV e altri apparecchi domestici.
La gestione automatizzata degli elettrodomestici consente un tangibile
risparmio di energia elettrica e un più sicuro funzionamento degli stessi carichi,
e questa é diventata ormai una necessità per l’aumento esponenziale dei
dispositivi elettrici avutosi negli ultimi anni nelle nostre abitazioni e il
conseguente potenziale consumo di picco che può manifestarsi, provocando
black-out e danni reali all’impianto.
2.4.3 Comunicazione ed informazione
La comunicazione e l’informazione comprendono:
telefono analogico o VOIP
segreteria telefonica
citofono o videocitofono
fax
22
Stato dell’arte
comunicazioni interne (telefoniche o citofoniche)
accesso Internet a banda larga
trasmissione dati per controllo remoto, anche via SMS
informazioni e svago con sistemi audio-video (televisori, radio,
dvd player, ricevitore satellitare, ecc.)
Un servizio che richiede spesso il cliente è quello di essere sempre
“collegato” con la propria casa. La possibilità di utilizzare la rete telefonica per
trasmettere dati qualsiasi ha costituito il fondamento della rivoluzione
telematica. Attraverso il doppino telefonico, infatti, può passare qualsiasi tipo di
informazione, purché preventivamente digitalizzata.
Tale modalità di uso della linea telefonica ha reso possibile una serie
infinita di servizi tra cui: la ricerca di informazioni, lo scambio rapido di testi,
figure e sequenze multimediali, lo studio remoto, il lavoro remoto, transazioni
commerciali, telesorveglianza e telesoccorso. L’utente richiede che i sistemi di
accesso siano “user-friendly”, ossia semplici da usare e capire.
Le comunicazioni interne date ad esempio dalla connessione audio tra due
punti dell’appartamento consentono di comunicare in modo agevole a distanza o
semplicemente ascoltare cosa succede in una stanza distante. Un tipico utilizzo è
quello della sorveglianza di ammalati o bambini.
In un sistema di comunicazione intelligente le chiamate telefoniche o
citofoniche, interne o esterne, vengono automaticamente, e non indistintamente,
indirizzate ai giusti apparecchi.
2.4.4 Sicurezza
La sicurezza comprende:
gestione accessi
protezione antifurto, antintrusione, antirapina, perimetrale
protezione antincendio, antiallagamento, da fumo o fughe di gas
videocontrollo ambientale locale e a distanza
telesoccorso e teleassistenza di persone sole, anziane, disabili o
ammalate
23
Stato dell’arte
La sicurezza è uno dei sevizi primari offerti dalla casa intelligente.
Più in dettaglio, ci sono diversi tipi di sicurezza:
1. contro le aggressioni e le intrusioni dall’esterno (sicurezza
antintrusione);
2. contro
le
situazioni
malfunzionamenti
di
di
emergenza
apparecchiature
dovute
o
a
guasti
o
servizi tecnologici
(sicurezza tecnologica);
3. contro le situazioni di emergenza di tipo medico, dovute a
problemi di salute dell’utente (sicurezza medica).
Esistono due tipi di sicurezza: la prima è “security”, la protezione da
effrazioni ed intrusioni, la seconda è “safety”, la protezione da ogni forma di
incidente domestico.
La preoccupazione di prevenire il furto e l’intrusione nella propria
abitazione sembra una delle esigenze primarie dell’uomo abitante, secondo il
concetto di casa come protezione dall’esterno. Oltre a questa esigenza, a seguito
della continua sofisticazione dei servizi, è richiesta una attenzione sempre
maggiore nei confronti degli incidenti domestici e della sicurezza nell’uso delle
apparecchiature della casa.
Security:
Il
requisito
generale
è
che
i
sistemi
di
controllo
dell’appartamento siano in grado di segnalare tentativi di ingresso non
autorizzato all’interno dell’appartamento ed opporsi attivamente al tentativo di
effrazione / intrusione. Spesso vengono utilizzati sistemi di telecamere a circuito
chiuso che consentono un efficace controllo degli accessi anche da remoto,
sistemi digitali di controllo di accesso che consentono di dare autorizzazioni
d’ingresso a persone anche in assenza del padrone di casa, sistemi di antifurto
che consentono la rilevazione di ogni movimento importante avvenuto nella
zona.
Safety: Il requisito generale è che l’ambiente sia in grado di rilevare
avarie nel funzionamento dei vari servizi dell’appartamento, e di opporre
opportune procedure di emergenza nei casi di pericolo di incidente.
La gestione dell’avaria è ovviamente diversa in base alla situazione,
secondo la quale
il sistema si comporta in modi diversi: disattivando un
24
Stato dell’arte
elettrodomestico, togliendo l’acqua e spegnendo il gas al rilevamento di fuga o
di perdita e, a casa occupata, emettendo un segnale acustico che avvisa del
guasto o dell’interruzione del servizio. Alla categoria “safety” appartiene anche
l’invio automatico di richieste di soccorso per via telefonica in caso di malori,
utile soprattutto quando l’utente è una persona anziana o un soggetto a rischio
che vive da solo.
La casa domotica ha il compito di incrementare le due forme di sicurezza,
salvaguardando l’utente dall’incappare in qualsiasi forma di incidente che lo
possa danneggiare.
Tutti i sistemi di sicurezza che difendono funzioni vitali devono essere
intrinsecamente sicuri ed affidabili. Più tecnicamente, ogni sistema di sicurezza
deve essere capace di funzionare anche in seguito al guasto di un qualsiasi
componente del sistema stesso.
Figura 2.10: Tecnologie presenti in una casa domotica
25
Progettazione
26
Progettazione
3 Progettazione
La realizzazione di infrastrutture domotiche dovrebbe migliorare la
qualità della vita di domani. Diventa perciò necessario un tool per lo studio e
l’analisi di tali infrastrutture. Second Life è un ambiente che ben si presta a
questo scopo perché ha gli strumenti per costruire oggetti 3D e dispone di un
proprio linguaggio di programmazione.
In particolare, non si vuole costruire un esempio di casa domotica a se
stante, ma si vuole creare un kit di prefabbricati e script in modo che l’utente
finale che utilizzerà il kit possa scegliere quale usare e quale no. Quindi il
destinatario potrà crearsi la casa di suo gradimento e applicargli le applicazioni
domotiche che preferisce.
3.1 Kit di prefabbricati
Si vuole creare un kit di prefabbricati perché si vuole dare all’utente la
possibilità di crearsi un edificio senza perdere tempo nella costruzione.
Innanzitutto è necessario creare un kit di prefabbricati con il quale un
utente possa costruire ogni tipo di edificio. Questo kit deve comprendere le unità
base della costruzione, come ad esempio muri, colonne, finestre, ecc. che
composte possano formare svariati tipi di edifici. Second Life mette a
disposizione le “prim” (figura 3.1), ossia delle figure solide primitive come il
cubo, il cilindro, la sfera, ecc. che sono i mattoni con cui si può costruire.
27
Progettazione
Figura 3.1: Prim
Queste primitive possono essere modificate a partire dalla dimensione
fino alla modifica delle texture e del colore. Ad esempio, partendo da un
semplice cubo lo si può modificare trasformandolo in un parallelepipedo e gli si
può applicare a ognuna delle sue facce una texture differente. Le texture possono
essere comprate nel mondo virtuale di Second Life oppure possono essere create
sul proprio computer e inviate al proprio personaggio spendendo dieci Linden
dollar. Le primitive possono essere assemblate tra di loro realizzando così una
moltitudine di oggetti di qualsiasi forma. Ogni prefabbricato sarà quindi
composto da una o più prim legate tra loro.
In questo modo anche una persona che non è esperta nella costruzione di
oggetti in Second Life si troverà in mano un set di oggetti precostruiti già pronti
all’utilizzo e dovrà solo assemblarli.
Nel mondo esistono dei luoghi chiamati “SandBox” che permettono agli
utenti di costruire. Molte di queste sandbox sono vincolate da alcuni parametri,
per cui se un utente volesse costruire in piena libertà dovrebbe comprarsi un
terreno.
3.2 Kit di script per la domotica
Lo scenario di una applicazione domotica è quello di un edificio in cui
tutti gli impianti sono integrati e controllati tramite un software personalizzato:
dando uno sguardo a un monitor possiamo verificare in tempo reale se ci sono
luci accese, qual è la temperatura in ogni stanza, osservare se ci sono intrusi in
casa, controllare che l’irrigazione sia in funzione, il gas spento, le finestre
chiuse, ecc. Una casa domotica ci garantisce quindi: sicurezza, controllo dei
comfort, risparmio energetico, assistenza e molto altro ancora. Uno schema
riassuntivo sulla domotica è illustrato nella figura 3.2.
28
Progettazione
Figura 3.2: Schema domotica[CPL08]
29
Progettazione
La seconda parte di questo progetto riguarda la creazione di un set di
script per la realizzazione di applicazioni domotiche.
Queste applicazioni riguardano i seguenti campi della domotica:
• HVAC
• Lighting
• Audio
• Video
• Security
• Communication
• Robotics
HVAC: Heating, Ventilation and Air Conditioning. In questo settore
vengono inclusi tutti i controlli ambientali come quelli di temperatura e di
umidità.
Lighting:
il
controllo
dell’impianto
d’illuminazione
comprende
accensione/spegnimento luci con sensori di presenza, regolazione della
luminosità in funzione della luce ambientale.
Audio:
il
controllo
dell’impianto
audio
comprende
accensione/spegnimento del sonoro in relazione alla presenza o meno di una
persona e suono distribuito “multi - zone”, ossia audio multi stanza.
Video: il controllo dell’impianto video come per quello audio comprende
accensione/spegnimento video in relazione alla presenza e video distribuito
“multi - zone”, ossia una sorgente video trasmessa su più TV.
Security: il controllo dei sistemi di sicurezza è senza alcun dubbio il
settore più importante della domotica. Esso comprende rilevazione di intrusi,
sensori di presenza, sensori di chiusura/apertura porte e finestre, rilevamento di
principi di incendio, fughe di gas e perdite d’acqua.
Communication: la comunicazione permette il controllo remoto di tutte le
apparecchiature domotiche presenti nella casa e l’invio di segnalazioni di un
qualsiasi tipo di allarme.
Robotics: controllo di robot domestici presenti nella casa.
30
Progettazione
Per simulare tutti questi settori della domotica sarà utilizzato il Linden
Script Language (LSL) che è il linguaggio di programmazione di Second Life
con il quale si possono assegnare dei comportamenti agli oggetti. Questo
linguaggio è un linguaggio ad eventi ed è molto simile al linguaggio di
programmazione C.
3.3 Costruire in Second Life
Nei seguenti paragrafi analizzeremo le tecniche e le problematiche
relative alla costruzione in Second Life.
3.3.1 Primitive (prim)
Le primitive grafiche (chiamate anche prim) sono gli elementi base delle
costruzioni di Second Life. Se si immagina ogni oggetto di Second Life come
una costruzione fatta con dei mattoncini, ogni singolo mattoncino è una
“primitiva”.
Le primitive possono avere varie forme, essere modificate (colorate,
allungate, accorciate, ingrandite, ecc.) e assemblate tra loro. Una prim può
assumere le forme tridimensionali: cubo, cilindro, prisma, sfera, tubo, anello.
Creare una primitiva significa materializzarla. Gruppi di singole prim
collegate fra loro formano gli oggetti di base come: tavoli, veicoli, edifici,
abbigliamento che poi verranno completati con le texture per assumere il loro
aspetto definitivo.
Le costruzioni più complesse hanno un elevato numero (nell’ordine delle
decine o centinaia) di primitive. Cifre così elevate non dipendono solamente
dalle dimensioni della costruzione, ma dalla sua complessità e dall’abilità di
costruzione dell’utente. Un abile costruttore, infatti, utilizza un numero inferiore
di primitive rispetto a un comune utente. Questo è preferibile dato che ogni area
di terreno ha un limite massimo di primitive che può ospitare (vedi tabella 3.1).
31
Progettazione
Tabella 3.1: Limiti prim per metro quadrato
Metri quadrati
Numero massimo primitive
512
117
1024
234
2048
468
4096
937
8192
1875
16384
3750
32768
7500
65536
15000
Le dimensioni massime ufficiali per una primitiva sono di 10 metri su
ogni lato, mentre le minime sono di un millimetro. Si può quindi creare un cubo
con dimensioni massime 10x10x10 metri oppure dimensioni minime di
0.001x0.001x0.001 metri. Se si necessita di una prim con dimensioni maggiori,
si può ricorrere alle MegaPrim.
3.3.2 MegaPrim
Le megaprim sono primitive di dimensioni superiori ai 10 metri per lato.
Non possono essere create ma si possono solo usare quelle esistenti. Viene
quindi spontanea una domanda: da dove provengono le megaprim presenti in
Second Life?
Inizialmente le limitazioni delle dimensioni delle primitive erano
solamente client-side, in altre parole nel programma c’era un semplice blocco
che impediva di scegliere determinate misure. Bastava quindi usare un client
modificato per aggirare la limitazione dei 10 metri. Successivamente poi queste
restrizioni sono state applicate lato server, per cui, anche se il client invia
dimensioni non standard, il server le rifiuta.
Ovviamente le vecchie megaprim sono rimaste su Second Life ma non è
possibile agire sulle loro dimensioni.
32
Progettazione
Naturalmente non sono supportate dalla Linden Lab. Questo significa che
nel caso creino problemi ai server, saranno rimosse senza preavviso dalla Linden
Lab la quale non ne garantisce la restituzione al proprietario.
3.3.3 Sculpted Prims e Sculpted Maps
Le sculpted prims sono oggetti tridimensionali come lo sono le normali
prims. Questi oggetti di Second Life sono composti da vertici e poligoni. Più
precisamente una sculpted prim è rappresentata da 1024 vertici modificabili
dall’utente tramite delle texture speciali chiamate “Sculpted Maps”. Queste
texture definiscono le coordinate XYZ di ogni vertice. Una texture per sculpted
prim è una texture standard RGB (Red Green Blue) dove i canali R, G e B sono
mappati in X, Y e Z. Queste speciali texture sono immagini quadrate in cui ogni
pixel assume un colore che viene poi tradotto come coordinata (figura 3.3).
Per creare una sculpted map è necessario avere un programma di grafica
3D (3D Studio Max, Blender o simili) che permetta di crearla calcolandola
dall’oggetto che si vuole importare in Second Life.
Per realizzare queste speciali texture viene usato un procedimento
chiamato “Texture Mapping” (figura 3.4). Il texture mapping è un processo che
permette di avvolgere immagini 2D piatte su un oggetto tridimensionale.
Nella figura 3.4 la sfera viene mappata con una texture quadrata.
La difficoltà principale nel creare delle sculpted maps non è realizzare gli
oggetti, ma mapparli perfettamente con una texture quadrata.
33
Progettazione
Figura 3.3: Sculpted Map
Una volta creata la speciale texture, si può fare l’upload dell’immagine su
Second Life a un costo pari a dieci Linden dollar. Ora non resta che applicare la
sculpted map a un qualsiasi oggetto per trasformarlo così in una sculpted prim
(figura 3.5).
Figura 3.4: Esempio di Texture mapping
34
Progettazione
Figura 3.5: Sculpted prim di un vaso
Per applicare questa speciale texture è necessario selezionare “Sculpted”
dal menu a tendina nella scheda “Object” dell’oggetto.
Con le sculpted prims si possono ricreare forme complicate e curvilinee
che non sono possibili creare con il normale sistema di prim di Second Life.
Il vantaggio di usare le sculpted prims è che l’oggetto ottenuto verrà
considerato come un’unica prim e quindi si ridurrà notevolmente il numero di
prim utilizzate.
3.3.4 Grid Unit e Ruler Mode
La grid unit e il ruler mode sono strumenti utilizzati per la costruzione
degli oggetti servendosi di unità di misura.
3.3.4.1 Grid Unit
La grid è una guida dentellata che misura gli spostamenti della prim.
35
Progettazione
Figura 3.6: Grid Options
Le Grid Unit costituiscono la misura che determina l’unità della
dentellatura della grid. Di default sono pari a 0.5 metri e si suddividono in
multipli e sottomultipli di 0.5 che sono visibili in quantità maggiore se si
avvicina la visuale (camera).
Variando le opzioni dell’unità di misura della grid è possibile spostare la
prim con misure personalizzate ma limitatamente alle dimensioni massime e
minime di una prim (10 metri e 0.001 metri).
Alcune funzioni della grid mostrate anche in figura 3.6 sono:
• Grid Extends: regola la lunghezza della Grid
• Subunit Snapping: permette nello spostamento a scatti di usare le
Subunit (sottounità di 0.500)
• Show Cross Sections: attiva dei piani di intersezione per
l’orientazione.
3.3.4.2 Ruler Mode
Il Ruler Mode (modalità righello) fornisce l’orientamento delle coordinate
della primitiva.
Si può modificare dalla finestra “edit” in modalità build e possiede tre
opzioni:
• World (mondo)
• Local (locale)
• Reference (referenziata)
36
Progettazione
World: è il riferimento di default all’ambiente circostante, gli assi di
spostamento della primitiva sono paralleli alle coordinate del mondo (Sim),
quindi l’orientamento degli assi di spostamento della prim segue quello del
mondo.
Local: il sistema di riferimento non è il mondo ma il prim stesso. Questa
modalità diviene utile quando nella duplicazione di una primitiva ruotata è
necessario, con un movimento lungo lo stesso asse “x”, far combaciare
perfettamente la superficie della prim duplicata con quella originaria.
Reference: il sistema di riferimento è referenziato a un terzo oggetto non
allineato al mondo. È utile quando è necessario spostare degli oggetti avendo
come riferimento lo stesso oggetto referenziato. Ad esempio, se in una casa con
delle mura non allineate alla grid, occorre spostare dei mobili avendo come
riferimento le stesse mura.
3.3.5 Link di Prim
In Second Life è possibile collegare (link) fino a 256 primitive. Le prim
non devono necessariamente essere accostate tra loro, ma possono essere anche
lontane.
In modalità “edit” selezionando le prim che si vogliono linkare e
premendo i tasti Ctrl+L, queste verranno collegate tra loro. Una volta terminata
l’azione tra tutte le prim collegate solo una rimarrà di colore giallo (figura 3.7), il
che sta ad indicare che quella è la prim “root”, ossia la prim principale che
comanda le altre. Quando si andrà a spostare l’oggetto, le coordinate XYZ sono
relative alla prim root e non all’oggetto completo. Questo fatto comporta anche
la modifica di un qualsiasi parametro come l’assegnazione della texture o
l’esecuzione di uno script. Infatti, cambiando la texture alla prim root, essa farà
cambiare anche le texture di tutte le prim a lei collegate.
37
Progettazione
Figura 3.7: Prim link
Per scollegare le prim precedentemente collegate è sufficiente premere i
tasti Ctrl+Shift+L.
3.3.6 Dove costruire
Per costruire nel mondo virtuale di Second Life si possono scegliere due
strade:
• Costruire in una SandBox
• Comprare un terreno e costruirci sopra
3.3.6.1 Le SandBox
La prima strada solitamente viene scelta dagli utenti che non dispongono
di una terra su cui costruire. Questi terreni chiamati “SandBox” offrono la
possibilità a chiunque di costruire oggetti in quasi completa libertà. Infatti, in
questi posti spesso vengono stabilite delle regole come non costruire oggetti
esageratamente grossi o vendere la propria merce. Chiunque non rispetti queste
regole può essere cacciato (bannato) all’istante dalla SandBox. Inoltre una
38
Progettazione
sandbox viene ripulita (resettata) da tutti gli oggetti dopo un certo intervallo.
Risulta quindi consigliato salvare le proprie creazioni nell’inventario.
Esistono molte SandBox sparse per il mondo di Second Life e cercarle è
molto semplice: è sufficiente scrivere nel motore di ricerca di Second Life la
parola “sandbox”. Alcune sandbox che si possono trovare sono ad esempio
“Sandbox Island”, “Public Sandbox”, “Alien Nation 2.0”.
3.3.6.2 Comprare un terreno
L’altra strada che si può scegliere è quella di comprarsi un terreno. Per
fare questa operazione è necessario essere utenti premium, il che comporta il
pagamento di un abbonamento mensile. Prima di comprare il terreno è
consigliabile contare il numero di primitive che gli si vogliono mettere sopra.
Questo perché come mostrato dalla tabella 3.1, il numero di primitive che si
possono costruire dipende dai metri quadrati del terreno. Per cercare terreni in
vendita è sufficiente scrivere la parola “Land sales” nel motore di ricerca di
Second Life.
3.3.7 Come costruire
Second Life mette a disposizione dell’utente uno strumento di creazione e
modifica di oggetti 3D.
Cliccando il tasto “build” presente nella barra in basso apparirà
l’interfaccia di costruzione oggetti (figura 3.8). Di default viene caricata la
pagina “Create”.
39
Progettazione
Figura 3.8: Finestra create
Da questa è possibile scegliere quale figura base (primitiva) si vuole
creare: cubo, cilindro, sfera, ecc. Tra queste figure sono presenti anche primitive
non base che sono derivate dalle primitive di partenza. Ad esempio si può
trovare la semisfera e la rampa. Per creare l’oggetto è sufficiente selezionare la
figura che si desidera costruire e cliccare nella posizione del terreno dove si
vuole metterla.
Adesso si può entrare nella pagina “Edit” (figura 3.9) che consente di
apportare modifiche a tutti i parametri del solido selezionato.
Figura 3.9: Finestra Create
40
Progettazione
Qui è possibile spostare, ruotare e ridimensionare l’oggetto selezionato.
Tra i parametri presenti si può trovare:
Position: selezionando questa opzione appariranno tre frecce lungo i tre
assi: rosso per le X, verde per le Y e blu per le Z. Cliccando sulle frecce è
possibile spostare l’oggetto trascinandolo lungo l’asse scelto.
Rotate: selezionando questa opzione o mantenendo premuto il tasto Ctrl
appariranno le sfere di rotazione. Selezionando e trascinando le sfere di
rotazione si potrà ruotare liberamente l’oggetto lungo tutti e tre gli assi.
Stretch: selezionando questa opzione o mantenendo premuti Ctrl+Shift
apparirà il box di ridimensionamento. Selezionando e trascinando una delle
maniglie
rossa/verde/blu
verranno
ridimensionate
le
rispettive
misure
(lunghezza/larghezza/altezza). Inoltre selezionando e trascinando una delle
maniglie bianche poste agli angoli del box si potrà ridimensionare l’intero
oggetto proporzionalmente.
Sempre nella finestra di “Edit” è possibile cliccare sul tasto “More” il
quale
aggiunge
opzioni
di
modifica
avanzate.
Comparirà
un’interfaccia aggiuntiva divisa in più schede (figura 3.10).
41
sottostante
Progettazione
Figura 3.10: Finestra Edit aggiuntiva
Nella scheda General è possibile visualizzare il nome dell’oggetto, il
numero delle primitive che lo compongono, il nome del suo creatore e quello del
proprietario (dei quali è possibile vederne anche il profilo). Inoltre da questa
scheda è possibile assegnare i permessi sull’oggetto che si vogliono dare agli
altri utenti o al prossimo owner (proprietario) nel caso l’oggetto venga venduto o
semplicemente regalato.
Alcuni di questi permessi sono:
• Modify: l’oggetto può essere modificato
• Copy: l’oggetto può essere duplicato
• Resell/Give away: l’oggetto può essere trasferito ad altri o venduto
42
Progettazione
La scheda Object (Oggetto) presenta molte opzioni in più per trasformare
la forma di base della primitiva originaria. Si possono modificare posizione,
dimensione e rotazione inserendo le coordinate specifiche XYZ. Le coordinate
hanno sempre come riferimento il centro dell’oggetto. All’oggetto possono
essere date le proprietà Locked, Physical, Temporary e Phantom.
• Locked: blocca l’oggetto, non può essere mosso o spostato
• Physical: l’oggetto risponde alla forza di gravità, alle collisioni,
ecc.
• Temporary: l’oggetto è temporaneo e dopo un certo tempo cesserà
di esistere
• Phantom: l’oggetto può essere attraversato
Sono presenti poi altre opzioni di modifica 3D dell’oggetto come:
• “Path Cut Begin and End”: serve per eliminare una fetta
dell’oggetto lungo l’asse Z specificando inizio e fine del taglio
• “Hollow”: inserisce una cavità al centro dell’oggetto, della quale si
seleziona la dimensione
•
“Twist Begin and End”: introduce delle torsioni curvando la forma
dell’oggetto
La scheda Features serve per cambiare le caratteristiche dell’oggetto. Gli
oggetti di base sono tutti rigidi. Con le opzioni presenti in questa scheda si può
rendere un oggetto flessibile. Tra i parametri disponibili ci sono il vento, la
morbidezza, la gravità, la tensione.
La scheda Texture viene utilizzata per assegnare una texture e un colore
all’oggetto. Oltre a scegliere la texture è possibile decidere quante volte ripeterla
per ogni faccia dell’oggetto, di quanto ruotarla, ecc.
Nella scheda Content (contenuto) si possono inserire script, texture,
suoni, oggetti, ecc. Nel caso si crei uno script che richiami un elemento esterno
come un suono, questo deve essere inserito nella scheda Content.
43
Progettazione
3.4 Il Linden Script Language (LSL)
Il Linden Script Language è un semplice ma potente linguaggio che viene
utilizzato in Second Life per le azioni, le reazioni, le interazioni e le funzionalità
del mondo. Con questo linguaggio i residenti possono realizzare contenuti
interattivi nel mondo rendendolo meno statico e più vivibile.
Per creare da zero uno script è sufficiente entrare in modalità build e
creare un oggetto. In seguito nella finestra di “Edit” selezionare la scheda
“Content” e cliccare il pulsante “New Script”.
Di default il sistema non crea uno script vuoto, ma viene creato il codice
in figura 3.11.
Lo stato “default” è lo stato in cui entra uno script quando è eseguito per
la prima volta o al reset. Lo script inizia con questa parola chiave, sempre con
uno e un unico stato.
Figura 3.11: Default script
44
Progettazione
L’evento “state_entry” viene invocato quando si entra in uno stato (in una
transizione di stato) e quando si entra nello stato di default al Save o Reset dello
script. È sempre il primo evento a essere invocato quando si passa nel nuovo
stato, anche se questo presenta altri gestori di eventi. Questo evento non viene
invocato quando viene creato l’oggetto, in quanto lo stato di un oggetto viene
memorizzato quando questo viene preso in inventario e ripristinato alla sua
creazione.
L’evento “touch_start” viene invocato quando un avatar “tocca”
l’oggetto, ossia quando l’oggetto viene cliccato.
La funzione “llSay” invia una stringa di testo su un canale di trasmissione
ed è così composta:
llSay (integer channel, string text)
L’integer channel nell’esempio in figura 3.11 è 0 e definisce il canale con
cui lo script comunica. Il canale 0 è riservato per la chat pubblica. Tutto quello
che viene scritto su questa chat è visibile a chiunque. I canali da 2 a
2.147.483.648 sono canali privati.
La “string text” è il testo che la funzione llSay invierà sul canale 0.
Essendo inserita nella funzione “llSay”, la stringa sarà recepibile per un raggio
di 20 metri dall’oggetto.
3.4.1 Le variabili
In LSL una variabile è un elemento che può memorizzare un dato. Questa
variabile può salvare una sequenza di caratteri alfanumerici (stringa), un valore
numerico, ecc.
Ogni variabile è definita da un tipo, da un nome univoco, e da un valore.
Le tipologie di variabili presenti in LSL sono le seguenti:
• String: una sequenza di caratteri
• Vector: un vettore composto di tre componenti di tipo float
<x,y,z>. Utilizzato per rappresentare una posizione, un colore, o
una rotazione di Eulero
• Integer: un numero intero
45
Progettazione
• Float: un numero con la virgola
• List: un elenco di dati
• Rotation: una rotazione data da un vettore a quattro componenti di
tipo float <x, y, z, s>
• Key: un UUID, un identificativo univoco universale. Una stringa
utilizzata per identificare qualsiasi cosa (oggetti, avatar, texture,
ecc.) in Second Life.
Il nome di una variabile deve obbligatoriamente iniziare con una lettera e
non con un numero o caratteri speciali. Inoltre, i nomi sono case-sensitive, ossia
le lettere minuscole vengono considerate diverse da quelle maiuscole.
3.4.2 Gli stati
Gli stati sono definiti dalla parola chiave “state nomestato” e da uno stato
speciale definito dalla parola chiave “default”. In ogni script deve essere
presente lo stato “default”. Lo script comincia con questo stato che deve venire
prima di ogni altro stato.
All’interno degli stati sono specificati i vari gestori degli eventi che lo
stato cattura ricevendo messaggi dalla virtual machine che esegue gli script sul
server.
3.4.3 Le costanti
Le costanti sono valori predefiniti nel linguaggio di Second Life e non
possono essere cambiate. Alcuni esempi di costanti presenti sono:
• PI: costante “pi greco” matematica
• DEG_TO_RAD: converte i gradi in radianti
• SQRT2: radice quadrata di 2
• TRUE e FALSE: 1 e 0 per operazioni booleane
46
Progettazione
3.4.4 Gli eventi
Il linguaggio di Second Life è un linguaggio orientato agli eventi. In uno
script vengono inseriti blocchi di codice che vengono richiamati al verificarsi di
un evento. Alcuni esempi di eventi sono:
• touch_start: invocato quando un avatar “tocca” l’oggetto, ossia
quando l’oggetto viene cliccato
• timer: invocato ad ogni intervallo di tempo specificato da
“llSetTimerEvent”
• sensor:
invocato
quando
le
chiamate
a
“llSensor”
o
“llSensorRepeat” producono risultati nel raggio d’azione
• on_rez: invocato quando un oggetto viene “rezzato” (creato)
3.4.5 Le funzioni
Second Life mette a disposizione oltre 400 funzioni predefinite che
permetto agli oggetti di interagire con l’ambiente circostante e anche di
comunicare con l’esterno (ad esempio utilizzando l’e-mail). Tutte queste
funzioni hanno un nome che inizia con “ll”: due “L” minuscole che stanno per
“Linden Library”.
Questo non implica che l’utente possa crearsi le proprie funzioni partendo
da zero e chiamandole con il nome che preferisce.
3.4.6 I controlli di flusso
In LSL sono disponibili i comuni controlli di flusso che sono presenti
anche nei linguaggi più famosi e diffusi. I controlli presenti sono: “if-else”,
“for”, “while-do while”, “jump”, “return”, “state”.
47
Implementazione
48
Implementazione
4 Implementazione
In questo capitolo verranno analizzati gli aspetti implementativi, ossia
come si è realizzato questo progetto nel mondo virtuale di Second Life.
4.1 Costruzione di prefabbricati
Per la costruzione di elementi prefabbricati è stato utilizzato l’editor
grafico di Second Life. Innanzitutto si sono cercati gli elementi base che
compongono un edificio, come mura, tetti, finestre, porte, ecc. da riprodurre su
Second Life.
Il kit finale realizzato comprende un set di:
• Archi
• Ascensore
• Colonne
• Cupole
• Finestre
• Mura
• Porte
• Scale
• Terrazzi
• Tetti
49
Implementazione
Nel campo edilizio esistono degli standard riguardanti le dimensioni
(porte, finestre), gli spessori delle mura, ecc. Quello che si è pensato di fare è
stato di rispettare quindi questi standard, costruendo qualcosa il più
corrispondente possibile alla realtà.
Second Life come già spiegato dispone di un’unità metrica che torna
molto utile per la costruzione. Tuttavia nel mondo virtuale praticamente tutto,
dalle case alle persone, è leggermente più grande rispetto al mondo reale. Questo
implica quindi un aumento delle dimensioni dei prefabbricati. Se una porta nel
mondo reale è alta 2 metri, su Second Life sarà almeno di 2,8 metri.
Si sono scelte le seguenti misure, cercando di rimanere in proporzione
con quelle reali:
• Porte: 1,5 x 2,8 metri (larghezza x altezza)
• Finestre: 1,5 x 2 metri (larghezza x altezza)
• Mura: 10 x 3,8 x 0,3 metri (larghezza x altezza x profondità)
• Pavimenti/soffitti: 10 x 0,3 x 10 metri (larghezza x altezza x
profondità)
Per le dimensioni del pavimento si sono scelte le dimensioni massime che
può avere una prim (10 x 10 metri), in modo che se si vuole costruire, per
esempio, un grosso edificio vengano utilizzate il minor numero di primitive. Per
i pavimenti, inoltre, sono state scelte le misure intermedie 5x0,3x5 e 5x0,3x10
metri.
Volendo costruire delle mura prefabbricate queste devono comprendere
delle cavità per poterci inserire porte e finestre. Risulta necessario quindi
realizzare un set di mura che comprenda tutte le possibili combinazioni, ad
esempio muro con singola porta, muro con porta e finestra, ecc.
Si sono costruite quindi le seguenti mura con cavità: porta centrale, porta
laterale, finestra centrale, finestra laterale, porta centrale con due finestre ai lati,
porta e finestra, due finestre, due porte, senza cavità, ¼ di cerchio, ½ di cerchio,
¾ di cerchio. Queste combinazioni riguardano sia le mura larghe 10 metri sia
quelle di 5 metri.
50
Implementazione
Figura 4.1: Esempio di elementi costruiti
Ad ogni elemento prefabbricato non sono state assegnate texture, o
meglio si è lasciata quella di default di Second Life (legno chiaro).
Per quanto riguarda le rampe di scale si sono costruite:
• la gradinata classica (in molte varianti)
• la scala a chiocciola
• la rampa
La larghezza di ogni gradino è di 2 metri e l’altezza è di 0,41 metri.
Questa altezza garantisce un numero di gradini pari a dieci per ogni piano
dell’edificio.
Le porte realizzate o meglio gli script di movimento realizzati riguardano
tre tipi di apertura:
• A cerniera
• Scorrevole
• Di tipo ponte levatoio
Con questo kit di elementi prefabbricati è possibile costruire svariati tipi
di edifici come ad esempio quello in figura 4.2.
51
Implementazione
Figura 4.2: Esempio di casa costruibile con i prefabbricati
4.2 Creazione di script per la domotica
Come già spiegato, si vogliono realizzare script separati che riguardano i
seguenti campi della domotica:
• HVAC
•
Lighting
•
Audio
•
Video
•
Security
•
Communication
•
Robotics
Questi script sono stati realizzati con il linguaggio di programmazione di
Second Life: il Linden Script Language (LSL).
52
Implementazione
4.2.1 HVAC
Questo campo della domotica non può essere realizzato su Second Life in
quanto, non è presente temperatura o umidità dell’ambiente.
4.2.2 Lighting
Il
controllo
dell’impianto
d’illuminazione
deve
comprendere
accensione/spegnimento luci con sensori di presenza, regolazione del colore e
della luminosità.
Per implementare questa tecnologia è necessario disporre di un sensore
che rilevi la presenza di persone e che faccia accendere/spegnere le luci. Per far
questo è stata utilizzata la funzione “llSensorRepeat” la quale ha due eventi
“sensor” e “no_sensor” (figura 4.3).
Figura 4.3: Script llSensorRepeat
La funzione “llSensorRepeat” è così composta:
llSensorRepeat (string name, key id, integer type, float range, float arc,
float rate)
53
Implementazione
Questa funzione esegue la scansione di un singolo nome e ID, la tipologia
dell’entità che deve essere rilevata, il range in metri, l’arco in radianti e la
frequenza di scansione in secondi. Nell’esempio in figura 4.3 la scansione viene
effettuata ogni secondo su un raggio di 5 metri di una semisfera. Vengono
rilevati solo agenti, ossia avatar, senza specificazione di nome e id.
La sfera di scansione, decidibile con il raggio e l’arco, ha come centro il
centro degli assi dell’oggetto in cui è inserito lo script.
Gli eventi “sensor” e “no_sensor” vengono invocati quando il sensore
rileva la presenza o meno di un avatar. In questi eventi sono stati quindi inseriti
gli script di accensione/spegnimento.
Per dare l’impressione che la luce si accenda e si spenga è stata usata la
funzione “llSetColor”. Con questa funzione è possibile dare un colore a una o
più facce dell’oggetto. Il colore va espresso come vettore dove <0.0,0.0,0.0>
corrisponde al nero, mentre <1.0,1.0,1.0> corrisponde al bianco. Ad esempio i
colori scelti sono: <1.0, 1.0, 0.5> per lo stato acceso e <0.2, 0.2, 0.2> per lo stato
spento (figura 4.4).
Figura 4.4: Luce accesa/spenta
Si vuole inoltre poter cambiare il colore della luce e variarne la
luminosità. Per cambiare colore è sufficiente creare tanti vettori quanti sono i
colori che si vogliono rappresentare, mentre per il cambio di luminosità è stato
scelto
l’intervallo
0,25
per
ogni
componente
RGB.
Ad
ogni
incremento/decremento della luminosità viene aggiunto/sottratto 0,25 ad ogni
componente RGB. Questo intervallo comporta sette livelli differenti di
54
Implementazione
luminosità. I colori disponibili invece sono cinque: giallo (caricato di default),
bianco, rosso, verde, blu.
Per poter cambiare colore o luminosità occorre interagire con l’oggetto.
Per impartire comandi all’oggetto è stata utilizzata la funzione “llListen” con
l’evento “listen” (figura 4.5).
Figura 4.5: Funzione llListen
La funzione “llListen” è così composta:
llListen (integer channel, string name, key id, string message)
Questa funzione rileva stringhe scritte sul canale della chat selezionato.
Nell’esempio in figura 4.5 l’oggetto è in ascolto sul canale 0 per i messaggi
“accendi” e “spegni”.
L’evento “listen” viene invocato quando un avatar o un oggetto “dice”
qualcosa in un canale della chat. I canali sono circa due milioni, il canale 0
corrisponde alla chat pubblica ed è quello usato appunto da tutti gli avatar per
scrivere messaggi visibili a tutti. Gli altri canali sono nascosti, cioè quello che
viene scritto non viene visualizzato dagli altri, ma può essere però intercettato da
appositi script.
Per “parlare” su un canale diverso dallo 0 occorre anteporre al messaggio
il carattere “/” seguito dal numero del canale scelto. Ad esempio se si vuole
parlare sul canale 123 è sufficiente scrivere: /123 ciao!.
55
Implementazione
Per fare in modo che un oggetto comunichi attraverso questi canali, si
possono usare differenti funzioni come:
• llWhisper: il messaggio verrà recepito in un raggio di 10 metri
dall’oggetto
• llSay: il messaggio verrà recepito in un raggio di 20 metri
dall’oggetto
• llShout: il messaggio verrà recepito in un raggio di 100 metri
dall’oggetto
• llRegionSay: il messaggio verrà recepito in tutta la regione
Altri metodi per spedire messaggi senza l’utilizzo di canali sono:
• llOwnerSay: il messaggio verrà recepito soltanto dal proprietario
dell’oggetto
• llInstantMessage: invia un IM (instant message)
• llEmail: invia una e-mail
Impartendo quindi un particolare ordine su un determinato canale di
comunicazione è possibile far cambiare colore o luminosità alla lampada. Inoltre
sono stati aggiunti comandi per la variazione del raggio d’azione del sensore e
l’attivazione/disattivazione del sensore. Di default lo stato del sensore è attivo, il
raggio è di 5 metri e il colore è il giallo. Questi comandi verranno trattati più
approfonditamente nel capitolo 5.
4.2.3 Audio
Per trasmettere tracce audio su Second Life ci sono due modalità:
• Streaming audio
• Fare l’upload di file audio
Per poter fare streaming audio in Second Life occorre essere proprietari di
un terreno. Infatti, una volta comprato un terreno tra le tante opzioni c’è la
possibilità di scegliere la sorgente streaming che si preferisce. La musica verrà
sentita in tutta la land (terra).
Il secondo caso è molto più economico. Infatti, qualunque utente, sia che
possegga un terreno sia che non lo possegga, può fare l’upload dal proprio
56
Implementazione
computer di file audio al prezzo di 10 Linden dollar (circa 3 centesimi di euro).
Si possono inviare però frammenti di file per una durata massima di 10 secondi
l’uno. Uno dei principali motivi per cui esiste questa limitazione, è che in questo
modo sono state disincentivate (almeno in parte) le violazioni di copyright.
Non essendo proprietario di nessun terreno, per implementare la parte
audio è stata scelta quindi la seconda strada.
Si vuole realizzare un Jukebox che consenta la selezione delle tracce
audio, del volume e che si accenda/spenga nel caso rilevi la presenza di una
persona.
Innanzitutto va considerato che le tracce da riprodurre hanno una
lunghezza costante di soli 10 secondi. Si deve quindi introdurre un timer che
riproduca una traccia ogni 10 secondi. Per far questo è stata utilizzata la funzione
“llSetTimerEvent” con l’evento “timer”. La funzione “llSetTimerEvent” ha
come unico parametro i secondi che devono passare dopo i quali viene chiamato
l’evento “timer”. Mettendo questo parametro a 10 secondi l’evento timer verrà
così invocato ogni 10 secondi.
Per non violare i diritti d’autore sulle canzoni riprodotte si è scelto di
prendere 20 secondi per ciascuna canzone. Risultano così due file audio per ogni
canzone, ognuno della durata di 10 secondi.
Serve inoltre sapere il numero totale delle tracce presenti nell’oggetto. La
funzione “llGetInventoryNumber” restituisce il numero di file trovati
nell’inventario dell’oggetto. Come parametro accetta il tipo di file che deve
essere cercato e può essere:
• INVENTORY NONE
• INVENTORY ALL
• INVENTORY TEXTURE
• INVENTORY SOUND
• INVENTORY LANDMARK
• INVENTORY CLOTHING
• INVENTORY OBJECT
• INVENTORY NOTECARD
57
Implementazione
• INVENTORY SCRIPT
• INVENTORY BODYPART
• INVENTORY ANIMATION
• INVENTORY GESTURE
Specificando come parametro “INVENTORY_SOUND” verranno contati
solamente i file audio trovati. Utilizzando questa funzione inoltre si potranno
aggiungere altre canzoni all’oggetto senza modificare lo script.
Per far partire la riproduzione delle tracce audio è stata usata la funzione
“llPlaySound”. Tale funzione è così composta:
llPlaySound(string sound, float volume)
La stringa “sound” indica il nome del file audio e il float “volume” indica
il livello di volume con cui verrà riprodotto il file. Per il volume sono accettati i
valori da 0.0 a 1.0. Tutte le chiamate alla funzione verranno ignorate fino a
quando il primo suono non è stato eseguito completamente. Se viene invece
utilizzata la funzione “llSetSoundQueueing”, il suono successivo verrà messo in
coda ed eseguito appena la riproduzione del precedente è terminata. Per fermare
invece la riproduzione è stata usata la funzione “llStopSound”.
Tutte i file audio eseguiti da “llPlaySound” devono essere inseriti
nell’oggetto che contiene lo script. Questo comporta che più ci si allontana
dall’oggetto più il suono diminuirà.
La propagazione del suono assume una forma sferica centrata nel centro
dell’oggetto.
L’intensità del suono rispetto al centro dell’oggetto è decrescente
all’aumentare del raggio della sfera centrata in esso (figura 4.6).
58
Implementazione
Figura 4.6: Propagazione del suono
Per quanto riguarda il sensore di presenza è stata usata la funzione
“llSensorRepeat” e gli eventi “sensor” e “no_sensor”come realizzato per le luci.
I comandi vengono impartiti all’oggetto tramite i canali di comunicazione
e riguardano attivazione/disattivazione del sensore, modifica del raggio d’azione,
selezione della canzone e modifica del volume. Di default lo stato del sensore è
attivo, il raggio è di 5 metri, la canzone è la prima e il volume è al massimo
(1.0). Questi comandi verranno trattati più approfonditamente nel capitolo 5.
59
Implementazione
4.2.4 Video
Per trasmettere filmati in streaming come per l’audio è necessario
possedere un terreno. Non avendo tale possibilità si è quindi tralasciata questa
parte del progetto.
4.2.5 Security
Il settore della sicurezza è molto ampio. Esso comprende rilevazione di
intrusi, sensori di presenza, sensori di chiusura/apertura porte e finestre,
rilevamento di principi di incendio, fughe di gas e perdite d’acqua. Il
rilevamento di principi di incendio, fughe di gas e perdite d’acqua non sono
realizzabili in Second Life in quanto non esistono incendi, tubature di gas e
acqua. Si è deciso quindi di sviluppare un set di script per antifurti e uno per gli
accessi (porte di sicurezza).
4.2.5.1 Antifurti
Si è pensato di fare più tipologie di antifurti che non differiscono per il
sistema di rilevamento, ma per la segnalazione di avvenuta intrusione. Il kit di
antifurti realizzato comprende:
• Antifurto suono
• Antifurto IM
• Antifurto e-mail
4.2.5.1.1 Antifurto suono
L’antifurto è composto da un sensore di presenza generato dalla funzione
“llSensorRepeat” che rileva il nome dell’avatar presente nel suo raggio d’azione.
Il nome dell’intruso viene confrontato con una lista di nomi (la lista amici) e nel
caso non sia presente, viene eseguito il suono d’allarme. La traccia audio deve
essere inserita all’interno dell’oggetto che contiene lo script. Questa viene
eseguita tramite la funzione “llPlaySound”.
I comandi vengono impartiti all’oggetto tramite i canali di comunicazione
e riguardano attivazione/disattivazione del sensore, modifica del raggio d’azione,
60
Implementazione
aggiunta nome alla lista amici, cancellazione nome dalla lista amici,
visualizzazione della lista amici, svuotamento della lista amici. Di default lo
stato del sensore è attivo, il raggio è di 5 metri e la lista amici è vuota. Questi
comandi verranno trattati più approfonditamente nel capitolo 5.
4.2.5.1.2 Antifurto IM
L’antifurto IM (instant message) è composto da un sensore di presenza
generato dalla funzione “llSensorRepeat” che rileva il nome dell’avatar presente
nel suo raggio d’azione. Il nome dell’intruso viene confrontato con una lista di
nomi (la lista amici) e nel caso non sia presente, invia un instant message
all’utente selezionato. Per l’invio di questo messaggio è stata usata la funzione
“llInstantMessage”. Questa funzione è così composta:
llInstantMessage(key user, string message)
La key “user” indica il destinatario del messaggio e la stringa “message”
è il messaggio stesso. Il messaggio inviato non può essere più lungo di 1024
Bytes. Nell’instant message è presente il nome dell’intruso, il nome della
regione, le coordinate del mondo e la key dell’oggetto (ossia dell’antifurto).
Quest’ultima è utile per sapere quale antifurto ha dato l’allarme nel caso si
abbiano più antifurti.
I comandi vengono impartiti all’oggetto tramite i canali di comunicazione
e riguardano attivazione/disattivazione del sensore, modifica del raggio d’azione,
aggiunta nome alla lista amici, cancellazione nome dalla lista amici,
visualizzazione della lista amici, svuotamento della lista amici. Di default lo
stato del sensore è attivo, il raggio è di 5 metri e la lista amici è vuota. Questi
comandi verranno trattati più approfonditamente nel capitolo 5.
4.2.5.1.3 Antifurto e-mail
L’antifurto e-mail è composto da un sensore di presenza generato dalla
funzione “llSensorRepeat” che rileva il nome dell’avatar presente nel suo raggio
d’azione. Il nome dell’intruso viene confrontato con una lista di nomi (la lista
amici) e nel caso non sia presente, invia un’e-mail all’indirizzo scelto. Per
61
Implementazione
l’invio di questa e-mail è stata usata la funzione “llEmail”. Questa funzione è
così composta:
llEmail(string address, string subject, string message)
La stringa “address” indica l’indirizzo e-mail del destinatario, la stringa
“subject” indica l’oggetto dell’e-mail (ossia il nome dell’e-mail) e la stringa
“message” indica il testo vero e proprio dell’e-mail. Nell’e-mail è presente il
nome dell’intruso, il nome della regione, le coordinate del mondo e la key
dell’oggetto (ossia dell’antifurto).
Sono stati inseriti dei controlli per l’invio delle e-mail in quanto la
funzione “llEmail” di default invia un’e-mail ogni 20 secondi. Infatti, nel nostro
caso se l’intruso rimaneva all’interno del raggio d’azione del sensore, la
funzione “llEmail” inizialmente inviava un’e-mail ogni 20 secondi, creando così
una vera e propria fonte di spam.
I comandi vengono impartiti all’oggetto tramite i canali di comunicazione
e riguardano attivazione/disattivazione del sensore, modifica del raggio d’azione,
aggiunta nome alla lista amici, cancellazione nome dalla lista amici,
visualizzazione della lista amici, svuotamento della lista amici. Di default lo
stato del sensore è attivo, il raggio è di 5 metri e la lista amici è vuota. Questi
comandi verranno trattati più approfonditamente nel capitolo 5.
4.2.5.2 Porte di sicurezza
L’altro settore della sicurezza implementato riguarda gli accessi, più
precisamente gli accessi in una casa. Per gli accessi ci si riferisce a porte e
finestre, ma nel nostro caso tratteremo solamente le porte in quanto, un avatar di
medie dimensioni non riesce a passare per le finestre costruite che sono 1,5 x 2
metri. Il kit di porte di sicurezza realizzato comprende:
• Porta gruppo
• Porta domanda-risposta
• Porta blacklist
62
Implementazione
4.2.5.2.1 Porta gruppo
La porta gruppo è stata pensata per consentire l’accesso solo ai membri di
un particolare gruppo. Ad esempio, il laboratorio di intelligenza e vita artificiale
del corso di laurea “Scienze e Tecnologie Informatiche” di Cesena ha creato un
gruppo sperimentale chiamato “Infonauti” e si vuole permettere di entrare in
certe zone solo agli appartenenti del gruppo. In Second Life è possibile come nei
giochi online creare dei gruppi.
In genere un gruppo su Second Life ha le seguenti caratteristiche:
• deve avere almeno due membri
• prevede una chat di gruppo
• è possibile attivare un solo gruppo alla volta fra quelli a cui si è
iscritti
• è possibile appartenere al massimo contemporaneamente a 25
gruppi
• chiunque può aprire un gruppo (seguendo le specifiche)
• i gruppi permettono di creare al proprio interno dei ruoli (roles), a
cui possono venire assegnate differenti poteri (abilities)
L’apertura della porta viene effettuata solo se l’avatar corrisponde al
gruppo della porta. La funzione “llDetectGroup” ritorna un valore booleano che
indica se il gruppo dell’oggetto o dell’avatar rilevato corrisponde a quello della
primitiva dove è presente lo script. È quindi necessario che il gruppo della porta
sia lo stesso di quello a cui si appartiene.
La porta rimane aperta per 5 secondi, dopodiché si richiude. Per inserire
questo ritardo è stata usata la funzione “llSleep” che ha come parametro il tempo
di attesa in secondi. Durante questo tempo lo script non esegue nessuna
istruzione.
4.2.5.2.2 Porta domanda-risposta
La porta del tipo domanda-risposta è quella più classica. Quando l’avatar
interagisce con la porta (mediante il touch) questa pone una domanda e se
63
Implementazione
l’avatar scrive la risposta giusta, la porta si apre. Un tipico esempio è quello
della password: P:”password?” A:”infonauti”.
La domanda viene posta sul canale pubblico 0, mentre la risposta viene
ascoltata sul canale selezionato, come ad esempio “/111 infonauti”. Questo è
stato scelto per mantenerne la segretezza della risposta.
Per l’ascolto della risposta e dei comandi viene usata la funzione
“llListen” con l’evento “listen”.
La porta rimane aperta per 5 secondi, dopodiché si richiude. Per inserire
questo ritardo è stata usata la funzione “llSleep” che ha come parametro il tempo
di attesa in secondi. Durante questo tempo lo script non esegue nessuna
istruzione.
Tramite apposito comando sul canale selezionato sia la domanda che la
risposta possono essere cambiate. Di default la domanda è “password?” e la
risposta è “infonauti”. Questi comandi verranno trattati più approfonditamente
nel capitolo 5.
4.2.5.2.3 Porta blacklist
Un'altra modalità per gestire gli accessi simile a quello del gruppo
riguarda la creazione di una lista utenti chiamati “bannati” ossia presenti in
blacklist (lista nera).
La blacklist è un registro che contiene una lista di individui a cui, per un
motivo particolare, è stato negato un particolare servizio o un privilegio.
Inserendo quindi il nome di un avatar in lista, questo non potrà più aprire
la porta per entrare in una determinata zona.
La porta rimane aperta per 5 secondi, dopodiché si richiude. Per inserire
questo ritardo è stata usata la funzione “llSleep” che ha come parametro il tempo
di attesa in secondi. Durante questo tempo lo script non esegue nessuna
istruzione.
I comandi vengono impartiti all’oggetto tramite i canali di comunicazione
e riguardano aggiunta nome alla blacklist, cancellazione nome dalla blacklist,
visualizzazione della blacklist, svuotamento della blacklist. Di default la
64
Implementazione
blacklist è vuota. Questi comandi verranno trattati più approfonditamente nel
capitolo 5.
4.2.6 Comunicazioni
Il settore della comunicazione deve gestire il controllo remoto di tutte le
apparecchiature domotiche presenti nella casa e l’invio di segnalazioni di un
qualsiasi tipo di allarme.
La comunicazione di tutti gli apparati domotici viene gestita sui canali di
chat di Second Life. Questo viene fatto utilizzando la funzione “llListen” con
l’evento “listen” per l’ascolto, mentre per inviare messaggi vengono usate le
funzioni:
• llWhisper: il messaggio verrà recepito in un raggio di 10 metri
dall’oggetto
• llSay: il messaggio verrà recepito in un raggio di 20 metri
dall’oggetto
• llShout: il messaggio verrà recepito in un raggio di 100 metri
dall’oggetto
• llRegionSay: il messaggio verrà recepito in tutta la regione
Altri metodi per spedire messaggi senza l’utilizzo di canali sono:
• llOwnerSay: il messaggio verrà recepito soltanto dal proprietario
dell’oggetto
• llInstantMessage: invia un IM (instant message)
• llEmail: invia un’e-mail
Sono state decise inoltre delle specifiche per i comandi impartiti agli
script. Si è scelto, infatti, un sistema simile a quello della shell di Linux:
Nome-Comando-IN <-opzione> <argomento>
Ad esempio il comando “Alarm-IN –r 10” modifica il raggio dell’allarme
portandolo a 10 metri.
Il postfisso IN si riferisce a InfoNauti.
Possono essere eseguite più opzioni per volta come ad esempio “AlarmIN –s 1 –r 10”.
65
Implementazione
Tutti i comandi rispondono all’opzione “-h” (help) che descrive la sintassi
del comando completo di opzioni (figura 4.7). Questi comandi verranno trattati
più approfonditamente nel capitolo 5.
Figura 4.7: Esempio help
66
Guida all’utilizzo
5 Guida all’utilizzo
In questo capitolo verrà illustrato come utilizzare il materiale creato.
Saranno spiegati in dettaglio i comandi riguardanti gli apparati domotici.
5.1 I prefabbricati
Il kit di prefabbricati è suddiviso in cartelle. Ogni cartella contiene una
tipologia di elemento, ad esempio muri, porte, finestre, ecc.
Il kit creato è un pacchetto che contiene gli oggetti e gli script realizzati.
Per utilizzare questi elementi è necessario estrarre il pacchetto nel proprio
inventario. Cliccando sull’oggetto con il tasto destro del mouse e selezionando
l’opzione “Open”, si potrà vedere il contenuto del pacchetto. Cliccando ora sul
tasto “Copy to Inventory”, verranno copiati tutti i contenuti del pacchetto
nell’inventario (figura 5.1).
67
Guida all’utilizzo
Figura 5.1: Estrazione pacchetto
Per utilizzare il kit è sufficiente “trascinare” l’oggetto dall’inventario sul
mondo assicurandosi che nel terreno in cui si vuole costruire ci siano i permessi
di costruzione (figura 5.2). Nel caso sia presente l’icona in figura 5.3, il terreno
non è adibito alla costruzione.
A tutti gli elementi del kit non è stata assegnata nessuna texture, o meglio
è presente quella di default di Second Life: legno chiaro. Per assegnare una
texture all’oggetto, dopo averlo creato, entrare in modalità “edit” e nella scheda
“Texture” (figura 5.4) cambiare la texture selezionandone una dal proprio
inventario. In questo modo a tutte le facce dell’oggetto sarà assegnata la stessa
texture.
68
Guida all’utilizzo
Figura 5.2: Build
Figura 5.3: Icona “No-build”
69
Guida all’utilizzo
Figura 5.4: Scheda texture
Le principali opzioni disponibili nella scheda “Texture” oltre alla scelta
del colore e della texture sono:
• Transparency % : indica la percentuale di trasparenza che deve
avere la texture
• Full Bright : la luminosità viene impostata al massimo
• Repeats Per Face : modifica il numero di ripetizioni della texture in
orizzontale e in verticale
• Rotation : modifica il grado di rotazione della texture
• Repeats Per Meter : modifica il numero di ripetizioni della texture
per metro
70
Guida all’utilizzo
• Offset : modifica la traslazione della texture in orizzontale e in
verticale
Se si vuole fare in modo che alle facce dell’oggetto siano assegnate
texture differenti, si può usare lo script in figura 5.5.
Nell’esempio, la funzione “llGetInventoryName” ritorna il nome delle
texture che sono nelle posizioni 0 e 1 dell’inventario dell’oggetto. In seguito la
funzione “llSetTexture” assegna le texture alle facce selezionate dell’oggetto.
La prima texture dell’inventario viene assegnata alla faccia numero 0,
mentre la seconda viene assegnata a tutte le restanti facce (figura 5.6).
Figura 5.5: Script multi-texture
71
Guida all’utilizzo
Figura 5.6: Cubo multi-texture
Come già spiegato il pacchetto è suddiviso in cartelle. Ogni cartella
contiene una tipologia di elementi (archi, scale,ecc.). Per ogni tipologia è stato
creato un set di elementi diversi tra loro.
Figura 5.7: set di archi
72
Guida all’utilizzo
Figura 5.8: set di colonne
Figura 5.9: set di cupole
73
Guida all’utilizzo
Figura 5.10: set di finestre
Figura 5.11: set di porte
74
Guida all’utilizzo
Figura 5.12: set di mura
Figura 5.13: set di scale
75
Guida all’utilizzo
Figura 5.14: set di terrazzi
Su tutti gli elementi prefabbricati sono stati concessi i permessi di
modifica e di copia. In tal modo possono essere cambiate a proprio piacimento le
dimensioni e le caratteristiche dell’oggetto.
5.2 La domotica
Per inserire uno script in un oggetto, è sufficiente “trascinare” lo script
dall’inventario alla scheda “Content” dell’oggetto (figura 5.15).
Nel caso lo script richieda la presenza di file audio o di texture, trascinare
i file nella stessa scheda dove è stato inserito lo script.
Su tutti gli script riguardanti la domotica, sono stati concessi i permessi di
modifica e di copia. In tal modo possono essere modificati o perfezionati.
76
Guida all’utilizzo
Figura 5.15: Inserimento script
5.2.1 Luci
La sintassi del comando per le luci è:
Light-IN
Le opzioni e gli argomenti riconosciuti sono i seguenti:
• -h : mostra l’help (visualizza l’elenco di tutte le opzioni disponibili
con relativa descrizione)
• -s : attivazione/disattivazione del sensore di presenza. Gli
argomenti accettati sono 0 e 1 che indicano rispettivamente spento
e acceso.
• -r : modifica il raggio di azione del sensore. Gli argomenti accettati
sono tutti gli interi da 1 a 100. L’argomento è espresso in metri.
• -c : modifica il colore della luce. Gli argomenti accettati sono tutti
gli interi da 1 a 5. I numeri corrispondono in ordine crescente ai
colori: bianco, giallo, rosso, verde, blu.
77
Guida all’utilizzo
• -l : modifica il livello di luminosità della luce. Gli argomenti
accettati sono “meno” e “piu”. Il primo provoca una diminuzione
della luminosità mentre il secondo un aumento.
Di default i parametri usati sono: -s 1, -c 2, -r 5.
Il canale per l’ascolto dei comandi è lo 0. Se i comandi non vengono
percepiti dall’oggetto verificare che la distanza non sia eccessiva.
I comandi sono case-insensitive, ossia possono essere scritti sia in
minuscolo che in maiuscolo. Possono inoltre essere eseguite più opzioni per
volta.
Figura 5.16: Comando help light
5.2.2 Audio
La sintassi del comando per l’audio è:
Radio-IN
Le opzioni e gli argomenti riconosciuti sono i seguenti:
• -h : mostra l’help (visualizza l’elenco di tutte le opzioni disponibili
con relativa descrizione)
• -s : attivazione/disattivazione del sensore di presenza. Gli
argomenti accettati sono 0 e 1 che indicano rispettivamente spento
e acceso.
78
Guida all’utilizzo
• -r : modifica il raggio di azione del sensore. Gli argomenti accettati
sono tutti gli interi da 1 a 100. L’argomento è espresso in metri.
• -t : seleziona il numero della traccia da eseguire. Gli argomenti
accettati sono tutti gli interi da 1 a 5.
• -v : modifica il livello del volume di riproduzione. Gli argomenti
accettati sono tutti gli interi da 1 a 10. “1” indica il livello minimo
di volume mentre “10” il massimo.
Di default i parametri usati sono: -s 1, -t 1, -v 10, -r 5.
Il canale per l’ascolto dei comandi è lo 0. Se i comandi non vengono
percepiti dall’oggetto verificare che la distanza non sia eccessiva.
I comandi sono case-insensitive, ossia possono essere scritti sia in
minuscolo che in maiuscolo. Possono inoltre essere eseguite più opzioni per
volta.
Figura 5.17: Comando help radio
5.2.3 Antifurti
La sintassi del comando per gli antifurti è:
Alarm-IN
Le opzioni e gli argomenti riconosciuti sono i seguenti:
• -h : mostra l’help (visualizza l’elenco di tutte le opzioni disponibili
con relativa descrizione)
79
Guida all’utilizzo
• -s : attivazione/disattivazione del sensore di presenza. Gli
argomenti accettati sono 0 e 1 che indicano rispettivamente spento
e acceso.
• -r : modifica il raggio di azione del sensore. Gli argomenti accettati
sono tutti gli interi da 1 a 100. L’argomento è espresso in metri.
• -a : aggiunge un nome alla lista amici (il nome va digitato senza
spazi). Gli argomenti accettati sono di tipo stringa.
• -d : cancella un nome dalla lista amici (il nome va digitato senza
spazi). Gli argomenti accettati sono di tipo stringa.
• -l : visualizza la lista amici.
• -e : cancella tutti i nomi dalla lista amici.
Di default i parametri usati sono: -s 1, -r 5. La lista amici inizialmente è
vuota.
Il canale per l’ascolto dei comandi è lo 0. Se i comandi non vengono
percepiti dall’oggetto verificare che la distanza non sia eccessiva.
I comandi sono case-insensitive, ossia possono essere scritti sia in
minuscolo che in maiuscolo. Possono inoltre essere eseguite più opzioni per
volta.
Figura 5.18: Comando help alarm
80
Guida all’utilizzo
5.2.4 Porta domanda-risposta
La sintassi del comando per la porta è:
Door-IN
Le opzioni e gli argomenti riconosciuti sono i seguenti:
• -h : mostra l’help (visualizza l’elenco di tutte le opzioni disponibili
con relativa descrizione)
• -d : modifica la domanda posta dalla porta. Gli argomenti accettati
sono di tipo stringa.
• -r : modifica la risposta che viene ascoltata dalla porta. Gli
argomenti accettati sono di tipo stringa.
Di default i parametri usati sono: -d password?, -r infonauti.
Il canale per l’ascolto dei comandi è lo 0 per l’help e 111 per la modifica
della domanda e della risposta. Se i comandi non vengono percepiti dall’oggetto
verificare che la distanza non sia eccessiva.
I comandi sono case-insensitive, ossia possono essere scritti sia in
minuscolo che in maiuscolo. Possono inoltre essere eseguite più opzioni per
volta.
5.2.5 Porta blacklist
La sintassi del comando per la porta è:
Door-IN
Le opzioni e gli argomenti riconosciuti sono i seguenti:
• -h : mostra l’help (visualizza l’elenco di tutte le opzioni disponibili
con relativa descrizione)
• -a : aggiunge un nome alla blacklist (il nome va digitato senza
spazi). Gli argomenti accettati sono di tipo stringa.
• -d : cancella un nome dalla blacklist (il nome va digitato senza
spazi). Gli argomenti accettati sono di tipo stringa.
• -l : visualizza la blacklist.
• -e : cancella tutti i nomi dalla blacklist.
81
Guida all’utilizzo
Di default la blacklist è vuota.
Il canale per l’ascolto dei comandi è lo 0. Se i comandi non vengono
percepiti dall’oggetto verificare che la distanza non sia eccessiva.
I comandi sono case-insensitive, ossia possono essere scritti sia in
minuscolo che in maiuscolo. Possono inoltre essere eseguite più opzioni per
volta.
Figura 5.19: Comando help porta blacklist
5.2.6 Posizionamento dei sensori
I sensori di presenza vengono usati negli allarmi, nelle luci e nel jukebox.
Questi sensori hanno il campo d’azione di una sfera, il quale può essere
modificato riducendolo ad esempio a una semisfera.
E’ opportuno posizionare i sensori in modo che coprano solo la superficie
della stanza e non gli ambienti esterni ad essa.
Supponendo di usare una stanza di dimensioni 10 x 5 x 10 metri risulta
vantaggioso impostare il raggio d’azione a 5 metri, ridimensionare il campo del
sensore a una semisfera e posizionarlo al centro (figura 5.20).
82
Guida all’utilizzo
Figura 5.20: Posizionamento sensore – vista laterale
Nella figura 5.20 è rappresentata la visione laterale della stanza con il
sensore posizionato centralmente sul pavimento o sul soffitto.
Come si vede in figura 5.21, essendo il campo del sensore a forma di
sfera gli angoli della stanza non vengono coperti.
Figura 5.21: Campo sensore - vista dall'alto
Per ovviare a questo piccolo inconveniente si possono posizionare dei
sensori negli angoli della stanza come in figura 5.22.
83
Guida all’utilizzo
Figura 5.22: Sensori angolari - vista dall'alto
Un’alternativa a questa soluzione è data dall’utilizzo di solo due sensori
posti agli angoli opposti della stanza con raggio pari a 10 metri. Il problema che
si riscontra però è che con un raggio di 10 metri vengono coperte anche le stanze
al piano superiore e inferiore se la stanza non è abbastanza alta.
Per gli standard di misure adottate nei prefabbricati i sensori posti negli
angoli devono avere un arco pari a ¼ di sfera e un raggio di 5 metri.
Utilizzando un sensore centrale e quattro sensori angolari l’intera
superficie della stanza risulta coperta.
84
Conclusioni e sviluppi futuri
6 Conclusioni e sviluppi futuri
6.1 Conclusioni
Si sono studiate le tecniche per la costruzione e la programmazione su
Second Life. Successivamente è stato creato un pacchetto contenente un kit di
sviluppo per la realizzazione di edifici prefabbricati e un kit per
l’implementazione di applicazioni domotiche.
Con il kit di elementi prefabbricati realizzato, si ha la possibilità di
costruire una vasta gamma di edifici. Questo set comprende gli elementi base di
un edificio: archi, colonne, cupole, finestre, mura, porte, scale, terrazzi, tetti.
Su tutti gli elementi prefabbricati sono stati concessi i permessi di
modifica e di copia. In tal modo possono essere cambiate a proprio piacimento le
dimensioni e le caratteristiche dell’oggetto.
Il kit di applicazioni domotiche permette di far diventare l’edificio
costruito, un edificio più tecnologico. Non tutti i settori della domotica sono
realizzabili attualmente in Second Life, in quanto fattori come la temperatura e
l’umidità non sono presenti. Il set quindi comprende: controllo dell’impianto di
illuminazione, controllo dell’impianto audio, gestione della sicurezza tramite
antifurti e porte di sicurezza.
Su tutti gli script riguardanti la domotica, sono stati concessi i permessi di
modifica e di copia. In tal modo possono essere modificati o perfezionati.
Questo kit permetterà ai futuri studenti di costruire edifici prefabbricati
semplicemente assemblando vari elementi. Inoltre, utilizzando il kit di script
delle applicazioni domotiche si potranno rendere queste infrastrutture
85
Conclusioni e sviluppi futuri
automatiche, sperimentando varie situazioni e analizzandone vantaggi e
svantaggi.
Con questi due kit, il destinatario potrà quindi crearsi la casa di suo
gradimento e applicargli le applicazioni domotiche che preferisce.
6.2 Sviluppi futuri
Il set di prefabbricati realizzato è molto vasto e si possono creare svariati
tipi di edifici, ma, per quanto ampio possa essere non permette la costruzione di
qualsiasi edificio. Quindi, questo kit potrebbe essere ampliato con nuovi
elementi che ne aumentino le possibili infrastrutture costruibili.
Inoltre, tutti gli elementi del kit sono stati realizzati con le primitive
(prim) fornite da Second Life. Questo implica un costo elevato in fatto di
numero di primitive utilizzate per costruire una casa. Per ridurre questo numero
si può ricorrere alle sculpted prims. Il vantaggio di usare le sculpted prims è che
l’oggetto ottenuto verrà considerato come un’unica prim e quindi si ridurrà
notevolmente il numero di prim utilizzate.
Il set di script per applicazioni domotiche comprende il controllo delle
luci, dell’impianto audio e il settore della sicurezza (antifurti e porte di
sicurezza). Gli unici due settori non implementati sono il controllo dell’ambiente
e del video. Il primo potrà essere implementato se verranno inserite in Second
Life delle caratteristiche ambientali come umidità e temperatura che al momento
non sono presenti. Per quanto riguarda il secondo settore, per implementarlo è
necessario possedere un terreno in Second Life sul quale fare streaming video.
86
Bibliografia
Bibliografia
[REA08] Realtà virtuale, 2008,
http://it.wikipedia.org/wiki/Realt%C3%A0_virtuale
[MON08] Mondo virtuale, 2008,
http://it.wikipedia.org/wiki/Mondo_virtuale
[EDU08] Edutainment, 2008,
http://it.wikipedia.org/wiki/Edutainment
[SEC08] Second Life, 2008,
http://it.wikipedia.org/wiki/Second_life
[PRE08] Prefabbricato, 2008,
http://it.wikipedia.org/wiki/Prefabbricato
[DOM08] Domotica, 2008,
http://it.wikipedia.org/wiki/Domotica
[CPL08] Schema domotica, 2008,
http://www.cpl.it/prodotti_e_servizi_cpl/building_automation/dom
otica/obiettivi_e_vantaggi
87
Scarica

prefabbricati e domotica su second life: creazione di un kit di sviluppo