Tesi Paolo Perego2 - Sensibilab

Transcript

Tesi Paolo Perego2 - Sensibilab
POLITECNICO DI MILANO
FACOLTÀ DI INGEGNERIA DEI SISTEMI
Corso di Laurea Specialistica in Ingegneria Biomedica
BCI E AMBIENTE DOMESTICO:
INTERFACCIAMENTO DI UN SISTEMA SSVEP
CON UN SISTEMA DOMOTICO COMMERCIALE.
Relatore: Chiar.mo Prof. Giuseppe Andreoni
Correlatore: Ing. Luca Maggi
Ing. Sergio Parini
Tesi di Laurea di:
Paolo Perego
Matr. 680555
Anno Accademico 2006/2007
…Alla mia famiglia
Ringraziamenti
Ringraziamenti
Mettimi come sigillo sul tuo cuore,
come sigillo sul tuo braccio;
perché forte come la morte è l’amore,
tenace come gli inferi è la passione:
le sue vampe son vampe di fuoco,
una fiamma del Signore!
Cantico dei Cantici (8,6)
“Ok, la tesi è finita, manca solo il capitolo più importante, i ringraziamenti”, questa è la
prima cosa che ho pensato quando mi sono chiesto cosa avrei scritto nei ringraziamenti.
Questi anni trascorsi all’università hanno contribuito sì allo sviluppo del mio bagaglio
culturale, ma non è nulla in confronto di quanto i famigliari, i vecchi ed i nuovi amici
hanno contribuito alla mia crescita morale. È per questo che in questa pagina voglio
ringraziare tutti coloro che mi sono stati vicini in questi anni, perché ognuno di loro, anche
se in piccola parte, fa parte di me e di quello che sono.
Primi fra tutti non posso che ringraziare con tanto amore i miei familiari, soprattutto i miei
genitori, papà Natale e mamma Rosella, che mi hanno permesso di arrivare a questo
traguardo, sostenendomi nei momenti più difficili e trattenendomi nei momenti di euforia,
assecondando le mie scelte sia in ambito accademico che nella vita di tutti i giorni. Un
pensiero di ringraziamento va anche ai miei fratelli: Massimo (che mi ha fornito i contatti
con Bticino) e Mario che mi hanno sopportato in questi anni di studio, soprattutto nei
periodi di esame quando la mia trasformazione in “ingegnere pedante” diventava completa.
Un grande ringraziamento anche “alla Zia Luigia” sempre presente e disponibile, e ai miei
cugini, in particolare a Marina per le sue battute senza senso e al piccolo Matteo, per le
partite giocate in giardino e le ore passate a rimontare le costruzioni di Lego.
Un grazie va anche ai compagni della Pallavolo, a Miriam e Angelo co-redattori del
giornalino interparrocchiale e ai ragazzi dell’oratorio: a Giulia (compagnia immancabile ed
instancabile di tutti i gironi in stazione, sul treno ed in oratorio), Elena, Christian, Stefano,
-3-
Ringraziamenti
Marino, Mattia e agli altri animatori, compagni di gioco e relax settimanale. Come non
ringraziare i nuovi amici del treno per Lecco: Laura, Claudia, Giulia, Davide, Lorenzo, Mr.
Farina e il Tecchio, per la compagnia e le sane risate offertemi tutti i giorni; e tutti gli
amici dell’università: Fra, Teo, Gabry B., Nox, Gabriele P., Marco P., Oriana, Cristina,
Sonia, Marlen, i due Andrea M., Stefania, Marco Z. e tutti coloro che mi facevano
compagnia durante le mille ore di lezione settimanali.
Un ringraziamento particolare va al prof. Andreoni, per avermi dato l’opportunità di
svolgere questa tesi (e perché si fa chiamare Giuseppe anche dai suoi studenti); a Luca M.
(un pozzo di conoscenza di C++) per la sua costante presenza e disponibilità, per tutti i
chiarimenti e le spiegazioni senza le quali sarei ancora agli #include. Grazie a Luca P. per i
suoi consigli “tecnico tattici”, a Guido P. per la sua pungente simpatia e a Sergio P.
(ingegnere fuori ma designer dentro) per le dritte sulla computer graphic.
Ringrazio anche Bticino Spa di Erba, ed in particolare l’ing. Enrico Valtolina e l’ing. Lucia
Baldari che hanno gentilmente offerto al laboratorio un sistema domotico completo, grazie
per la disponibilità e la gentilezza dimostratami.
Un grazie va anche a Marco V., responsabile della logistica di Campus Point (non
chiamatelo bidello altrimenti si arrabbia) per il lavoro manuale a cui mi sottoponeva quasi
tutti i giorni, per i caffè (scroccati) e per i minuti passati a chiacchierare di sport..
Grazie mille!!!
Paolo
-4-
Indice
Indice
Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 5 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 7 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 13 1. Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 18 2. Stato dell’arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 23 2.1
BCI - Brain Computer Interface . . . . . . . . . . . . . . . . . . . . - 23 -
INTRODUZIONE ALLA BRAIN COMPUTER INTERFACE........................ - 23 LE PARTI DEL SISTEMA BCI .............................................................. - 24 IL PROTOCOLLO BCI ........................................................................ - 27 -
2.2
Cenni di Fisiologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 27 -
POTENZIALI PER SISTEMI BCI ........................................................... - 27 PATOLOGIE NEURO-MUSCOLARI [I,II,III] ........................................ - 31 -
2.3
Domotica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 37 -
3. Studio e ricerca delle componenti del sistema . . . . . . . . . - 43 3.1
Sistemi Domotici Commerciali. . . . . . . . . . . . . . . . . . . . . - 43 -
LA SCELTA DEL SISTEMA DOMOTICO ............................................... - 43 COS’È IL MYHOME ........................................................................... - 47 OPENWEBNET .................................................................................. - 53 -
3.2
Il FrameWork BCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 55 -
BREVE PANORAMICA DEL SISTEMA ................................................... - 55 L’UNITÀ DI ACQUISIZIONE ............................................................... - 57 SOFTWARE DI INTERFACCIA HARDWARE .......................................... - 58 L’INTERFACCIA GRAFICA UTENTE ................................................... - 59 IL PROTOCOLLO SSVEP ................................................................... - 60 IL BIOFEEDBACK .............................................................................. - 64 -
Indice
4. Sviluppo del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 66 4.1
Implementazione del sistema Domotico MyHome . . . . . . - 66 -
4.2
Sviluppo del Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 70 -
LE LIBRERIE UTILIZZATE.................................................................. - 70 SOFTWARE DI CONFIGURAZIONE E TESTING ................................. - 75 IL SOFTWARE CONFIG_BCI .............................................................. - 75 IL FILE DI CONFIGURAZIONE ............................................................. - 77 IL SOFTWARE CREA_SCENARI .......................................................... - 78 IL SOFTWARE MYBCI ...................................................................... - 80 IL SOFTWARE DI INTERFACCIA BCI: AENIMA .............................. - 82 LA STRUTTURA DEL SOFTWARE AENIMA ......................................... - 82 CONTROLLO DEL CURSORE ............................................................... - 86 I PROTOCOLLI ................................................................................... - 89 -
4.3
Il Circuito Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 97 -
5 .Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 104 6. Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 109 Appendice I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 111 Appendice II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 115 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 126 -
-6-
Sommario
Sommario
Parole chiave: Brain Computer Interface, domotica, Steady-State Visual Evoked Potential.
Con lo sviluppo delle nuove tecnologie ed il crescente interesse dei media per tutto ciò che
concerne il concetto di inclusione sociale e disabilità, è sempre più all’ordine del giorno
l’importanza di fornire alle persone diversamente abili o soggette a patologie
neuromuscolari degenerative strumenti che permettano loro di vivere una vita il più
possibile normale e indipendente.
Per inclusione sociale (o e-inclusion) si intendono tutte quelle attività atte all’abbattimento
delle barriere fisiche, tecnologiche e culturali. Molti strumenti utilizzati ogni giorno dalla
maggior parte delle persone risultano inutilizzabili per soggetti diversamente abili o affetti
da patologie neuromuscolari gravi. L’utilizzo di Internet da parte di un soggetto costretto
all’immobilità, o l’interazione con la propria abitazione di un paziente affetto da sclerosi
laterale amiotrofica sono due esempi dell’importanza che l’abbattimento di queste barriere
ha in ambito sociale.
Da molti studi psicologici è emerso inoltre come un paziente disabile, costretto
temporaneamente all’immobilità, risponde in modo migliore alle cure ed è meno soggetto a
depressione quando posto in una condizione di indipendenza dagli altri.
La domotica può essere uno strumento molto utile a questo scopo in quanto offre la
possibilità, a qualsiasi persona, di interagire con l’ambiente che lo circonda. L’utilizzo
congiunto della Brain Computer Interface offre inoltre uno strumento utile per risolvere
alcuni di questi problemi, soprattutto nei casi di disabilità motoria grave in cui il soggetto
non è in grado di muovere alcuna parte del corpo.
Scopo dell’attività di tesi è quello di dimostrare la concreta possibilità di utilizzo di questi
strumenti; in particolare sfruttare le potenzialità di un sistema BCI basato su protocollo
SSVEP per controllare un sistema domotico direttamente attraverso le onde celebrali. Per
tale motivo sono stati sviluppati differenti software per l’interfacciamento di un sistema
-7-
Sommario
BCI con alcune applicazioni, che possono rivelarsi indispensabili per consentire al soggetto
disabile una maggiore, se non completa, indipendenza.
Il progetto è basato sull’interfacciamento del framework BCI, implementato dal laboratorio
Sensibilab del Politecnico di Milano, con un sistema domotico commerciale (MyHome di
BTicino). Per il progetto è stato allestito un dimostratore funzionante presso gli spazzi del
nuovo Campus Point di Lecco, ove sono state eseguite prove su un campione di soggetti
sani.
L’interfacciamento con un sistema domotico commerciale permette di studiare le
potenzialità di una BCI con protocollo SSVEP in una situazione reale, testando il sistema
nei suoi punti più critici come la condizione di luminosità, il rumore acustico, lo stato del
paziente…
Ulteriore obiettivo della tesi è stato inoltre l’analisi delle performance del sistema stesso
per una valutazione dei possibili applicativi futuri implementabili.
I risultati ottenuti nei test con alcuni soggetti sani mostrano che il sistema ha un transfer
rate dell’ordine di 25 bits/minuto, più che sufficiente per controllare gli applicativi
implementati per il controllo della domotica e del videogame.
I risultati confermano inoltre che un tale sistema per il funzionamento si basa sul controllo
del movimento degli occhi; tale prerequisito restringe il numero di possibili applicazioni,
in quanto non è plausibile un suo utilizzo in casi in cui il soggetto non sia in grado di
controllare la direzione dello sguardo, per esempio per pazienti affetto da sclerosi laterale
amiotrofica grave. Un sistema basato su Brain Computer Interface risulta comunque
migliore di un sistema di eye-tracking sia per i costi più contenuti, sia per l’insensibilità al
nistagmo oculare che contrariamente rende inutilizzabile il sistema basato sul rilevamento
dello sguardo.
L’elaborato di tesi è stato suddiviso in otto capitoli, strutturati in modo da seguire ogni
passo nell’implementazione del progetto.
Il primo capitolo consiste di una breve introduzione: viene proposta dapprima una
spiegazione di ciò che è realmente la domotica, descrivendo l’etimologia del nome stesso e
riportando alcune delle caratteristiche principali che hanno contribuito al suo sviluppo
negli ultimi anni. Si passa successivamente ad una breve descrizione dei problemi
-8-
Sommario
riguardanti l’utilizzo della domotica da parte dei disabili, sia come ausilio educativo e di
riabilitazione, sia come strumento a vantaggio dello stile e della qualità della vita; vengono
inoltre riportati anche alcuni dati esemplificativi della situazione dei pazienti soggetti a
patologie neuromuscolari in Italia. Il capitolo si concentra poi sulla Brain Computer
Interface riportandone una definizione e una breve descrizione dei metodi di acquisizione
del segnale più utilizzati, con relativi pregi e difetti.
In conclusione, vengono quindi illustranti gli obiettivi primari del lavoro di tesi.
Il secondo capitolo descrive lo stato dell’arte nel campo della BCI e della domotica.
Nel primo paragrafo è riportata una descrizione esauriente della Brain Computer Interface:
viene inizialmente riportata la definizione di BCI introducendone le caratteristiche che ne
differenziano le varie topologie (invasiva e non invasiva, dipendente e indipendente).
Successivamente sono illustrate le parti che compongono un sistema di BCI a partire
dall’acquisizione del segnale, il signal processing, la classificazione ed una descrizione
dell’importanza che riveste il biofeedback nell’intero funzionamento del framework.
Nel secondo paragrafo sono riportati alcuni cenni di fisiologia. Qui vengono presentati i
segnali celebrali che possono essere utilizzati per l’implementazione della BCI: di questi
viene riportata la morfologia, le caratteristiche e la posizione in cui possono essere rilevati
attraverso EEG.
Nella seconda parte del paragrafo vengono per contro descritte le patologie neuromuscolari
più diffuse, per cui l’utilizzo di un sistema di Brain Computer Interface potrebbe essere
utile come ausilio per la riabilitazione ed il miglioramento delle condizioni di vita del
paziente.
Nel terzo capitolo sono descritte le componenti e le basi da cui si è partiti per lo
sviluppo dell’interfacciamento del sistema BCI con la domotica MyHome.
Nel primo paragrafo sono riportate le descrizioni dei sistemi domotici: dapprima viene
proposto il confronto eseguito tra i vari sistemi domotici commerciali ed i vari standard.
Da questo vengono evidenziate le caratteristiche più importanti che hanno portato a
scegliere la domotica di BTicino come sistema da implementare.
La scelta di utilizzare un impianto domotico commerciale è supportata principalmente
dalla riproducibilità di un tale sistema; qualora infatti si dovesse ricreare un sistema simile
-9-
Sommario
in altra locazione, occorrerebbe difatti solamente richiedere l’istallazione di un nuovo
impianto MyHome, senza preoccuparsi di modificare alcunché del sistema BCI.
Successivamente viene riportata una esauriente descrizione delle caratteristiche del sistema
domotico a cui si aggiunge una descrizione dettagliata della struttura e delle funzionalità
che sono state utilizzate durante l’implementazione del progetto. Da ultimo viene descritto
l’OpenWebNet, linguaggio aperto di Bticino per la comunicazione con i dispositivi
MyHome tramite gateway residenziali o interfacce specifiche.
Nella seconda parte del capitolo viene presentato il framework BCI sul quale ci si è basati
per l’interfacciamento con la domotica. Nel paragrafo è riportata una breve descrizione dei
blocchi che compongono tale sistema: l’hardware per l’acquisizione del segnale, il
software di acquisizione ed elaborazione dei dati e l’interfaccia grafica utente (AEnima).
Viene inoltre descritto per fasi l’intero protocollo SSVEP, partendo dalla preparazione del
soggetto (disposizione e controllo degli elettrodi, addestramento del soggetto, etc.) e
proseguendo con la descrizione delle tre fasi necessarie per rendere operativo il sistema: il
protocollo di screening per la ricerca delle frequenze di trascinamento, il protocollo di
training per l’addestramento del classificatore, il protocollo di testing per la verifica del
corretto funzionamento dell’intero framework.
Come ultimo è riportata una breve spiegazione del biofeedback implementato. Viene
descritto dapprima il feedback basato sui classificatori, solitamente implementato dai
sistemi BCI, riportandone pregi e difetti, e successivamente il feedback realmente
implementato nel sistema, sottolineandone i miglioramenti rispetto al precedente.
Il quarto capitolo descrive la parte progettuale eseguita durante il lavoro di tesi. Il
primo paragrafo mostra l’implementazione del sistema MyHome, descrivendo le
caratteristiche dell’impianto ricreato. Nel secondo paragrafo viene invece riportata la
descrizione del software implementato a partire dai programmi di configurazione e di
testing: si tratta di tre applicativi Windows© based indispensabili per la configurazione
della domotica e per il testing dell’impianto ultimato. Ne segue la descrizione del software
di
interfaccia
utente
per
la
BCI (AEnima).
Viene
fornita
una
panoramica
dell’implementazione e del funzionamento del software, passando successivamente alla
spiegazione dei singoli protocolli realizzati per la domotica e per il videogame.
- 10 -
Sommario
L’implementazione del videogame è utile per misurare le prestazioni del sistema in quanto,
in questo caso, il sistema risulta più accattivante ed il soggetto è più coinvolto e può
interagire in maniera completa con il sistema permettendo al ricercatore di eseguire delle
misure che rispecchiano maggiormente la realtà rispetto al caso del test standard.
Viene inoltre presentato lo studio eseguito sul controllo del cursore tramite BCI, riportando
le tre tipologie di comando implementate nel software.
In questo capitolo vengono anche illustrate tutte le librerie che sono state utilizzati nel
corso della tesi per lo sviluppo del software: ne viene data una breve descrizione
menzionando le funzioni implementate e, in alcuni casi, riportando parte di codice C++
per meglio comprendere il funzionamento delle stesse.
Il terzo paragrafo descrive la progettazione e lo sviluppo dell’interfaccia Bluetooth®. Per
questa vengono dapprima illustrati i motivi per cui si necessita di un collegamento wireless
tra la BCI e la domotica, riportando una breve descrizione del protocollo Bluetooh®; ne
segue la descrizione del circuito e della realizzazione del circuito stampato, nonché la
spiegazione dei singoli blocchi che compongono il circuito.
Il quinto ed il sesto capitolo contengono rispettivamente i risultati e le conclusioni
evidenziate durante le acquisizioni eseguite in laboratorio. Nel primo è riportato il
protocollo con cui sono state eseguite le acquisizioni sui soggetti, descrivendone i risultati
ottenuti ed il calcolo delle performance del sistema BCI.
Il secondo riporta invece le conclusioni estratte dai risultati ottenuti nel corso delle prove,
descrivendo inoltre i possibili miglioramenti e sviluppi futuri sia per il framwork BCI, sia
per gli applicativi implementabili.
Nell’elaborato sono inoltre presenti due appendici a corredo dell’intero lavoro
svolto. La prima appendice riporta una breve descrizione della procedure necessaria per la
configurazione del sistema MyHome. Questi non vuole essere un manuale, ma
semplicemente la spiegazione di come è stata eseguita la configurazione dell’impianto
domotico ricreato in laboratorio.
La seconda appendice riporta invece la relazione del progetto eseguito durante il corso di
Soft Computing (2007). Il progetto ha come obiettivo lo studio della possibilità di
implementazione di una rete neurale artificiale ricorrente per il riconoscimento di
- 11 -
Sommario
potenziali P300. Si è ritenuto opportuno aggiungere questa parte in quanto trattasi di un
argomento del tutto simile a quello sviluppato durante la tesi.
- 12 -
Abstract
Abstract
Keywords: Brain Computer Interface, home automation, Steady-State visual Evoked
Potential.
With the development of new technologies and the rising interest of media for all that
regard the concept of social inclusion and disability, it’s always more in agenda the
importance to provide invalid people or patients affected by neuromuscular diseases with
tools that allow them to live an as much as possible normal and independent life.
Social inclusion (or e-inclusion) is the set of activities for the demolition of physical,
technological and cultural barriers. Many tools used everyday by most people are unusable
by disabled or subject affected by serious neuromuscular diseases. The use of Internet by a
bedridden person, or the interaction with domotics by SLA patients are two examples of
the importance that the demolition of this barriers have in social environment.
From many psychological study it’s evident that a patient, forced to immobility, better
responds to cure and suffers less by depression, and other mental diseases, if the same
patient, paradoxicalally, is in a condition of independence from others.
Like that aim, the Brain Computer Interface can be an essential tool to solve some of this
problems, above all in the cases of serious diseases of muscular system in which the
subject isn’t able to move any parts of his body.
The intent of this thesis is to demonstrate the possibility to use this tool; particularly to
exploit the potential of a BCI system based on SSVEP protocol to control an home
automation system.
For this reason different software were developed to interface the BCI system with some
applications, that can be essentials to allow bedridden person a better, if not complete, selfsufficiency.
The project is based on the interfacing of the BCI framework, implemented at Sensibilab
of Politecnico di Mialno, with a commercial home automation system (Bticino MyHome).
- 13 -
Abstract
The interface with this commercial home automation system allows to study the
performance of a SSVEP based BCI in a real situation, testing the system in its more
critical point such as light conditions (that prevent in several case the corrected vision of
the stimulators), acoustic noise (the presence of other people’s conversation decreases the
power of the SSVEP signal), the patient state (drowsiness, visual disease), etc.
Another aim of the thesis is furthermore the study of the performance of the system for the
evaluation of the possible application for future development.
During the activity, some tests has been executed on ten healthy subjects: these have been
submitted first to a screening exam to verify the presence of the SSVEP signal; from this it
is result that, on average, the 40% of the population doesn’t generate SSVEP if subjected
to a flashing stimuli.
The subjects with SSVEP have been submitted to the Training phase to train the classifier
algorithm and to the following Testing protocols.
The results show that the system has an average transfer rate of 27 bits/minutes, more than
sufficient to command the applications implemented for the control of domotics and
videogame.
The results confirm also that a system like this, for the working, rely on the user’s ability to
control eye movements; this pre-condition limits the number of possible application,
inasmuch it’s not possible to use it, for example, for same sever ALS patients in which the
subject is not able to control the look. A BCI system results however better than an eyetracker system both for contained costs, both for the insensibility to nystagmus that,
despite, gives the system based on glance detection unusable.
The thesis’ text is divided in eight chapters that are structured so that it can be possible
follow every step of the project’s development.
The first chapter consists of a short introduction: first an explanation of what
domotics is really is proposed, describing the etymology of the name itself and reporting
some of the main characteristics that have conduced to its progress in the last years.
Subsequently it passes to a brief description of the problems concerning the use of the
home automation by invalid people, both as educational and rehabilitative aid, both as
- 14 -
Abstract
usefulness tool for the style and quality of life; it also reports some exemplifying
information for the situation of the patient affected by neuromuscular diseases in Italy. The
chapter focuses itself on the Brain Computer Interface reporting the definition and a short
description of the most used acquisition methods for the signal, with their relative quality
and lack.
Afterword, the text proposes a possible solution to the problem related to the use of home
automation by disadvantaged, introducing the interface of the domotics with a Brain
Computer Interface system. The main aims of the thesis are therefore here illustrated.
The second chapter deal with the art’s state. In the first section a brief description of
the Brain Computer Interface is reported: the definition of BCI is first given and then the
features that distinguish different kinds are introduced (invasive and non-invasive BCI,
dependent and independent BCI). The text illustrates then the parts that compose a Brain
Computer Interface system from the signal acquisition, signal processing, to the
classification and a brief description on the importance of the biofeedback for the working
of the framework.
In the second paragraph there are nods of physiology. Here, brain signals that can be used
for the implementation of BCI are presented: for these, morphology, features and the
position where they can be measured with external electrode for EEG have been reported.
The second half explains the most rife neuromuscular diseases, for which the use of BCI
can be useful like an aid for rehabilitation and improvement of the patient’s life conditions.
The third chapter draws the components and the bases to develop the interface
between BCI and home automation.
The first paragraph includes the description of the domotics systems: first it is reported a
compare between the different commercial home automation and standards. From this
comparison the main characteristics that have bring to choose the BTicino home
automation system are underlined.
The choice to use a commercial home automation system is supported by the
reproducibility of a system like this; in the event to recreate similar system in an other
place, it would be necessary only to demand the installation of a new MyHome implant
without modify nothing of the BCI system.
- 15 -
Abstract
Hereafter it is reported a brief description of the features of the MyHome to which is added
a detailed description of the structure and functionalities that was used during the
development of the project.
Lastly it is described the OpenWebNet, an open language by BTicino for the
communication with Myhome’s devices by means of residential gateways and specific
interfaces.
The second paragraph describes the BCI framework that has been used as start for the
interface witch the domotics. In the paragraph is reported a brief explanation of the blocks
that form the system: the hardware of signal acquisition, the software for data
storing/elaboration and the graphics user interface (AEnima). The text also describes step
by step the entire SSVEP protocol, starting from the subject’s preparing (arrangement and
control of the electrodes, explanation of the system to the subject, etc.) and going on with
the description of the three necessary phase to make the system running: the screening
protocol to find the pulling frequencies; the training protocol to instruct the classificatory;
the testing protocol to verify the correct working of the entire system.
In the end the chapter gives a brief explanation of the biofeedback implemented in the
framework, drawing at first the feedback based on classificators, usually implemented by
many BCI systems, with its merits and defects and after the true feedback implemented in
the BCI system of the laboratory, underlining the improvement produced comparing with
the preceding.
The fourth chapter describes instead the most practical part of project. The first
paragraph explains the implementation of MyHome system reporting the characteristics of
the created electrical plant. In the second paragraph the description of the configuration
and testing software is shown: they consist of three Windows© based applications needful
for the configuration of the home automation and the testing of finished electrical plant.
Given the characteristics of the three applications, these software can be easily used also as
an interface for the remote control of the domotics.
The paragraph continues with the description of the graphics user interface application for
the BCI system (AEnima). The script first provides a view of the implementation ad
working of the software, and then it explaines all the protocols that have been realized for
home automation ad videogame.
- 16 -
Abstract
The videogame has been developed to make the system more fascinating and engaging,
and to allow the subject to be more involved and can fully interact with the system
allowing the researcher to execute more realistic measures then the first testing protocol.
It is also presented the study performed on the control of the cursor movement reporting
the three kind of command that have been implemented in the software.
In this chapter all the libraries that were been used during the software development are
also illustrated: for these, it is given a brief explanation reminding the implemented
functions and, in some cases, reporting part of the C++ code to better understand the
functioning of themselves.
The last section reports the design and development of the Bluetooth® interface. For this
the text first shows the reasons for which a wireless connection is essential; it is also
reported a brief description of the Bluetooth® protocol. Follow the description of the
circuit, the production of the printed circuit board, and likewise the explanation of the
blocks that compose the circuit.
The fifth and sixth chapter are respectively the results and conclusion of the thesis’
job. The first one reports the protocol with which the acquisitions on the subject have been
executed, describing also the obtained results and the computation of the BCI performance.
The second one reports instead the conclusion and the future expectations deal from the
acquisition above.
In the thesis’ text there are also two appendixes as outfit of the entire working.
The first appendix reports a short description of the necessary procedures for the
configuration of the MyHome system. This will not be a guide, but simply the explanation
of how the configuration of the plant has been executed.
The second appendix reports instead the text relation of the project that has been done in
the class of Soft Computing (2007). The project has the aim to study the chance to
implement an recurrent artificial neural network to recognize of P300 potentials. This work
has been added because doing part of the same study of the thesis.
- 17 -
Introduzione
1
Introduzione
Un passo indietro,
poi sempre avanti.
Avanti, sempre e comunque.
Eiichiro Oda (One Piece)
Si è da pochi anni concluso il secolo che verrà ricordato nella storia come il secolo
dell’informatica e delle nuove tecnologie. Nelle nostre case e nella vita di tutti i giorni
ognuno di noi non può più fare a meno della tecnologia, basti pensare alla televisione, al
telefono cellulare o anche ai più semplici elettrodomestici come il forno, che ormai sono
dotati di centraline avanzate.
Una nuova branca di queste scienze, nata in questi ultimi anni, è la domotica il cui termine
deriva dall’importazione del neologismo francese domotique, a sua volta contrazione della
parola greca domos (casa, edificio) e di automatique (automatica, o secondo alcuni
informatique, informatica), quindi letteralmente casa automatica .
La domotica è quindi la disciplina che si occupa dell'integrazione delle tecnologie che
consentono
di
Dall’integrazione
automatizzare
dei
una
dispositivi
serie
elettrici,
di
operazioni
elettronici
ed
all’interno
della
casa.
elettrodomestici,
sino
all’integrazione di sistemi di comunicazione, di controllo e sorveglianza presenti nelle
abitazioni.
Fino ad oggi le case domotiche nel vero senso del termine sono ancora poco diffuse, forse
per la riluttanza da parte della popolazione ad affidarsi completamente alla tecnologia, e
restano quindi un’immagine di fantascienza che spesso e volentieri viene a trovarsi
proiettata nei film, anche come parte negativa del caso, incutendo ancor più timore in quei
possibili futuri consumatori.
- 18 -
Introduzione
Tuttavia la domotica copre un ruolo importante nel campo della disabilità: è infatti
strumento efficace e, forse indispensabile, come aiuto nell’abbattimento delle barriere
architettoniche, per il sostentamento e la facilitazione nello svolgimento delle abituali
azioni di malati e di persone diversamente abili. Basti pensare alla possibilità di alzare le
tapparelle con un semplice tasto, vedere chi suona alla porta dalla TV, accendere le luci o
qualsiasi altro elettrodomestico con un unico comando.
Come detto in precedenza, un sistema di Home Automation necessita comunque di un
comando in ingresso che deve essere necessariamente dato dall’utente per mezzo dei più
comuni sistemi di input quali pulsanti, interruttori o tastiere. Questo comporta da parte
dell’utente l’utilizzo dei normali canali di comunicazione del corpo con il mondo esterno, i
muscoli, per lo svolgimento di azioni motorie con lo scopo di attivare uno dei suddetti
comandi.
Può risultare quindi difficile per alcuni soggetti impossibilitati ai movimenti utilizzare
questo tipo di apparecchiature. Rimangono quindi esclusi dalle agevolazioni portate dalla
domotica tutti quei soggetti che hanno una disabilità grave, come i malati di tetraplegia,
distrofia muscolare, sclerosi laterale amiotrofica, sclerosi multipla, danni alla colonna
vertebrale o al tronco encefalico, e tutte quelle malattie che vanno a distruggere il canale
neuromuscolare che permette una comunicazione con il mondo esterno attraverso il
movimento. Ad oggi la sopravvivenza di tali pazienti e le aspettative di vita sono
aumentate, grazie agli interventi di tracheotomia, chirurgia ed all’utilizzo di respiratori,
mentre la qualità della vita risente della totale necessità di assistenza, dell’impossibilità di
fare delle scelte autonome ed a volte di importanti problemi di comunicazione. Per meglio
intuire quale possa essere l’importanza della domotica per questi soggetti viene riportato di
seguito (Fig. 1) un grafico riportante la percentuale dei pazienti in Italia affetti da patologie
neuromuscolari per cui l’utilizzo di un sistema domotico potrebbe, in qualche modo,
agevolare tutte quelle azioni abituali che altrimenti sarebbero rese altresì impossibili, ed
aumentare così, in maniera significativa, l’autonomia di tali soggetti che sarebbero
altrimenti totalmente dipendenti.
A tale proposito sarebbe necessaria un’alternativa al normale canale neuromuscolare per
permettere a questi pazienti di utilizzare le tecnologie di home automation. È qui che
interviene la bioingegneria cercando di creare una via di comunicazione per il cervello
alternativa.
- 19 -
Introduzione
6%
5%
5%
4%
3%
2%
1%
1%
1%
0,05%
0,01%
Altre malattie
neuromuscolari
Sclerosi
Multipla
Sclerosi
laterale
amiotrofica
Tetraplegia
Dstrofia
Muscolare
0%
Fig. 1:Percentuale dei pazienti in Italia affetti da malattie neuromuscolari
Negli ultimi anni la ricerca e lo sviluppo tecnologico hanno aperto nuovi scenari per quello
che concerne l’utilizzo di biosegnali. Oltre ai contesti classici della diagnosi e
dell’identificazione dello stato di salute del soggetto in ambito clinico, la rilevazione dei
biosegnali può essere associata a sistemi di interfaccia uomo-macchina (HMI, HumanMachine Interface):
sistemi sviluppati con la finalità di supportare alcuni soggetti
nell’interazione e nell’utilizzo di dispositivi, e di migliorare l’accessibilità a diversi
contesti, soprattutto per persone diversamente abili e malati con ridotte capacità motorie.
Le interfacce di nuova generazione stabiliscono una modalità di interazione tipicamente
“umana”, basata su voce, gestualità, movimenti degli occhi e una serie di messaggi nonverbali che possono essere estratte, dopo un’accurata analisi, dai segnali biomedici, in
particolare ECG (ElettroCardioGramma), EDA (electro-dermal activity) e EEG
(ElettroEncefaloGramma). In questo ultimo caso si parla in modo specifico di BCI (Brain
Computer Interface).
La BCI presuppone quindi l’estrazione di segnali biologici che possono essere rilevati,
oltre che dall’EEG, attraverso differenti tecnologie di indagine, misura ed imaging,
dell’attività celebrale:
-
MEG (Magneto Encefalogramma), PET (Tomografia ad emissione di Positroni),
FMRI (Risonanza Magnetica Funzionale) richiedono tecniche avanzate ed alti
costi, inoltre hanno costanti di tempo lunghe e sono quindi poco adatte per
comunicazioni rapide.
- 20 -
Introduzione
-
EEG (Elettro Encefalogramma), segnale veloce e registrabile con tecniche poco
costose ed affidabili.
-
NIRS (Spettroscopia nel vicino infrarosso), tecnica diagnostica non invasiva e real
time in grado di misurare l’ossigenazione tissutale: relativamente a basso costo e
con una risoluzione spaziale abbastanza elevata; non è però ancora molto diffusa.
Questo tipo di tecnologia ha una bassa risoluzione temporale che impedisce di
visualizzare chiaramente cambiamenti repentini nell’attività celebrale; ciò
comporta un difficile utilizzo di tale tecnologia per la BCI che di conseguenza
avrebbe un transfer rate molto basso.
Dalle caratteristiche evidenziate l’EEG risulta quindi il metodo ottimale per la BCI e, data
la sua versatilità ed il basso costo, è utilizzato anche in molte altre aree tra cui lo studio di
disordini neurologici, lo studio delle funzioni celebrali e la sperimentazione e lo studio di
nuove terapie.
Da quando, nel 1929, lo psichiatra tedesco Hans Berger ha presentato il primo lavoro
sull’elettroencefalografia umana, nella mente di molti (ricercatori e non) si è affacciata
l’idea che un soggetto possa utilizzare il proprio pensiero, il proprio segnale cerebrale, per
comandare dei dispositivi esterni. Tuttavia, solo negli anni ‘70 vengono fatte le prime
proposte, metodologicamente strutturate, relative a sistemi di interfaccia cervellocomputer.
L’estrazione dell’intenzione del soggetto sotto analisi dal segnale EEG è resa ardua a causa
della presenza di un vasto numero di attività elettrica neuronale, dalla complessità elettrica,
dalla geometria spaziale del cervello e della teca cranica che funge da isolante e rende
difficoltosa la rilevazione del segnale. In secondo luogo, una tale elaborazione richiede un
processing in tempo reale che necessita di una capacità computazionale elevata.
Ancora negli anni ‘80 le capacità computazionali dei calcolatori di allora non rendeva
possibile un utilizzo di questa tecnologia in modalità real time, né gli elettroencefalografi
erano ad un livello da acconsentire un’accuratezza tale da permettere di discriminare
differenti segnali di decisione di cui si parlerà nei prossimi capitoli.
L’avvento però dei nuovi computer e di elettroencefalografi compatti ed accurati ha
permesso la creazione di questa nuova tecnologia nonostante non si sia ancora ad un livello
tale da poter comandare un aereo attraverso l’attività cerebrale, come succedeva nel film
- 21 -
Introduzione
Firefox (1982), ma si è comunque in grado di utilizzare la propria mente per muovere un
cursore sul computer e quindi selezionare programmi, scrivere, muoversi in un labirinto,
comandare dispositivi, etc.
Scopo dell’attività che si cercherà di illustrare in maniera esaustiva in questo elaborato è
l’integrazione di queste due tecnologie, BCI e domotica, per cercare di porre quelle
persone affette da disabilità motoria più o meno grave in una condizione di maggiore
libertà ed autosufficienza, ponendo nelle loro mani, o meglio nella loro mente, la
possibilità di controllare la propria abitazione e, perché no, anche tutti quei dispositivi che
non fanno veramente parte del sistema domestico ma che sono necessari al disabile nelle
sue varie azioni quotidiane (es. la carrozzina, il PC, la televisione, etc.).
Ulteriore obiettivo è lo studio e la concretizzazione delle molte potenzialità che un sistema
di Brain Computer Interface può offrire ad una persona diversamente abile come
tetraplegici o pazienti affetti da distrofia muscolare. Con questo obiettivo si è deciso di
portato avanti in parallelo alla attività suddetta uno studio di fattibilità (in collaborazione
con alcuni studenti di Industrial Design) di alcuni tipi di interfacce che potessero in
qualche modo fornire al paziente un certo comfort e, anche, divertimento, nello svolgere
alcune attività che nella sua condizione di disabile sarebbero state improbabili o, per lo
meno, al quanto difficili.
- 22 -
Stato dell’arte
2
Stato dell’arte
Seconda stella a destra,
questo è il cammino
e poi dritto fino al mattina.
Poi la strada la trovi da te
porta all’isola che non c’è.
…
Edoardo Bennato (L’isola che non c’è)
Nel seguente capitolo vengono illustrati i concetti e le varie tecnologie che sono state
utilizzate per la realizzazione del progetto. Si parte da una spiegazione esaustiva dei vari
protocolli BCI per passare poi ad un breve richiamo di quei principi fondamentali di
fisiologia medica riguardante i segnali encefalici utilizzati nella BCI (Brain Computer
Interface) ed un breve riassunto delle patologie più conosciute del sistema nervoso che
possono provocare disfunzioni motorie tali da rendere utile, se non necessario, l’utilizzo della
BCI. Infine viene proposta una breve introduzione di quella che è l’odierna domotica e di
quello che ci attende nell’immediato futuro.
2.1
BCI - BRAIN COMPUTER INTERFACE
INTRODUZIONE ALLA BRAIN COMPUTER INTERFACE
Per BCI si intende un sistema di comunicazione nel quale i messaggi ed i comandi
che l’individuo invia al mondo esterno non passano attraverso i classici canali di
comunicazione dei nervi periferici e dei neuroni. Un sistema BCI converte cioè un segnale
elettrofisiologico da puro riflesso del sistema nervoso centrale ad “intento” di questa
attività, che sia un messaggio o un comando.
La Brain Computer Interface necessità per il suo corretto funzionamento del
monitoraggio continuo dell’attività celebrale che può essere eseguito in svariati metodi
(EEG, MEG, PET, fMRI) ma che ad oggi è limitato all’uso di elettroencefalogramma data
la sua semplicità ed i bassi costi, ed in rari casi di magnetoencefalografia[4].
- 23 -
Stato dell’arte
I sistemi BCI basati su EEG possono essere suddivisi in due categorie a seconda
degli elettrodi utilizzato: BCI invasiva quando vengono utilizzati elettrodi invasivi
epidurali e subdurali che permettono un EEG con alta risoluzione topologica e miglior
rapporto segnale rumore; BCI non invasiva se vengono utilizzati elettrodi cutanei, la
risoluzione è minore ed il segnale acquisito ha un peggior rapporto segnale rumore.
Normalmente si preferisce l’utilizzo di elettrodi non invasivi anche se, per
alcune
patologie come il morbo Parkinson o la corea di Huntington, l’utilizzo di elettrodi invasivi
è reso necessario dalla presenza di segnale EMG dovuto a contrazione involontaria dei
muscoli del collo che nel caso di segnale in regione occipitale misurato con elettrodi non
invasivi provocherebbe un netto peggioramento del rapporto segnale rumore.
In letteratura[4] si trova un’ulteriore suddivisione che distingue tra BCI dipendente
ed indipendente. La BCI dipendente non utilizza le normali vie di uscita dell’encefalo per
trasportare il messaggio (o comando), ma ha bisogno dell’attività di queste vie per generare
i segnali celebrali necessari al controllo: è il caso dell’SSVEP nella quale il soggetto viene
stimolato mediante luci o scacchiere intermittenti. Al contrario la BCI indipendente non ha
bisogno di questa attività in quanto il cervello genera autonomamente il segnale che
trasporta il messaggio da interpretare (per esempio la motor imagery). Questo secondo
caso può a prima vista sembrare il più conveniente, ma necessita di un addestramento del
soggetto lungo che ha volte, se svolto in maniera superficiale, può minare il corretto
funzionamento dell’intero sistema.
LE PARTI DEL SISTEMA BCI
Un sistema BCI può essere suddiviso, come si può notare nell’immagine (Fig. 2), in
differenti parti ognuna delle quali svolge una propria funzione: acquisizione del segnale,
signal processing (pre-elaborazione, estrazione di features e algoritmo di traduzione),
interfaccia di output.
L’acquisizione del segnale è fatta, come detto in precedenza, attraverso l’EEG
invasivo e/o non invasivo registrando potenziali evocati o spontanei.
Il blocco signal processing (parte in rosso di Fig. 2) può essere suddiviso in tre
sottoblocchi: la parte di pre-elaborazione attraverso l’utilizzo di circuiti analogici amplifica
il segnale EEG, lo filtra e lo digitalizza; il blocco di estrazione delle features, consiste in
una o più procedure di elaborazione del segnale come: filtraggio spaziale, analisi spettrale
- 24 -
Stato dell’arte
o tempo-frequenza, etc. in modo da estrarre le caratteristiche del segnale che contiene il
messaggio (o comando) da comunicare verso l’esterno. Il blocco di classificazione consiste
invece in un algoritmo in grado di interpretare le caratteristiche estratte dal segnale per
creare il comando vero e proprio da inviare poi all’interfaccia di output che potrà essere
qualsiasi applicazione, da una semplice carrozzina elettrica alle più complesse
neuroprotesi.
Fig. 2: Schematizzazione di un classico sistema BCI
Il classificatore utilizza degli algoritmi che possono essere sia lineari che non lineari, in
modo da trasformare delle variabili indipendenti quali le caratteristiche del segnale
misurato, in variabili dipendenti cioè i comandi per il sistema da controllare. Oltre a
questo, il classificatore comprende inoltre anche algoritmi di adattamento per aggiustarsi
ad ogni utente; in particolare, per un migliore funzionamento, vengono implementati tre
differenti livelli di adattamento: un primo livello di adattamento con il quale il sistema si
agguaglia con le caratteristiche del segnale misurato; un secondo livello per l’adattamento
alla variabilità a breve e a lungo termine del segnale EEG; un terzo livello per aggiustare la
capacità di accomodamento del cervello durante l’utilizzo del sistema.
- 25 -
Stato dell’arte
Quest’ultimo adattamento è necessario in quanto, essendo la BCI un sistema di
comunicazione alternativo alle normali vie di comunicazione dell’encefalo, come queste
necessita di una retroazione, un feedback, che vada ad influenzare il comportamento stesso
del cervello nei riguardi della BCI aumentandone l’efficienza.
Il biofeedback è quindi un’informazione data al soggetto con lo scopo di aiutare lo stesso a
migliorare l’azione di controllo che sta svolgendo.
Per quanto riguarda la Brain Computer Interface, il biofeedback risulta essere una
componente fondamentale per il corretto funzionamento del sistema: esso fornisce
all’utente un’indicazione sul task mentale che sta eseguendo in modo che questi riesca
quindi a controllarlo. Il feedback è indispensabile in quanto la BCI non è una capacità
naturale dell’uomo e necessita quindi di essere appresa attraverso l’utilizzo di informazioni
sull’attività celebrale; non esistendo però dei recettori naturali per i potenziali generati dal
cervello, occorre un’informazione sostitutiva legata a questi attraverso la quale il soggetto
possa apprendere l’utilizzo del sistema.
Il biofeedback può essere fornito all’utente teoricamente attraverso l’iterazione con uno
qualsiasi dei cinque sensi: vista, udito, tatto, olfatto, gusto. Tipicamente, nella maggior
parte dei casi, sono utilizzati feedback visivi [4][6][8][9]: per esempio delle barre
luminose la cui larghezza o luminosità dipende dall’ampiezza del feedback. Tuttavia in
quei casi ove al soggetto è richiesto di concentrare la propria attenzione su degli stimolatori
visivi intermittenti (come nel caso di protocollo SSVEP o P300), l’utilizzo di un feedback
visivo può essere pericoloso in quanto può distrarre il soggetto dal task da eseguire.
In alcuni casi, soprattutto nello studio dei protocolli con P300 [11], si preferisce utilizzare
un feedback uditivo: il biofeedback in questo caso può essere costituito da un impulso
modulato in ampiezza o in frequenza a seconda del valore del feedback calcolato.
Sono inoltre presenti in letteratura alcuni studi su feedback tattili [25]: utilizzando dei
trasduttori è possibile dare al soggetto delle vibrazioni modulate in intensità e frequenza in
base al valore del biofeedback. Questo tipo di feedback non da alcuna informazione
aggiuntiva rispetto al feedback visivo, ma può essere utilizzato, in combinazione con
stimolazioni differenti da quella visiva, anche in quei casi in cui il soggetto è affetto da
cecità o altri problemi visivi.
- 26 -
Stato dell’arte
IL PROTOCOLLO BCI
Un protocollo per un sistema BCI consiste delle informazioni con cui vengono eseguite
tutte le operazioni/applicazioni necessarie per il corretto utilizzo del sistema: in esso viene
descritto come il sistema viene inizializzato e spento, se la comunicazione è continua o
discontinua, se i comandi trasmessi sono triggerati dall’utente o dal sistema stesso, il tipo
di segnale acquisito ed il tipo di feedback restituito all’utente.
Il protocollo utilizzato nel corso di questa attività viene descritto esaurientemente nel
capitolo due.
2.2
CENNI DI FISIOLOGIA
POTENZIALI PER SISTEMI BCI
La BCI, tecnica di interfacciamento uomo-macchina (illustrata nel paragrafo successivo)
per il suo funzionamento utilizza segnali encefalici differenti da cui dipendono i differenti
protocolli BCI.
Tra questi segnali i più utilizzati sono[1]: P300, VEP (visual evoked potential), SSVEP
(steady state visual evoked potential), SCP (slow cortical potential), ritmi µ e β, frequenza
dei potenziali d’azione dei neuroni corticali.
Di seguito vengono illustrati brevemente i vari segnali con una loro breve spiegazione e
tipologia di registrazione in modo che possa risultare chiaro l’utilizzo dei diversi protocolli
di registrazione per la BCI. La Fig. 3 mostra la suddivisione dell’encefalo con la
nomenclatura specifica per le differenti zone, utile per individuare la posizione degli
elettrodi di misura sullo scalpo.
P300: L’onda P300 (Fig. 4) è un potenziale evocato evento-relato (ERP – Event
Related Potential) che si verifica quando l’attenzione del soggetto è catturata da uno
stimolo con valenza cognitiva. Il segnale ha una forma d’onda caratterizzata dalla presenza
di un picco positivo(P) dopo una latenza di circa 300ms dall’inizio del segnale dalla quale
prende il nome. Il segnale è solitamente riportato con il picco positivo verso il basso (come
si nota in Fig. 4) a causa della modalità di visualizzazione dei vecchi dispositivi
galvanometrici. La latenza della P300 esprime il tempo impiegato dal soggetto per
- 27 -
Stato dell’arte
completare il pieno riconoscimento dello stimolo atteso. L’ampiezza, invece, è funzione
della quantità di informazione da esso trasmessa al soggetto[19]. Risulta quindi molto utile
come indice di concentrazione in quanto la P300 è presente solo in quei casi in cui
l’individuo è consapevole dello stimolo ricevuto.
La P300 può essere misurata sia in modo invasivo che non invasivo ed è preponderante
nella zona parietale dell’encefalo (elettrodi in posizione mediale da nasion ad inion, è
rilevato in prevalenza su Cz nel sistema 10-20). [1]
Fig. 3: Mappa dell'encefalo
SCP: Slow Cortical Potential (Fig. 5) costituiscono le basse frequenze del segnale
elettroencefalografico. Questi potenziali hanno una latenza cha varia tra i 5 ed i 10 secondi
e sono caratteristici dei movimenti complessi che necessitano un coinvolgimento della
corteccia cerebrale. In base a degli studi è stato dimostrato che l’uomo è in grado di
controllare questi potenziali che quindi possono essere utilizzati come segnali di controllo
in ambiente BCI. L’utilizzo di questo tipo di segnali è pero raro in quanto necessità di un
addestramento abbastanza lungo; la velocità del sistema finale è relativamente contenuta.
[4]
- 28 -
Stato dell’arte
Fig. 4: Esempio di segnale P300
Fig. 5: Slow Cortical Potential
VEP: Il potenziale evocato visivo (Visual Evoked Potential) è causato da una
stimolazione del campo visivo del soggetto e riflette i meccanismi elettrofisiologici alla
base del processo di elaborazione dell’informazione visiva a livello cerebrale. È di solito
misurato non invasivamente per mezzo dell’elettroencefalogramma con elettrodi in zona
occipitale. Gli stimoli maggiormente utilizzati sono dei flash ad una certa frequenza o delle
scacchiere in cui i quadri bianchi e neri sono continuamente invertiti.
Nel caso di pazienti affetti da patologie che provochino una notevole attività muscolare in
zona cervicale, l’utilizzo dell’elettroencefalogramma per la registrazione di segnali in
regione occipitale risulta impossibile; una soluzione è l’utilizzo di uno strip di elettrodi
epidurali in modo da evitare la registrazione di EMG involontario che andrebbe a sporcare
in modo considerevole il segnale [2].
SSVEP: Steady State Visual Evoked Potential (Fig. 6) sono potenziali evocati,
molto simile ai VEP discussi qui sopra, generati tramite stimolazione visiva. Come
richiamato dal nome stesso, questi potenziali sono di tipo steady-state, cioè il potenziale
generato da una stimolazione visiva con frequenza superiore ai 3 Hz ed inferiore ai 75 Hz
si mantiene nel tempo (nel caso di normale VEP il segnale è transiente con latenza di circa
125ms[5]). Nel caso di potenziale steady-state, la stimolazione provoca la generazione di
una risposta periodica a livello corticale a frequenza multipla intera del segnale di
stimolazione. Il metodo di registrazione è del tutto simile a quello utilizzato per i normali
potenziali evocati visivi. [2][3]
- 29 -
Stato dell’arte
Fig. 6: Spettro di ampiezza di SSVEP in risposta ad una stimolazione visiva a 7Hz
a) Spettro su un singolo trial b) Spettro mediato su 40 trial
ritmi µ e β: I ritmi µ (Fig. 7a) sono delle particolari frequenze tra gli 8 e i 12 Hz
presenti nella regione sensoriale primaria e nella corteccia motoria e premotoria. Questi
ritmi sono presenti solo in alcuni soggetti e solamente in stato di veglia e/o quando il
soggetto non si sta concentrando su alcuna attività motoria o sensoriale. I ritmi µ sono
associati a frequenze tra i 18-26 Hz mentre i ritmi β spesso sono armoniche dei primi.
Il movimento e la semplice preparazione all’atto motorio provoca una diminuzione dei
ritmi µ e β in particolare nella zona contro-laterale. L’abbassamento dei due ritmi è detto
ERD (event-related desynchronization) mentre la relativa controparte a movimento
eseguito ERS (event-related synchronization). ERD e ERS possono essere molto utili in
ambito BCI come segnali di comando in quanto possono essere facilmente registrati
tramite un normale EEG e, soprattutto in quanto presenti anche quando il movimento non
viene eseguito ma solo “pensato” o visualizzato: il così detto motor imagery. [4]
Neuron Firing Rate: Negli ultimi anni, studi su animali hanno dimostrato come
alcuni animali (in particolare scimpanzè) riescano a controllare la frequenza di sparo (Fig.
7b) di neuroni corticali per imparare ad utilizzare un braccio robotico. Lo stesso principio e
l’utilizzo di elettrodi intracorticali (un metodo invasivo) permettono ad un disabile di
muovere un cursore su di un video per la selezione di lettere o icone. L’utilizzo di questi
- 30 -
Stato dell’arte
segnali, come per il caso dei potenziali SCP, necessita però di un lungo addestramento ed,
a causa sia del basso bit-rate sia dell’invasività degli elettrodi, viene poco utilizzato [4].
Fig. 7:a) Ritmo µ per il controllo del movimento di un cursore; b) Attività di neuroni corticali.
PATOLOGIE NEURO-MUSCOLARI [I,II,III]
In questo paragrafo vengono presentate brevemente quelle patologie neuro-muscolari e
degenerative per cui potrebbe essere utile per il paziente l’utilizzo di un sistema BCI per il
controllo dell’ambiente o di altri sistemi. Questo paragrafo non vuole essere un trattato di
patologia ma una semplice presentazione per richiamare l’attenzione sulla gravità di queste
malattie e sulla situazione in cui si trovano i pazienti affetti da queste.
DISTROFIA MUSCOLARE: Per distrofia muscolare si intende un insieme di diverse
patologie neuromuscolari degenerative di carattere genetico che comportano una
progressiva atrofia della muscolatura. La distrofia è una patologia che può colpire quindi
differenti organi, compreso il cuore, in quanto è un disturbo della nutrizione del tessuto che
ne modifica la forma, il volume ed il funzionamento. La distrofia muscolare è causata
dall’assenza o malformazione di una proteina, la distrofina. La mancanza di questa
proteina provoca una maggiore suscettibilità del sarcolemma durante la contrazione che
potrebbe causare una più facile rottura e quindi una degenerazione del muscolo. Questa
malattia si presenta sotto diverse forme a seconda della presenza malforme o all’assenza
della distrofina. La malattia dapprima comporta una degenerazione segmentale delle fibre
muscolari; il funzionamento di queste fibre viene sostituito da un ingrossamento delle
- 31 -
Stato dell’arte
fibre sane rispetto alle fibre adiacenti inutilizzate, il muscolo risulta in stato di ipertrofia.
Successivamente le fibre malate vengono sostituite da tessuto adiposo e le fibre sane
rimanenti degenerano fino a scomparire presumibilmente a causa della deficienza nella
rigenerazione dovuta alla malattia stessa. Il muscolo infine non è più un vero e proprio
muscolo ma è formato solo da poche fibre muscolari immerse in adipociti.
Tutt’oggi non esistono ancora terapie specifiche per alcuna delle distrofie conosciute e si è
costretti ad assistere impotenti al progredire della malattia. Conoscendo la possibile causa
della malattia ed essendo la malattia di tipo genetico, le ricerche scientifiche si sono
spostate verso la genetica con la speranza di realizzare una terapia genica che vada a
correggere/sostituire il gene difettoso. Due rimangono però i cardini nel trattamento di
pazienti affetti da distrofia muscolare: la corretta disposizione mentale e, paradossalmente,
il movimento: spingere cioè il paziente a condurre il più possibile una vita normale,
supportato dai nuovi ausili tecnologici quale la BCI, garantisce un netto miglioramento
delle condizioni di vita .
TETRAPLEGIA: La tetraplegia, come la paraplegia, è la totale o parziale immobilità
del corpo dovuta a paralisi celebrale in età infantile o all’interruzione delle vie ascendenti e
discendenti del midollo spinale causata da traumi. Anche per questa patologia sino ad oggi
non esistono cure nonostante negli ultimi anni la ricerca sia molto avanzata soprattutto
nell’ambito della neurochirurgia e della rigenerazione con cellule staminali. Nell’ultimo
decennio è stata inoltre sviluppata la FES (Stimolazione Elettrica Funzionale), che consiste
in un ausilio preposto al ripristino della funzione mancante mediante la stimolazione
elettrica del sistema neuromuscolare.
SCLEROSI LATERALE AMIOTROFICA: Sclerosi è il termine coniato per definire la
distruzione lenta e progressiva di un organo o di un tessuto che diventa duro, fibroso e non
funziona normalmente.
La sclerosi laterale amiotrofica (SLA) è una malattia degenerativa e progressiva del
sistema nervoso che colpisce i motoneuroni distruggendoli. Il malato perde
progressivamente i motoneuroni con un decorso del tutto imprevedibile e differente da
soggetto a soggetto.
- 32 -
Stato dell’arte
La malattia porta ad una perdita progressiva ed irreversibile della normale capacità di
deglutizione, di articolazione della parola e del controllo dei muscoli scheletrici con
conseguente paralisi che può colpire anche i muscoli respiratori e rendere necessaria la
ventilazione assistita, o persino provocare la morte. Le cause di questa patologia sono
ancora in parte sconosciute ed una relativa cura è ancora in fase di sperimentazione
(Rilutek farmaco sperimentale che può ridurre il danno ai motoneuroni).
SCLEROSI MULTIPLA: La sclerosi multipla è un’infiammazione cronica che
colpisce il sistema nervoso centrale demielinizzando i nervi. A seconda dei nervi che prima
vengono colpiti dalla malattia, i sintomi possono essere differenti. La degenerazione della
mielina riduce la conducibilità dei nervi da 100 m/sec a 5 m/sec provocando offuscamento
della vista, perdita parziale o completa dell’equilibrio, tremori, incapacità di coordinazione
di movimenti, perdita della sensibilità, fino alla perdita della parola e alla completa
paralisi.
Anche per questa patologia le cause sono ancora incerte e non esiste una cura specifica, i
trattamenti conosciuti sono mirati all’alleviamento di episodi acuti, alla prevenzione delle
ricadute e al miglioramento del quadro clinico generale del paziente.
Nonostante questo molti sono i farmaci in via di sperimentazione, soprattutto in Canada,
paese con il più alto tasso di malati al mondo.
MORBO
DI
PARKINSON: Il Morbo di Parkinson (IDP - Idiopathic Parkinson's
Disease), noto anche come paralisi agitante, è dovuta alla degenerazione cronica e
progressiva che colpisce una piccola area del sistema nervoso centrale, la così detta
sostanza nera,
area del
mesencefalo
dove
viene prodotta la dopamina,
un
neurotrasmettitore che regola i meccanismi eccitatori ed inibitori. Le degenerazione della
sostanza nera provoca una diminuzione delle cellule dopaminergiche e di conseguenza
della dopamina prodotta, spostando l’equilibrio eccitatorio-inibitorio verso il primo. La
patologia è caratterizzata da rigidità di gran parte, se non della massima parte, della
muscolatura corporea, da tremore involontario presente anche quando il soggetto è a riposo
e da acinesia, cioè una grave difficoltà nell’iniziare i movimenti.
Le cause della malattia sono quasi del tutto sconosciute anche se la maggior parte delle
sintomatologie sono da deputarsi alla mancanza di dopamina.
- 33 -
Stato dell’arte
Per questa malattia, a differenza di quelle fino ad ora elencate, esistono differenti
trattamenti terapeutici: il più utilizzato è quello della
L-DOPA
e
L-DEPRENYL,.
La
somministrazione di levodopa è in grado, in alcuni pazienti, di migliorare buona parte dei
sintomi ed in particolare la rigidità e l’acinesia. L-DEPRENYL è invece un farmaco che
inibisce in parte la distruzione delle cellule dopaminergiche e provoca quindi l’aumento di
dopamina prodotta. La combinazione dei due farmaci rappresenta tuttora il migliore
trattamento farmacologico, nonostante la loro efficacia diminuisca dopo un lungo utilizzo
(long term levodopa syndrome). I passi avanti negli ultimi anni della chirurgia, ed in
particolare l’avvento della chirurgia stereotassica hanno permesso l’introduzione di nuove
terapie chirurgiche tra cui la Deep Brain Stimulation (DBS) che consiste nell’impianto di
un pacemaker celebrale in zona subtalamica che porta il paziente ad un notevole
miglioramento delle sintomatologie e ad una significativa riduzione della dipendenza da
levodopa. La scoperta delle cellule staminali embrionali ha aperto nuovi e rivoluzionari
orizzonti per la cura del morbo di Parkinson anche se, al momento, questa tecnica è
soltanto in via di sperimentazione e problemi di tipo etico ne limitano l’utilizzo.
COREA
DI
HUNTINGTON: La corea di Huntington è una patologia molto simile al
morbo di Parkinson, è una malattia genetica degenerativa caratterizzata da movimenti
irregolari, scosse improvvise limitate a singoli segmenti corporei, che con il tempo si fanno
sempre più intensi ed ampi, interessando l’intero corpo. Unitamente alle defezioni
corporee, in alcuni casi subentra anche un quadro di grave demenza. La malattia a cause
del tutto simili al Parkinson, è infatti dovuta alla degenerazione di parte dei corpi cellulari
dei neuroni del nucleo caudato e dei neuroni secernenti acetilocolina che provocano uno
squilibrio della bilancia eccitatoria-inibitoria. Questo sbilanciamento verso la caratteristica
eccitatoria provoca un aumento dell’attività spontanea provocando i classici movimenti
anormali del malato.
Anche per questa malattia, come per la maggior parte delle precedenti, le cause non sono
ancora del tutto chiare anche se si è ormai riusciti a rintracciare il gene che provoca la
mutazione e quindi da inizio alla malattia. Le terapie esistenti sono solo sintomatiche e non
possono modificare il decorso della malattia se non alleviarne i sintomi.
- 34 -
Stato dell’arte
ICTUS: L’ictus o infarto celebrale secondo la definizione medica “è l'improvvisa
comparsa di segni e/o sintomi riferibili a deficit focale e/o globale (coma) delle funzioni
cerebrali, di durata superiore alle 24 ore o ad esito infausto, non attribuibile ad altra causa
apparente se non a vasculopatia cerebrale”. L’ictus può essere di varie tipologie: ictus
ischemico (il più frequente), l’ictus emorragico, ictus da emorragia subaracnoidea (ESA).
Se non prontamente diagnosticato e trattato può provocare disabilità e portare sino alla
morte.
Le cause di questa patologia sono molteplici e vanno dalle malattie, malformazioni e
occlusioni di arterie di maggior e minore calibro, artereosclerosi, ipertensione cronica, etc.
Importante è in questi casi la prevenzione che può essere fatta con l’assunzione di farmaci
specifici e con il miglioramento delle condizioni di vita. La terapia degli ictus in Italia è
notevolmente migliorata negli ultimi decenni dato il continuo aumento di casi a causa
dell’invecchiamento della popolazione: sono ormai presenti in tutti gli ospedali le così
dette stroke unit appositamente create per la cura di questa patologia. Nonostante questo
l’ictus, in Iatlia, è la terza causa di morte dopo le malattie cardiovascolari e le neoplasie e
rappresenta la principale causa di invalidità tanto che ad un anno dall’evento acuto,
indipendentemente dalla tipologia di ictus, un terzo dei soggetti presenta un grado di
disabilità elevato, tanto da poterli considerare totalmente dipendenti.
ATROFIE MUSCOLARI SPINALI: Le atrofie muscolari spinali (SMA) sono un
gruppo di malattie ereditarie in cui vengono colpite le cellule nervose delle corna anteriori
del midollo spinale da cui partono i motoneuroni che controllano i segnali motori verso i
muscoli. Esistono diverse forme di SMA che vengono distinte in base alla gravità della
malattia, all’età di esordio e alla modalità di trasmissione. La più grave è la SMA I
(malattia di Werdnig-Hoffmann): è una patologia con esordio veloce, intorno al sesto mese
di vita, e con decorrenza veloce. La SMA II inizia anch’essa nell’infanzia, con sintomi
simili a quella precedente, ma progredisce più lentamente. La SMA III (malattia di
Kugelberg – Welander) anche denominata atrofia muscolare spinale benigna, ha
un’insorgenza in età giovanile e progredisce molto lentamente rispetto alle altre forme ed è
quindi meno grave. I sintomi di entrambe le patologie si manifestano a livello dei muscoli
volontari. La debolezza muscolare si manifesta inizialmente nei muscoli vicini al tronco,
per poi progredire rendendo difficile compiere attività come correre, camminare, deglutire,
- 35 -
Stato dell’arte
fino a rendere difficile persino la respirazione e la stazione eretta. Qualsiasi sia la forma di
SMA, i pazienti ad ogni età mostrano intelligenza e sensibilità normali, a volte superiori
alla media.
Questa patologia è di tipo genetico, ed il gene responsabile delle tre forme di atrofia è già
stato identificato. Nonostante questo una terapia specifica non esiste attualmente, se non
l’adozione di forme di supporto come l’assistenza respiratoria e la fisiocinesiterapia.
Alcuni farmaci sono ancora allo stadio sperimentale ma, nonostante migliorino le
sintomatologie, provocano anche effetti collaterali non trascurabili.
ATASSIA: L’atassia non è una vera e propria patologia, ma è un disturbo che
consiste nella progressiva perdita della coordinazione muscolare che quindi rende
difficoltoso eseguire i movimenti volontari e può essere sintomo di varie malattie
(sindromi atossiche) genetiche ereditarie
come l’atrofia celebrale, le atassie spino-
celebrali, o può essere causata da infezioni virali, lesioni celebrali ed encefaliti. Per quanto
riguarda le atassie dovute a malattie genetiche si può pensare ad una futura terapia genica,
ma per quanto riguarda le atassie da lesioni o encefaliti non esiste tuttora alcuna cura
specifica anche se, una speranza è posta sulle nuove scoperte nell’ambito delle cellule
staminali.
- 36 -
Stato dell’arte
2.3
DOMOTICA
L’Innovation Technology sta entrando sempre più nella maggior parte delle attività della
vita quotidiana, da una parte facilitando i processi di comunicazione, semplificando i
problemi di costruzione e messa in opera di impianti tecnologici, migliorando la qualità dei
servizi; dall’altra, migliorando confort, sicurezza e desiderio di vivere in ambienti
ecologicamente puliti. Il settore dell’automazione industriale gioca un ruolo di primo
piano in questo processo, ed in esso è sottolineata fortemente l’importante ruolo della
domotica.
La Domotica (o Home Automation) è la disciplina che studia le tecnologie atte a
migliorare la qualità della vita nell’abitare, grazie all’automazione e al controllo di quei
processi ripetitivi oppure poco performanti, e all’integrazione di sistemi.
Parlare di domotica significa spaziare in molti contesti di ricerca differenti, ma tra
lo strettamente connessi come l’elettronica, l’informatica, l’evoluzione delle reti ed
internet, lontano dall’idea della semplice informatica applicata alla casa.
Domotica vuol dire interazione tra l’ambiente casa e la persona, vuol dire ricerca di una
migliore accessibilità e fruibilità dell’abitazione ma anche ricerca di nuovi mezzi e
metodologie per dare la possibilità, a chi non ce l’ha, di guadagnarsi indipendenza nella
vita di tutti i giorni.
Al contrario però di ciò che si possa pensare, la domotica nasce ancora prima dell’avvento
della moderna elettronica; per descrivere la storia dell’automazione domestica non
basterebbe un libro: riassumendo si può certamente dire che essa nasce più di un secolo fa,
- 37 -
Stato dell’arte
più precisamente attorno al 1890 con l’invenzione da parte di William Penn Powers del
primo termostato: un rudimentale dispositivo provvisto di un liquido sensibile alla
temperatura in grado di regolare l’apporto di energia ad un sistema di riscaldamento. Fu
questa la prima volta nella quale la tecnologia entrò a far parte dell’abitazione stessa e
della vita di tutti.
È solo però con la III rivoluzione industriale, dopo la seconda guerra mondiale, e con gli
anni dello sviluppo dell’elettronica (a partire dall’invenzione del transistor nel 1947) e dei
primi home computer e personal computer (il primo fu il Commodore PET nel 1977), che
la domotica diventa matura spostando il suo obiettivo non più sulla semplice automazione
ma sul miglioramento delle condizioni di vita e del confort.
Bisogna aspettare però il 1966, con Jim Sutherland, per vedere il primo dispositivo vero e
proprio di automazione domestica (ECHO IV), dispositivo computerizzato per la
termoregolazione degli ambienti, la gestione dell’inventario e il lighting automation.
Con il 1975 nasce invece l’X10 di Pico Electronics, il primo standard di comunicazione
per home automation che sfrutta la rete elettrica come mezzo trasmissivo, tuttora uno dei
più utilizzati.
Con l’ultimo ventennio, anni in cui l’elettronica è andata sempre più verso la
miniaturizzazione, molte imprese si sono lanciate nell’ambito della domotica (le principali
BTicino, Vimar, Gewis) creando principalmente uno standard proprietario e distribuendo
interfacce e dispositivi rivolti ad una gestione globale dell’edificio.
Obiettivi principali della domotica sono, come accennato in precedenza:
- migliorare la qualità della vita;
- migliorare la sicurezza;
- risparmiare energia;
- migliorare la semplicità;
- ridurre i costi;
- agevolare la conversione di vecchi ambienti e vecchi impianti.
Obiettivo primario rimane però la costruzione dell’edificio intelligente. Questo non
significa progettare una casa in grado di comunicare con gli inquilini e di soddisfare ogni
loro desiderio come quella del film Smart House(1999), ma creare un edificio che, con il
supporto delle nuove tecnologie, permetta la gestione coordinata, integrata e
- 38 -
Stato dell’arte
computerizzata dei diversi impianti (climatizzazione, distribuzione di acqua, luce e gas,
sicurezza e, non ultimo, diffusione sonora/video e controllo degli accessi), ma anche reti
informatiche e reti di comunicazione allo scopo di migliorare la flessibilità di gestione, il
confort, la sicurezza, il risparmio energetico, per migliorare la qualità dell’abitare e, perché
no, anche del lavorare.
Fig. 8: Settori della domotica.
Per rendere la casa intelligente occorrono sensori per la misura dello stato dell’ambiente,
sistemi di telecomunicazione per l’accesso a funzioni remote o assistenza a distanza e
speciali attuatori.
Tutte le funzioni dei sistemi di home automation sono condotte per mezzo di apposite
interfacce utente che vanno dai classici interruttori, ai più studiati e complessi telecomandi
per eseguire specifiche operazioni, touch screen, tastiere e interfacce per il riconoscimento
vocale.
La casa intelligenze per funzionare necessita di un “cervello” che vada a comandare tutti
gli attuatori, i sensori ed i vari dispositivi di ingresso ed uscita. Questa intelligenza può
essere di due tipi, un sistema di controllo centralizzato, costruito utilizzando un PC on
module, microprocessori appositi o microcontrollori di fascia alta; oppure basato su un
sistema distribuito in cui ogni componente (attuatore, sensore, ecc.) dispone di una propria
autonomia di base, solitamente costruita mediante l’utilizzo di microcontrollori, anche di
- 39 -
Stato dell’arte
fascia bassa, per la gestione delle caratteristiche proprietarie del componente e per la
trasmissione e ricezione degli stati e dei comandi alle altre parti della casa.
L’intelligenza centralizzata, o distribuita, oltre a provvedere alla distribuzione dei comandi
agli attuatori selezionati o monitorare gli stati delle periferiche, deve inoltre, in molti casi,
gestire l’impianto di termoregolazione e generare segnalazioni all’utente dell’avvenuto
comando: segnalazioni che possono essere sia sonore che visive. Tutti i dispositivi che
fanno parte del sistema di home automation sono connessi tra loro e con l’eventuale
sistema di controllo attraverso varie tipologie di collegamento (rete locale, rete Wi-Fi, etc.)
tra le quali le più utilizzate sono i bus dedicati (es. BUS SCS di BTicino). Nel paragrafo
seguente viene proposta una veloce analisi degli standard di comunicazione maggiormente
utilizzati.
Negli ultimi anni si sta sempre più diffondendo la tendenza ad integrare i complessi
domotici con sistemi di comunicazione con il mondo esterno per permettere la trasmissione
di SMS o E-Mail per la comunicazione dello stato del sistema di sicurezza e la
trasmissione di messaggi vocali pre-registrati come ausilio per la sicurezza di anziani e
disabili.
Oltre a ciò, per un controllo totale sulle potenzialità delle nuove case intelligenti sono stati
sviluppati negli ultimi anni dei sistemi appositi per il controllo e la visualizzazione degli
stati anche da remoto, i così detti gateway residenziali, dispositivi di interfaccia con la rete
che forniscono le risorse per accedere ad un servizio fornito all’abitazione come la
telefonia, TV via cavo o servizi Internet. Il gateway è reso inoltre necessario a causa
dell’aumento del numero e della tipologia dei dispositivi presenti ed al moltiplicarsi della
complessità di interconnessione all’interno della rete domestica in modo da poter facilitare
gli interscambi di informazioni e gli accessi alle singole periferiche.
Tutto il sistema deve inoltre essere costruito in maniera tale da essere il più stabile
possibile in modo da avere una vita lunga, resistere ai guasti ed essere facilmente
aggiornato e riparato, necessita quindi di una certa ridondanza dei componenti..
La Fig. 8 mostra i vari ambiti a cui la domotica viene più frequentemente applicata.
I più importanti sono:
-
Illuminazione;
-
Termoregolazione;
-
Sicurezza;
- 40 -
Stato dell’arte
-
Automazione.
L’illuminazione riguarda il controllo dei vari punti luce e punti rete dell’abitazione; le
novità più rilevanti in questo campo sono due: la possibilità di cambiare a piacimento il
comando per l’accensione e lo spegnimento di un punto luce senza dover cablare
ulteriormente l’abitazione; la possibilità di poter comandare più punti luce e vari attuatori
facenti o meno parte di uno stesso ambiente o locale in modo da creare degli scenari a
seconda delle situazioni o poter comodamente disattivare tutte le luci della casa quando si
sta per uscire.
Per quanto riguarda la termoregolazione, il primo ambito di cui si è occupata la domotica
sin dalla sua nascita, le novità principali introdotte in questi ultimi anni riguardano
soprattutto la possibilità di interfacciare questo sistema con l’esterno dando così la
possibilità di regolare la temperatura della casa, o dei singoli ambienti, anche dall’ufficio,
prima di tornare la sera.
Aspetto molto rilevante di questi sistemi è senza alcun dubbio la sicurezza; importante
innovazione è l' integrazione del sistema di anti-intrusione e telecontrollo con le ultime
tecnologie Wi-Fi ed internet che permettono di raggiungere un alto livello di sicurezza,
protezione e di confort sia per quanto riguarda gli ambienti domestici, sia per aspetti più
sensibili quali la salute (telemedicina) essendo in grado di inviare richieste di aiuto o
semplicemente degli allarmi utilizzando i più classici mezzi di comunicazione.
Per l’automazione siamo invece in un periodo di stasi in cui le innovazioni degli ultimi
anni non hanno portato così grandi stravolgimenti come negli altri campi, ma nonostante
questo risulta sempre uno degli aspetti più incisivi nelle vendite di un azienda di domotica,
sia a causa delle alte vendite di sistemi di automazioni di serramenti in questi ultimi anni,
sia a causa dell’importanza di questi nell’ambito dell’abbattimento delle barriere
architettoniche verso i disabili.
La domotica, infatti, oltre ad essere vista come un miglioramento dello stile di vita, della
sicurezza e del risparmio energetico, si propone anche come un sistema per rendere
autosufficienti anziani e disabili con capacità motorie limitate: attrezzando l’ambiente con
strumenti ed elettrodomestici comandati attraverso il sistema domotico, un individuo
costretto all’immobilità può virtualmente muoversi nell’abitazione e comandare (a
distanza) porte, finestre, luci, apparecchi elettrici, etc.
- 41 -
Stato dell’arte
La diffusione di questi sistemi è ancora però molto limitata, soprattutto a causa dei
costi elevati di messa in opera e manutenzione. Sistemi simili ma con funzioni molto
limitate si possono trovare oggi nei grossi impianti alberghieri di recente costruzione,
mentre nelle abitazioni vengono sempre più spesso utilizzati sistemi automotive per il
comando dei serramenti.
Ad oggi le abitazioni dotate di un sistema domotico sono ancora poco diffuse, se non per
quelle poche case in cui vengono montati i così detti impianti pilota o le applicazioni più
complesse come l’impianto di illuminazione di chiese e cattedrali che, per essere
riadeguati, richiederebbero un costo ancora più elevato.
- 42 -
Studio e ricerca delle componenti del sistema
3
Studio e ricerca delle
componenti del sistema
La preoccupazione dell'uomo e del suo destino
devono sempre costituire l'interesse principale
di tutti gli sforzi tecnici.
Non dimenticatelo mai
in mezzo a tutti i vostri diagrammi
ed alle vostre equazioni
Albert Einstein
In questo capitolo vengono illustrati i due sistemi principali di cui ci si è occupati durante
questo attività: in particolare viene spiegato il perché della scelta del sistema MyHome di
BTicino riportando una panoramica generale dei sistemi domotici al momento sul mercato ed
illustrandone relativi pregi e difetti. In un secondo momento viene spiegato in tutte le sue parti
il framework BCI su cui ci si è basati per l’implementazione del sistema. Nell’ultimo paragrafo
viene inoltre data una breve descrizione del biofeedback utilizzato dal framework BCI.
3.1
SISTEMI DOMOTICI COMMERCIALI
LA SCELTA DEL SISTEMA DOMOTICO
r poter interfacciare il nostro sistema BCI ad un sistema domotico in modo da offrire una
notevole libertà a quei soggetti diversamente abili in condizioni di immobilità totale o
parziale, si necessita di un sistema domotico modulare, facilmente interfacciabile e con uno
standard di comunicazione aperto.
A tale proposito le alternative possibili sono due: la creazione ex-novo di un impianto
domotico o l’implementazione di un sistema commerciale.
La prima ipotesi, cioè l’ingegnerizzare da principio un sistema domotico, di fatto consiste
nel progettare tutte le periferiche che normalmente fanno parte di un impianto del genere
quali interruttori, dimmer, attuatori, interfacce, etc. tenendo in considerazione, nonostante
- 43 -
Studio e ricerca delle componenti del sistema
si tratti di un’attività puramente scientifica, delle norme in vigore per quanto riguarda la
sicurezza e le varie specifiche di compatibilità elettromagnetiche, non che la possibilità di
interfacciamento e simbiosi con gli impianti già presenti.
La seconda ipotesi, l’utilizzo di un sistema domotico commerciale, risolve facilmente
questi problemi ed inoltre, ad oggi, sono molto numerose le aziende che offrono sul
mercato dispositivi domotici per l’automatizzazione delle abitazioni e del terziario; ognuna
offre differenti topologie di sistemi, sia per quanto riguarda la caratteristica intelligente dei
dispositivi (centralizzata o distribuita), sia per quanto riguarda la topologia di bus e lo
standard di comunicazione.
Negli ultimi anni la domotica ha inoltre riscontrato un notevole sviluppo, grazie anche al
risalto dei media che tendono ad evidenziare tutte quelle innovazioni che sembravano
impossibili fino a pochi anni fa, e l’esperienza accumulata in questi anni da parte delle
aziende produttrici ha portato alla sviluppo di sistemi maturi, affidabili e soprattutto
abbordabili dal punto di vista economico. La scelta di utilizzare un sistema commerciale e
non un sistema self-build è legata di fatto a queste caratteristiche, non che alla capacità di
riproducibilità che un tale sistema possiede intrinsecamente (basti pensare alla possibilità
di installare un impianto del genere presso l’istituto “Nostra Famiglia” di Bosisio Parini
con cui il laboratorio dove è stato svolto il lavoro ha una stretta collaborazione).
I fattori che caratterizzano maggiormente un sistema domotico sono gli standard di
comunicazione e costruzione con cui comunicano e vengono realizzati i vari dispositivi
all’interno della rete domestica.
Gli standard presenti oggi sul mercato sono moltissimi ed è forse anche questo uno dei
motivi per cui questo settore non ha ancora raggiunto il pieno sviluppo e che ha fatto
crescere l’incertezza sia da parte del consumatore, sia da parte delle stesse case produttrici.
Di seguito viene riportato un breve sunto dei principali standard domotici con una loro
breve descrizione.
EIB: European Installation Bus è uno standard open utilizzabile con diversi tipi di
connessioni (doppino, ethernet, linea elettrica…). Si è diffuso molto sul mercato ed è uno
dei fondamenti su cui è basato lo standard Konnex.
EHS: European Home System è nato dalla collaborazione di agenzie di normazione
e imprese, è uno degli standard più diffusi assieme a EIB e KNX. Ha la capacità di
- 44 -
Studio e ricerca delle componenti del sistema
supportare milioni di indirizzi, funzionalità Plug&play e dispone di un efficiente gestione
degli errori che lo rende particolarmente stabile.
HBS: Home System Bus è la risposta giapponese agli standard americani ed
europei. A differenza di questi, oltre al doppino telefonico utilizza un cavo coassiale per il
trasporto di segnali multimediali.
X10: È lo standard americano per l’home automation; diffuso anche in Europa
sfrutta un sistema centralizzato che trasmette e riceve i vari segnali a sensori ed attuatori
attraverso la modulazione su normale linea elettrica.
KNX: Konnex nasce dalla fusione di tre standard europei: EIB, BATIBUS e EHS
con l’intento di promuovere uno standard unico. Konnex è il primo standard di
comunicazione home e building automation aperto approvato sia a livello europeo che a
livello mondiale; in esso come per lo standard TCP/IP sono descritti i vari livelli, a partire
dal livello fisico in cui sono illustrati i mezzi trasmissivi possibili, fino al livello
applicazione.
SCS-BUS: L’SCS è lo standard a bus proprietario di BTicino. È basato su un
sistema distribuito ed utilizza un doppino come mezzo trasmissivo. Come la maggior parte
degli altri standard, può essere interfacciato con il mondo esterno per mezzo di Gateway
residenziali o apposite interfacce.
Per scegliere il sistema che meglio soddisfa le esigenze del progetto di BCI e domotica è
stata svolta un analisi comparativa tra le varie offerte oggi presenti sul mercato,
concentrandosi maggiormente su quelle aziende che offrono, altre ai classici prodotti
elettrotecnici, anche alcuni prodotti più “informatici” per l’interazione con il sistema di
home automation. Di queste aziende le principali prese in considerazione sono BTicino,
Gewiss e Vimar.
Gewiss, per quanto riguarda sistemi di controllo remoto, offre dei gateway
residenziali (GW90816) che svolgono la funzione di web server embedded e consentono la
gestione di tutto l’impianto. La configurazione del gateway avviene per mezzo del PC con
il quale vengono inseriti i vari comandi ed i vari attuatori presenti nel sistema. Il sistema
domotico di Gewiss è basato su bus KNX (Konnex) ed EIB, due standard europei per la
comunicazione in ambito di home e building automation.
- 45 -
Studio e ricerca delle componenti del sistema
Vimar propone invece dei gateway adatti soprattutto per il trasferimento dei dati e
per il comando a distanza del sistema per mezzo di Internet, è basato su bus EIB e dà la
possibilità di collegamenti wireless.
In entrambe questi due casi si è in presenza sì di un buon metodo per l’interfacciamento del
sistema BCI con la domotica, ma la presenza del Gateway e del web server, con il
conseguente obbligo di utilizzare delle pagine web “fittizie” per l’inserimento di comandi,
costringerebbe, nel suddetto caso, ad implementare su stack TCP/IP una sorta di client web
“virtuale” per passare al gateway i comandi. In alternativa si dovrebbe direttamente
interfacciare il sistema BCI con l’impianto domotico mediante il protocollo Konnex,
sicuramente più veloce ma più complesso e molto meno flessibile.
BTicino, oltre ad offrire alcuni prodotti compatibili con il protocollo Konnex, ha
un bus proprietario, il BUS SCS® già brevemente richiamato precedentemente e illustrato
ampiamente in seguito, con il quale sarebbe impossibile interfacciarsi direttamente se non
grazie alla disponibilità di particolari strumenti. BTicino offre infatti, come la maggior
parte delle altre imprese impegnate nel campo della domotica, dei gateway residenziali per
la comunicazione con i dispositivi domotici. In particolare BTicino offre un normale
gateway residenziale/server web, un più tecnologico server web video per la gestione degli
apparecchi di video sorveglianza, ed un interfaccia RS232/USB to SCS.
Quest’ultimo non è un vero e proprio gateway residenziale ma un convertitore che
permette di interfacciarsi alla rete domotica tramite una porta seriale che può essere sia la
RS232, sia la porta USB.
Risulta quindi uno strumento particolarmente adatto alle esigenze del progetto in quanto
non richiede l’implementazione di una particolare struttura di comunicazione ma soltanto
l’utilizzo della seriale, facilmente implementabile grazie alle librerie open source presenti
sulla rete. A rendere l’offerta BTicino l’oggetto dei desideri per quanto riguarda
l’applicazione trattata in questo elaborato è inoltre la presenza del linguaggio OpenWebNet
(e la relativa community internet[a]), protocollo aperto per l’interazione con tutte le
funzioni rese disponibili dal sistema di domotica BTicino: MyHome.
Nella pagina successiva viene riportata una tabella con tutti i pregi e i difetti riscontrati nei
sistemi domotici commerciali presi in considerazione durante la ricerca. La tabella è
limitata ai quattro sistemi che più si avvicinavano alle specifiche richieste dal progetto.
- 46 -
- 47 -
Supporto scenari
-
wireless
-
-
Assenza di bus
-
Community
Contro
OpenWebNet
-
programmabili
Minore Cablaggio
predefiniti
Supporto scenari
open source
Assenza di software
-
-
-
Contro
-
unidirezionale
Comunicazione
predefiniti
Supporto scenari
comunicazione
Lentezza della
cablaggio
Non necessita di
open source
Numerosi software
-
collegamenti wireless
Sistema bus con
via server web
possibilità RF
Sistema bus wired con
possibilità di
-
Pro
X10
integrato controllabile
MyHome: sistema
-
-
Pro
GEWIS / VIMAR
Contro
Pro
BTICINO
Studio e ricerca delle componenti del sistema
Tabella 1: Tabella comparativa dei tre sistemi domotici presi in considerazione
COS’È IL MYHOME
MyHome è un sistema di automatizzazione domestica in grado di offrire soluzioni evolute
sempre più richieste nelle abitazioni e nel terziario. È un sistema che comprende sistemi
Studio e ricerca delle componenti del sistema
relativi al confort ambientale, sicurezza, risparmio energetico, comunicazione, audio/video
e controllo.
La domotica di BTicino è basata su intelligenza distribuita (vedi capitolo precedente) che
sfrutta una tecnologia a bus proprietario per l’intercomunicazione tra i vari componenti. Il
sistema è fortemente modulare e ciò rende possibile un’ottimizzazione dei costi ed una
futura espandibilità andando a scegliere quali applicazioni adottare fin da subito e quali
rimandare in un futuro.
La grande modularità e le moderne tecnologie digitali di comunicazione danno la
possibilità di modificare facilmente le funzioni d’ogni singolo impianto in qualsiasi
momento, variando solamente la configurazione dei dispositivi (vedi la spiegazione nella
parte successiva), senza interventi onerosi di cablaggio ed alle strutture murarie.
Grazie a vari apparecchi di comunicazione, alcuni già elencati nel paragrafo precedente, il
sistema domotico di BTicino è in grado di comunicare sia con il mondo esterno, sia con
una rete locale interna per una migliore funzionalità di tutto l’impianto.
Grande risalto è inoltre dato da BTicino alle esigenze dei disabili, grazie anche ad una
collaborazione con il Centro protesi INAIL di Vigorso di Budrio; sensori e interfacce
particolari possono essere utilizzate con i dispositivi MyHome per raccogliere le volontà
d’utenti disabili e tradurle in comandi per l’azionamento d’utenze elettriche e strumenti
d’ausilio (Fig. 9).
Fig. 9: Esempio di MyHome per disabili
- 48 -
Studio e ricerca delle componenti del sistema
Il sistema domotico MyHome di BTicino è basato sulla tecnologia a bus SCS; un impianto
tradizionale con caratteristiche di elevata flessibilità, facilmente configurabile ed
espandibile in funzione delle diverse e molteplici esigenze dell’utente è caratterizzato da
un’elevata complessità circuitale e strutturato in modo tale che ogni funzione faccia
riferimento ad un cablaggio separato e dedicato. Ciò comporta un notevole aumento del
tempo di installazione e può essere una limitazione nel caso si vogliano modificare o
aggiungere nuove funzioni. L’impianto a bus sembra essere la soluzione a questi problemi
impiantistici; un impianto a BUS è caratterizzato da dispositivi intelligenti collegati fra
loro mediante una linea di segnale (BUS) dedicata sia allo scambio delle informazioni che
al trasporto della tensione di alimentazione. Il supporto fisico che presiede alla connessione
e all’ alimentazione è costituito generalmente da un cavo a coppie ritorte e non schermato
al quale sono connessi in parallelo tutti i dispositivi del sistema a BUS. I dispositivi
attuatori, cioè preposti al controllo dei carichi, sono connessi oltre che alla linea BUS,
anche alla linea di potenza 230V a.c. per l’alimentazione dei carichi stessi. Ogni
dispositivo connesso al sistema è dotato di circuito di interfaccia e di una propria
intelligenza (costituita da un microcontrollore) per mezzo del quale il dispositivo è in
grado di riconoscere l’informazione a lui destinata ed elaborarla per realizzare la funzione
desiderata. Dal punto di vista fisico e funzionale però i dispositivi a BUS non si
differenziano dai dispositivi tradizionali. L’utente per accendere una lampada dovrà agire
sempre su un tasto che, nel caso di un dispositivo a BUS, attiva il dispositivo di comando
all’invio di un segnale digitale diretto all’attuatore connesso alla lampada.
Per quanto riguarda MyHome, il sistema necessita di un alimentatore specifico che
fornisce una tensione di circa 30V per l’alimentazione sia dei comandi che degli attuatori a
relé. La tensione elettrica di 220V nel caso di apparecchiature che ne richiedano, per
esempio lampade o quant’altro, deve essere fornita con cablaggio a parte.
I vantaggi di questo tipo di cablaggio sono notevoli: oltre alla riduzione dei cavi necessari
(come illustrato in Fig. 10), è inoltre data la possibilità di interfacciarsi per mezzo del PC a
tutte le apparecchiature connesse alla rete.
- 49 -
Studio e ricerca delle componenti del sistema
Fig. 10: Vantaggio del cablaggio con BUS
L’impianto di automatizzazione realizzato da BTicino può gestire differenti tipi di sistemi
(vedi Fig. 11):
-
illuminazione
-
azionamento serrande, ventilatori ed aspiratori
-
condizionamento e riscaldamento
-
comandi ad infrarossi
A questi si aggiungono funzioni particolari come la possibilità di richiamare con un solo
comando uno scenario personalizzato (accensione simultanea di più lampade, serrande,
etc.).
Il sistema di articola in due elementi principali:
-
dispositivi di comando, assimilabili ai tradizionali interruttori, pulsanti, deviatori,
etc.
-
dispositivi attuatori, assimilabili ai relé tradizionali, per il comando dei carichi
connessi.
- 50 -
Studio e ricerca delle componenti del sistema
Alla prima categoria si aggiungono quei dispositivi di cui si è parlato precedentemente e
per cui è stata scelta la soluzione di BTicino, i dispositivi di interfaccia, che permettono
l’integrazione, nel sistema a BUS, di dispositivi tradizionali quali interruttori, pulsanti e
anche piattaforme PC per la supervisione locale o remota dell’impianto.
Fig. 11: Esempio di cablaggio con BUS
Affinché ciascun dispositivo presente sul sistema a BUS (interruttori per comando,
attuatori, dimmer, prese comandate, etc.) possa funzionare correttamente necessita di
essere programmato assegnando indirizzi, funzioni e quant’altro per mezzo di appositi
configuratori (vedi Fig. 12)..
Questa procedura è essenziale per il corretto funzionamento del sistema e si effettua
inserendo in apposite sedi dei dispositivi ad innesto denominati configuratori.
Questi configuratori sono differenziati tra di loro per colore, numero e grafismo
stampigliato sul corpo stesso.
Ad ogni periferica, per mezzo della configurazione, viene assegnato l’indirizzo di
destinazione o sorgente del comando all’interno del sistema e la modalità di funzionamento
del dispositivo (accensione/spegnimento, up/down, regolazione del carico, etc.).
Nel caso del sistema montato in laboratorio su cui è stata eseguita la sperimentazioni, a
comandi e attuatori sono state assegnate delle funzioni classiche che non necessitano di
- 51 -
Studio e ricerca delle componenti del sistema
configurazioni specifiche; è bastato assegnare ad ogni periferica il proprio indirizzo e la
modalità di funzionamento: se si vuole per esempio accendere una luce con un interruttore,
si deve assegnare sia al comando che all’attuatore lo stesso indirizzo in modo che l’uno
vada a comandare l’altro.
Fig. 12: Configurazione delle periferiche MyHome
L’indirizzo è formato da due cifre: la prima cifra che sta ad indicare il numero
dell’ambiente, la seconda cifra che indica l’indirizzo vero e proprio. Si possono quindi
assegnare fino a 99 indirizzi differenti per ogni bus; nel caso si volesse ampliare oltremodo
il sistema, occorre creare un bus su più livelli moltiplicando quindi la capacità totale
dell’intero sistema.
L’indirizzo ambiente è utile nel caso si voglia assegnare ad un unico comando l’accensione
di più periferiche: in questo caso il comando avrà una configurazione di funzione specifica
a cui è assegnata un'unica cifra che corrisponde all’indirizzo ambiente (vedi Fig. 13).
Lo stesso indirizzo ambiente è di solito assegnato alle periferiche presenti nella stessa
stanza. Un ulteriore raggruppamento delle periferiche può essere effettuato con la funzione
gruppo che permette di selezionare periferiche facenti parte anche di ambienti differenti.
La periferica più interessante risulta comunque il blocco scenario con il quale si vanno a
selezionare le luci, il livello dei dimmer, il livello delle tapparelle, la musica e quant’altro
si voglia regolare per attività specifiche quali relax, visione di un film, cucina, etc. Questo
blocco permette con un unico comando di regolare anche tutte le apparecchiature della
casa per meglio adattare le condizioni all’attività che si sta compiendo.
- 52 -
Studio e ricerca delle componenti del sistema
La presenza del comando ambiente è utile anche per dare un comando generale di
accensione/spegnimento a tutto il sistema.
La programmazione dei comandi attraverso configuratori risulta molto utile anche nel caso
in cui un interruttore debba essere utilizzato come comando temporizzato; in questo caso
non occorre installare un comando apposito ma semplicemente configurare a dovere uno
dei comandi già presenti nel sistema. Per una panoramica dei vari comandi implementati
nel sistema utilizzato vengono riportate nel capitolo Appendice 1 alcune pagine con un
sunto della guida MyHome automazione.
Fig. 13: Esempio di configurazione di sistema MyHome
OPENWEBNET
L’OpenWebNet è un protocollo di comunicazione studiato per poter scambiare dati ed
inviare comandi tra un’unità remota e il sistema MyHome BTicino. Il protocollo è stato
pensato per essere indipendente dal layer fisico utilizzato, si tratta quindi di
un’implementazione dei livelli più elevati del sistema ISO/OSI. Attualmente BTicino offre
la possibilità di utilizzare questo protocollo sia sui web server (gateway residenziali) con il
comunicatore e l’attuatore telefonico, sia con l’interfaccia SCS-OPEN (utilizzata in seno a
questo progetto).
La sintassi del protocollo OpenWebNet per comunicare con le periferiche presenti
sul bus SCS prevede un messaggio strutturato a campi che gradatamente specificano il
- 53 -
Studio e ricerca delle componenti del sistema
dettaglio dell’informazione contenuta. Un messaggio OpenWebNet deve necessariamente
iniziare con il carattere ‘*’ e terminare con la coppia di caratteri ‘##’; i campi contenuti tra
questi possono avere una lunghezza variabile e sono separati dal carattere speciale ‘*’.
I messaggi Open possibili sono di quattro tipi:
- invio comandi;
- richiesta stato;
- scrittura di grandezze;
- lettura di grandezze.
Il messaggio open è scritto con un insieme ben definito di possibili caratteri: 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, *, #; ed ha una forma del tipo:
*tag1*tag2*…*tagN##
Un tag è composto dallo stesso insieme di caratteri escluso la coppia di caratteri ## in
quanto indicano la chiusura del messaggio.
Ogni volta che un messaggio viene spedito per mezzo di apposite interfacce al sistema
MyHome, questo risponde riportando la correttezza o meno del messaggio e/o
dell’operazione eseguita attraverso due messaggi particolari noti come ACK (‘*#*1##’) e
NACK (‘*#*0##’). Il messaggio NACK può essere preceduto da altri messaggi sintetici
che indicano la natura dell’errore (si rimanda alla guida online [a] per ulteriori
chiarimenti).
Per i quattro tipi di messaggi sopra riportati il messaggio OpenWebNet
esige una
differente strutturazione.
Nel caso si voglia inviare un comando al sistema, il messaggio deve essere del tipo:
*CHI*COSA*DOVE#LIV#INT##
• CHI indica il tipo di periferica a cui è associato il comando (0 = scenari, 1 = luci, 2 =
automatismi, etc.).
• COSA individua l’azione da compiere che può essere ON (1), OFF (0), dimmer al 20%
(2), accensione temporizzata per 15 minuti (16), etc.
• DOVE sta invece ad indicare l’indirizzo associato alla periferica durante la
programmazione per mezzo dei configuratori.
La coppia LIV e INT viene utilizzata quando si ha a che fare con impianti multilivello: nel
caso del sistema implementato durante l’attività è stato utilizzato un singolo BUS, vengono
quindi esclusi dal comando questi tag.
- 54 -
Studio e ricerca delle componenti del sistema
Di seguito vengono riportati alcuni esempi:
-
Accensione luce 1 ambiente 2: ‘*1*1*21##’
-
Spegnimento di tutte le luci: ‘*1*0*0##’
-
Accensione luce 11 per 5 minuti: ‘*1*15*11##’
-
Accensione scenario 3 del comando scenari 9 ambiente 1: *0*3*19##
Il comando per la richiesta di uno stato è invece strutturato nel seguente modo:
*#CHI*DOVE#LIV#INT##
Come si può notare non viene specificato il COSA perché non viene richiesta nessuna
azione, ed in testa al primo tag viene riportato il carattere ‘#’.
Lo stato può essere richiesto solo ad alcuni tipi di periferiche, il comando scenari non da
per esempio risposta ad una richiesta di stato
Se si volesse per esempio chiedere lo stato della luce 12: ‘*#1*12##’; la richiesta a questo
stato darebbe in risposta un messaggio identico al comando di accensione/spegnimento a
seconda che la luce sia accesa o spenta, preceduto da ACK se la periferica è presente,
altrimenti NACK.
Esistono altri comandi facenti parti del protocollo OpenWebNet che non sono stati qui
riportati ma che vengono utilizzati nei software applicativi che verranno illustrati in
seguito.
Per una trattazione più approfondita dei possibili del protocollo e per una descrizione e
implementazione dei possibili comandi si rimanda al manuale on-line[a].
3.2
IL FRAMEWORK BCI
BREVE PANORAMICA DEL SISTEMA
La BCI, come descritto in precedenza, è un sistema che permette di interfacciare
direttamente l’uomo con un dispositivo esterno, senza sfruttare le normali vie di
comunicazione per l’invio di informazioni e comandi.
Per il lavoro svolto durante la tesi ci si è basati su di un sistema già esistente sviluppato
negli anni passati dal gruppo di ricerca SensibiLab presso il Campus Point del Politecnico
di Milano, sede di Lecco, in seno a due attività di dottorato. Il sistema è stato una base di
- 55 -
Studio e ricerca delle componenti del sistema
partenza dal quale si è partiti per sviluppare un’applicazione il più possibile vicina alle
richieste di un possibile disabile che voglia usare un tale tipo di sistema.
In particolare l’attività si è incentrata sullo sviluppo di software applicativi, sullo studio dei
possibili controlli implementabili e dei biofeedback che verranno dati all’utente durante
l’utilizzo del sistema.
Il sistema esistente è basato su un dispositivo di acquisizione EEG a basso costo che può
essere usato sia dall’utente nella propria abitazione, sia dai ricercatori per sviluppare nuovi
protocolli ed algoritmi. Il sistema BCI dovrebbe essere riconosciuto da un computer come
un normale dispositivo di input (come mouse o tastiera): in tal senso il sistema è stato
sviluppato con un approccio metodologico suddiviso nei seguenti punti principali:
-
Registrazione del data-set;
-
Prototipazione offline del migliore algoritmo in Matlab;
-
Test online;
-
Identificazione dei possibili castomizzazioni per utenze specifiche;
-
Descrizione ad alto livello dei principali blocchi che costituiscono il sistema;
-
Ottimizzazioni dell’algoritmo e del protocollo;
-
Porting degli algoritmi in C
-
Porting dell’intero sistema su processori ad alte prestazioni (ARM7)
-
Sviluppo di interfacce utenti.
Gran parte di questi nove punti sono stati presi come fondamenta, ci si è piuttosto
concentrati
maggiormente
sull’identificazione
delle
possibili
utenze
specifiche,
sull’ottimizzazione del protocollo e dello sviluppo software delle interfacce utenti,
confrontando e tenendo sempre in considerazione i risultati riscontrati durante i test online
eseguiti.
Il protocollo utilizzato per la BCI è basato su SSVEP; questa scelta è stata dettata dal fatto
che l’SSVEP costituisce un buon metodo per la Brain computer Interface: nonostante
infatti non necessiti di un tempo di addestramento lungo quanto quello relativo ad una BCI
con protocollo di motor imagery, ha comunque una buona performance ed un discreto
numero di possibili classi. Non risulta comunque la migliore soluzione per quanto riguarda
la BCI in generale in quanto è un protocollo che non funziona con tutti i soggetti, ha una
- 56 -
Studio e ricerca delle componenti del sistema
certa difficoltà nel funzionare con forte illuminazione in quanto utilizza degli stimolatori
luminosi lampeggianti che procurano anch’essi un certo disturbo se utilizzati troppo a
lungo.
Il sistema utilizzato in laboratorio è indipendente dalla metodologia utilizzata: è stato
scelto il protocollo SSVEP per la sua “semplicità” di utilizzo, ma non è detto che in un
futuro non possa essere sostituito con un qualsiasi altro tipo di protocollo BCI.
Il sistema è costituito da:
-
blocco di acquisizione a basso costo;
-
software di interfacciamento per l’hardware;
-
hardware per il controllo dei led per SSVEP;
-
interfaccia grafica utente;
Di seguito viene riportata una breve descrizione dei vari blocchi del sistema da cui si è
partiti per lo sviluppo del progetto di tesi.
L’UNITÀ DI ACQUISIZIONE
Il sistema di acquisizione Kimera II (Fig. 14) è composto da un amplificatore EEG e da un
blocco di acquisizione ed elaborazione digitale.
L’amplificatore EEG adotta un circuito brevettato per il condizionamento del segnale
alimentato a 3,3V che permette un recupero veloce dalla saturazione assicurando una
buona robustezza agli artefatti e ai rumori fuori dalla banda utile (interferenza di rete, etc.)
[21]. Il blocco di acquisizione ed elaborazione digitale sfrutta un sistema operativo realtime ed un firmware specifico implementato su un controllore ARM7 a 32 bit con il
compito di eseguire:
-
Conversione analogica digitale utilizzando un ADC esterno ad otto canali;
-
Memorizzazione locale dei dati su microSD® con filesystem FAT16;
-
Comunicazione con PC o palmari mediante protocollo Bluetooth®;
-
Pre-elaborazione dei dati sfruttando librerie matematiche in C.
L’elettroencefalografo può acquisire fino a 8 canali differenti con una frequenza di
campionamento di 256Hz; ogni canale è digitalizzato a 12 bit per una risoluzione finale
attorno ad un centinaio di nanovolt.
- 57 -
Studio e ricerca delle componenti del sistema
Fig. 14: L'hardware Kimera II
SOFTWARE DI INTERFACCIA HARDWARE
Il software di interfaccia per l’hardware è stato sviluppato come utile strumento per lo
studio dei nuovi sistemi BCI. Questo software, implementato in Visual C++, permette di
acquisire, registrare e visualizzare segnali provenienti da differenti hardware, anche di
commerciali.
Oltre a ciò il software è in grado di eseguire in real time gli algoritmi C e Matlab per
l’elaborazione del segnale, l’estrazione delle features e la classificazione di queste ultime,
passo necessario per il funzionamento della BCI.
Grazie alle caratteristiche di ereditarietà e polimorfismo suddette, è stato aggiunto
ultimamente un nuovo strumento virtuale che permette di simulare la BCI per poter testare
il corretto funzionamento del software di interfaccia di cui si parlerà in seguito.
Il sistema è in grado di acquisire fino a 8 canali EEG monopolari riferiti ai mastoidi
correlati, oppure bipolari. In questo caso, l’elettrodo di riferimento deve essere scelto in
maniera tale che su di esso il segnale SSVEP sia relativamente basso o assente e, allo
stesso tempo, il rumore presente sia il più possibile simile a quello sull’elettrodo di misura.
Queste due caratteristiche per l’elettrodo di riferimento richiedono: la prima un elettrodo il
più possibile lontano dalla sorgente; la seconda il più possibile vicino; a tale scopo si è
costretti a scegliere un compromesso andando a selezionare l’elettrodo più vicino alla
sorgente con più bassa SSVEP.
Il software di acquisizione offre altresì la possibilità di applicare dei filtri al segnale per
una migliore visualizzazione del segnale utile
- 58 -
Studio e ricerca delle componenti del sistema
Suddivisione dei segnali EEG:
Delta
0,5 – 3 Hz
Condizioni patologiche
Teta
3 – 7 Hz
Sonno profondo
Alfa
8 – 13 Hz
Rilassamento mentale
Beta
14 – 30 Hz
Attenzione/Concentrazione
>30 Hz
Attenzione/Concentrazione
Gamma
Fig. 15: Posizione degli elettrodi e nomenclatura segnale EEG
Il software ha inoltre la funzione di server nella comunicazione TCP/IP con l’interfaccia
grafica in modo da poter spedire comandi e dati come se fosse un normale dispositivo di
input del PC.
L’INTERFACCIA GRAFICA UTENTE
L’interfaccia grafica utente AEnima è la parte principale su cui è stata incentrato il lavoro
di tesi descritto in questa elaborato. Il software si basa sul motore grafico 3d open source
Irrlicht per mezzo del quale sono stati creati tutti i protocolli implementati in AEnima in
modo da rendere il tutto più realistico e coinvolgente.
Inoltre Irrlicht è un software con licenza GNU LGPL; tale tipo di licenza stabilisce il
copyleft sul singolo file di codice sorgente, ma non sull’intero software. Cioè un software
rilasciato sotto questa licenza può essere incluso liberamente in un’applicazione
commerciale a patto che eventuali modifiche apportate sul codice con licenza LGPL
vengano rese pubbliche; tutti gli altri file dell’applicazione possono essere rilasciati con
licenza proprietaria senza codice sorgente.
Grazie alle caratteristiche dell’engine 3D il software può essere eseguito sulla maggior
parte dei computer in circolazione sfruttando sia le librerie openGL, presenti in tutti i
driver grafici, sia le DirectX 8 e le più recenti DirectX 9.
- 59 -
Studio e ricerca delle componenti del sistema
Il software implementa un socket TCP/IP in modo da comunicare con l’applicativo di
acquisizione per la trasmissione dei comandi.
Nel capitolo seguente verranno meglio illustrate le nuove caratteristiche implementate in
AEnima, soffermandosi sull’impostazione grafica e sulle funzionalità di ogni protocollo,
nonché sulle metodiche di controllo implementate.
IL PROTOCOLLO SSVEP
Un sistema di Brain Computer Interface, come già detto in precedenza, può essere
costruito su differenti tipi di protocolli che dipendono direttamente dal tipo di segnale
identificato.
Nel caso del sistema BCI sfruttato in questa attività si è scelto di utilizzare un protocollo
SSVEP.
L’utilizzo di questo protocollo permette infatti di diminuire i tempi necessari per rendere
un soggetto operativo nell’utilizzo dell’interfaccia uomo macchina. La SSVEP ha infatti il
vantaggio di non richiedere un addestramento prolungato del soggetto; necessità tuttavia di
una stimolazione visiva, generata nel nostro caso da led posizionati sui quattro lati di un
monitor LCD, lampeggianti a frequenze differenti. I led sono incapsulati in appositi
contenitori opachi per una migliore resa luminosa. I quattro led, che possono essere
aumentati sino ad un numero di otto incrementando così il numero di possibili comandi,
sono controllati da un dispositivo stimolatore alimentato tramite porta USB per mezzo
della quale è implementato una comunicazione seriale virtuale indispensabile per la
configurazione degli stimolatori. Le frequenze di stimolazione sono selezionate attraverso
il software di acquisizione in esecuzione su un computer remoto connesso via TCP/IP.
Quando si parla di protocollo si intende l’insieme completo di tutte le operazioni
necessarie per rendere operativo e funzionante il sistema. Di seguito vengono riportati tutti
i passi che vengono effettuati durante una normale procedura.
Preparazione del soggetto
Il primo passo è la preparazione dell’utente: occorre per prima cosa tranquillizzare e far
rilassare il paziente in modo che possa meglio prepararsi alla fase di screening e sia pronto
- 60 -
Studio e ricerca delle componenti del sistema
alla procedure di fissaggio degli elettrodi. Vengono utilizzati elettrodi in oro fissati alla
testa mediante una apposita cuffia per EEG.
Gli elettrodi vengono fissati in posizione T5, P3, Pz, P4, T6, O1, Oz, O2, G, secondo il
sistema 10-20 per il posizionamento degli elettrodi (Fig. 15), mediante un apposita pasta
abrasiva a base di pietra pomice (l’elettrodo G è usato come massa); i due elettrodi di
riferimento sui mastoidi fissati in questo caso con pasta per EEG (Elefix). Una volta fissati,
gli elettrodi devono essere testati misurando l’impedenza esistente tra gli otto principali e i
riferimenti o la massa; l’impedenza è considerata nella norma se inferiore a circa 5KΩ. Per
appurare maggiormente il corretto posizionamento degli elettrodi e il loro funzionamento
viene inoltre chiesto al soggetto di compiere delle semplici azioni come aprire e chiudere
gli occhi, digrignare i denti: in tal modo, se il funzionamento degli elettrodi è adeguato
compaiono sui tracciati EEG nel primo caso il ritmo alfa, nel secondo caso una sorta di
rumore ad alta frequenza dovuto alla contrazione dei muscoli durante il digrignare.
Fase di Screening
Questa fase è preposta all’individuazione delle quattro frequenze di stimolazione più
efficaci per il singolo soggetto, per l’identificazione del/delle derivazioni EEG che
garantiscano il migliore rapporto tra SNR e numero di elettrodi richiesti. Durante la fase di
screening, selezionata mediante un parametro aggiuntivo da linea di comando
all’esecuzione di AEnima, viene presentato al soggetto un singolo stimolo attraverso il
lampeggiamento del led superiore. Lo stimolatore lampeggia per 8 secondi a frequenze
discrete comprese tra 6 e 17 Hz. Ogni stimolazione a frequenza crescente è intervallata da
8 secondi di pause necessari al soggetto per rilassare la vista. La fase di screening ha una
durata totale di circa 3 minuti ed è essenziale per discriminare le frequenze sulle quali il
soggetto genera SSVEP.
Alla fase di screening segue una fase di elaborazione offline in cui vengono selezionate le
migliori frequenze e l’elettrodo con il più alto rapporto segnale rumore. Per semplificare
questo passo è stato sviluppata una specifica GUI Matlab (Fig. 16) con la quale è possibile
caricare i dati memorizzati nella fase di screening ed eseguire una indagine visiva grazie a
differenti analisi implementate:
-
Analisi nel dominio delle frequenze
-
JTFA Joint time-frequency analysis
- 61 -
Studio e ricerca delle componenti del sistema
Fig. 16: GUI Matlab per la valutazione del segnale
Fase di Training
Le frequenze estratte dalla fase di screening vengono utilizzate in questa fase per creare il
dataset necessario per l’addestramento del classificatore supervisionato. In questa fase
vengono presentati al soggetto quattro stimoli luminosi a alla frequenze selezionate sui
quattro led differenti; per un certo periodo di tempo l’utente deve concentrare l’attenzione
sullo stimolatore che gli viene indicato a cui segue una pausa per il rilassamento visivo
come da sequenza mostrata in Fig. 17. In questo modo il software registra i dati in ingresso
e la così detta “uscita desiderata” indispensabile per addestrare il classificatore.
Il passaggio dell’addestramento da una sorgente luminosa all’altra è intervallato da una
fase in cui il soggetto è invitato a rilassare la vista concentrando la propria attenzione sul
centro dello schermo o comunque a non fissare nessuno stimolo particolare. Il segnale così
acquisito viene utilizzato da un’ulteriore GUI Matlab per il training alle frequenze
selezionate. Per eliminare eventuali disturbi che potrebbero corrompere il corretto
apprendimento del classificatore, la GUI di Matlab sopra citata da la possibilità di editare il
dataset in modo da eliminare quei tratti di segnale in cui sono presenti degli artefatti che
potrebbero provocare un peggioramento nella fase di training.
- 62 -
Studio e ricerca delle componenti del sistema
Fig. 17: Fasi del protocollo di training
Fase di Testing
Una volta addestrato il classificatore supervisionato si esegue il testing per verificarne il
corretto funzionamento. Durante questa fase al soggetto è chiesto di concentrare la propria
attenzione ed il proprio sguardo su una delle quattro luci che fungono da stimolazione(Fig.
18). Il segnale EEG viene intanto acquisito ed elaborato in tempo reale in modo da estrarre
le caratteristiche per una corretta identificazione. A seconda di quale stimolatore il
soggetto sta guardando, in prossimità del led alla quale è associata la stimolazione viene
visualizzato un biofeedback sottoforma di barra luminosa che aiuta il soggetto nel abituarsi
all’utilizzo degli stimolatori.
Fig. 18: Soggetto durante la fase di Testing
- 63 -
Studio e ricerca delle componenti del sistema
Il protocollo SSVEP ha il vantaggio di avere un tempo di addestramento molto breve a
confronto con quello necessario per altri protocolli (come la motor imagery).
Per contro, l’SSVEP ha il notevole svantaggio di non poter essere utilizzata da tutti i
soggetti: è possibile infatti che il soggetto non trascini (non viene generato il potenziale
SSVEP su alcuna delle frequenze presentate) non a causa di condizioni patologiche ma
semplicemente per la grande variabilità intra-soggettiva secondo la quale non tutte le
persone sono soggette a trascinamento; dall’altra parte, in presenza di alcune patologie
come parkinson o altre malattie soggette a spasticità, le contrazioni involontarie dei
muscoli del collo potrebbero generare del rumore sovrapposto all’EEG misurato rendano
impossibile l’acquisizione di segnali in regione occipitale.
IL BIOFEEDBACK
Il biofeedback, come illustrato alla fine del capitolo precedente, è un’informazione data
all’utente sul task mentale che questi sta eseguendo.
Il segnale utilizzato come biofeedback può essere generato con differenti modalità: nella
maggior parte delle BCI, l’informazione viene generata direttamente dal classificatore che,
oltre ad avere il compito di riconoscere la configurazione delle features in ingresso,
fornisce anche un feedback come indice di affidabilità della classificazione eseguita.
In questo caso il feedback dipende quindi dalla bontà con cui il classificatore è stato
addestrato. Il soggetto impara ad utilizzare il sistema man mano ne fa uso; se il
classificatore non è addestrato correttamente, l’utente esperto che generasse dei dati
migliori di quelli utilizzati durante il training potrebbe provocare un feedback
erroneamente basso, associato di conseguenza ad una falsa classificazione.
Per ovviare a questi problemi occorre eseguire più addestramenti successivi per tenere
aggiornato il classificatore in base all’abilità dell’utente, oppure utilizzare un feedback
indipendente dal classificatore. Il feedback utilizzato dal framework in laboratorio
implementa questa seconda soluzione fornendo un’informazione sulla stima dell’ampiezza
del segnale SSVEP, corrispondente alla feature estratta dopo l’analisi del segnale.
Per meglio comprendere il funzionamento di un tale tipo di biofeedback si è ritenuto
opportuno riportare di seguito una breve spiegazione di come questo viene realmente
calcolato.
- 64 -
Studio e ricerca delle componenti del sistema
La feature è il risultato del rapporto stima-ampiezza della media del segnale sincronizzato
con lo stimolo, rispetto al segnale puro; per ogni frequenza viene estratta una feature.
Una volta che il segnale è stato elaborato (filtraggio spaziale e temporale) il segnale viene
suddiviso in n sottofinestre di lunghezza Plenght, che corrisponde alla lunghezza temporale
(misurata in numero di campioni) dello stimolo, e ne calcola la media (accumulation
window):
acc(i ) =
1
SubWinNumber −1
Signal (i + w * SubWinNumber )
∑
SubWinNumber w=0
dove
SubWinNumb er =
WinLength
StimPeriod
In questo modo la componente del segnale sincrona con la frequenza di stimolazione viene
incrementata rispetto alla componente asincrona.
Confrontando la deviazione standard della finestra mediata con la deviazione standard del
segnale si ottiene una stima dell’ampiezza dell’SSVEP che verrà poi utilizzata dal
classificatore.
Feature =
std (acc)
std ( Signal )
Il risultato del rapporto tra le due deviazioni standard è teoricamente un numero tra 0, nel
caso di segnale totalmente asincrono, e 1, nel caso di segnale periodico con lo stesso
periodo della stimolazione.
In realtà anche questo tipo di feedback presenta un problema: il segnale acquisito non è
infatti mai desincronizzato completamente con la frequenza di stimolazione.
Se considerassimo infatti il segnale EEG senza SSVEP la feature estratta risulterebbe circa
pari a 1 / N : il feedback, anche in caso di segnale non sincronizzato, non risulterà quindi
mai perfettamente a 0.
Si preferisce quindi sottrarre tale valore in modo da avere una più chiara visualizzazione
del
biofeedback
che
non
raggiungerà
tuttavia
- 65 -
mai
il
suo
valore
massimo.
Sviluppo del sistema
4
Sviluppo del sistema
Senza sacrificio l’uomo
non può ottenere nulla,
per ottenere qualcosa
è necessario dare in cambio
qualcos’altro che abbia
il medesimo valore.
In alchimia è chiamato
il principio dello scambio equivalente…
Hiromu Arakawa (Full Metal Alchemist)
In questo capitolo è descritta la parte di sviluppo del progetto. Viene dapprima proposta
una breve spiegazione del sistema MyHome implementato descrivendone le caratteristiche
essenziali. Sono poi illustrati tutti i software implementati durante l’attività: si parte con una
descrizione delle librerie utilizzate e si continua con la spiegazione dell’applicativo creato per
la configurazione ed il testing del sistema domotico. Successivamente viene riportata la
descrizione dei metodi di controllo implementati e del software di interfacciamento con il
sistema BCI.. In ultimo viene proposta la progettazione e la realizzazione del circuito di
interfaccia bluetooth/seriale.
4.1
IMPLEMENTAZIONE DEL SISTEMA DOMOTICO MYHOME
Dopo un’attenta ricerca nel mercato della domotica per trovare il sistema che meglio
rispecchiasse le caratteristiche richieste dalla sperimentazione, come già spiegato nel
capitolo precedente, la scelta è caduta su MyHome di BTicino: sistema compatto, flessibile
e soprattutto facilmente espandibile e configurabile.
Presso il nuovo Campus Point di Lecco è stato implementato un dimostratore costituito da
un piccolo impianto domotico collegato tramite apposita interfaccia al sistema BCI.
La parte domotica del prototipo, costituita da un ridotto sistema MyHome, è stata
implementata all’interno di una valigetta in modo da renderla il più possibile
“trasportabile” e per separarla dal resto dell’ambiente (Fig. 19).
- 66 -
Sviluppo del sistema
Fig. 19: Foto del sistema MyHome implementato presso il Sensibilab (Campus Point, Lecco)
Per rendere il più possibile verosimile l’implementazione del sistema sono stati aggiunti
dei normali interruttori e delle prese elettriche a cui sono stati collegati dei carichi quali un
ventilatore, una lampada e alle quali è possibile collegare un qualsiasi apparecchi elettrico
si voglia “comandare”.
La pianta di Fig. 20 mostra la disposizione con cui è stato installato il prototipo: è possibile
notare il sistema domotico collegato ad alcuni carichi ed il sistema BCI.
Il sistema di illuminazione comandato dall’impianto domotico è invece composto da due
faretti posti negli angoli del locale dove è stato implementato il prototipo.
Tutta la parte domotica costituisce un sistema a se stante, separato dall’impianto elettrico
della struttura. In questo modo è stata salvaguardata la sicurezza per la quale è stato
aggiunto anche un interruttore in grado di spegnere il sistema domotico in caso di guasto o
manutenzione.
Il sistema di illuminazione è stato progettato in maniera tale da non influenzare troppo sul
funzionamento dell’SSVEP che necessita di uno stato di penombra per un funzionamento
ottimale. A tale proposito le finestre di cui è dotato il locale sono state oscurate con
opportuni pannelli opachi in modo da poter controllare la luminosità e consentire il
funzionamento della BCI.
La configurazione della domotica è stata progettata in modo da poter simulare al meglio
l’utilizzo concreto di un tale sistema.
- 67 -
Sviluppo del sistema
Sistema
Domotico
Stimolatori
SSVEP
Postazione
Utente
Kimera II
Utilizzatori
Fig. 20: Schematizzazione del locale in cui è stato disposto il prototipo
Nella pagina seguente viene riportato il circuito completo del sistema domotico MyHome,
con tutti i collegamenti effettuati. Come si può notare sono stati riportati anche i
configuratori per ogni periferica in modo che il sistema sia facilmente replicabile, grazie
anche alla scelta di un sistema domotico commerciale.
La connessione del sistema con il computer, come è possibile notare in Fig. 21, è possibile
attraverso i due dispositivi L4686SDK di BTicino: il primo configurato per potersi
collegare sia via porta USB che seriale RS232; il secondo configurato, tramite il circuito di
cui si parlerà in uno dei capitoli successivi, in modo tale da rendere possibile un
collegamento Bluetooth® senza fili, potenzialmente più utile e flessibile nel caso il
prototipo venga poi utilizzato in una situazione di vita reale.
- 68 -
Sviluppo del sistema
l
nto
Pu
e
uc
2
Attuatore
2 relé
N
Attuatore
2 relé
1 9
Modulo
Scenari
BUS SCS
SCS
A = Numero Ambiente
PL = Numero periferica
M = modalità di funzionamento
G = Numero gruppo
Legenda
SCS
1 3 4 8
Configurazione
Interruttori a 2
Configurazione
Attuatore 4 relè
Configurazione
Modulo scenari
Configurazione
Attuatore 2 relè
2 5 6 8
SCS
P
L
P P
A L L G M
1 2
A
P P P P
A L L L L M
1 2 3 4
P
P
A
M A
M
L
L
1
1 2
2
1
2
P
U
S
H
Alimentatore
On
Off
I
1 3 / 1 1
O
On
Off
I
I
2 5 / 2 1 /
O
O
Alle prese
comandate o
eventuali
carichi.
230V
P
U
S
H
1 1 2 5 6
Attuatore
4 relé
SCS
F
T
N
2 1 2 3 4
Attuatore
4 relé
SCS
Presa
comandata
Fig. 21:Schema del sistema domotico MyHome implementato presso il Sensibilab di Lecco
Linea
Elettrica
N
T
F
- 69 -
1
uc
e
Pu
nto
l
Sviluppo del sistema
4.2
SVILUPPO DEL SOFTWARE
In questo paragrafo vengono illustrati i software sviluppati durante l’attività di tesi.
Per una migliore descrizione vengono dapprima riportate le librerie utilizzate nella
maggior parte dei software, descrivendo successivamente la struttura ed il funzionamento
dei vari programmi.
LE LIBRERIE UTILIZZATE
Le librerie hanno per definizione l’obiettivo di fornire una vasta collezione di funzioni
evitando al programmatore di riscriverle ogni volta che vengono riutilizzate.
Un programma sviluppato attraverso librerie permette inoltre di ottenere un più alto livello
di astrazione, crea cioè una strutturazione del software su più piani separati. Una tale
soluzione è molto utile nei casi in cui siano previsti interventi successivi sul software: in
questo caso infatti il codice risulta facilmente interpretabile ed eventuali interventi sul
sorgente di una libreria vanno ad influire minimamente sul core software e sulle altre
librerie.
Gli applicativi implementati sono per questo basati su sei librerie principali, due delle quali
(in corsivo) sono state sviluppate durante l’attività:
-
WXWIDGETS: libreria per la creazione di form grafiche;
-
LIBWXCTB: libreria WIDGETS per la gestione della seriale;
-
MYSERIAL: libreria per la gestione della seriale ad un livello di astrazione più
elevato;
-
L4686SDK: libreria per la gestione dell’interfaccia seriale/usb-SCS di BTicino per
il sistema MyHome;
-
AUDIERE: libreria per la gestione della periferica audio del PC;
-
IRRLICHT: motore grafico 2D/3D.
In Fig. 22 viene riportato un schema che riassume il software implementato, sottolineando
particolarmente le librerie utilizzate ed i collegamenti presenti tra le varie componenti del
sistema.
- 70 -
Sviluppo del sistema
MySerial.h
L4686sdk.h
wxWidgets
libwxctb
Irrlicht
AEnima
Config_bci.exe
MyBCI.exe
Crea_scenari.exe
Config.txt
Acquisition
Software
Domotica
Fig. 22: Struttura del software implementato.
Di seguito viene proposta una breve spiegazione di queste librerie, soffermandosi
principalmente sulla descrizione di quelle sviluppate durante la tesi.
Le WXWIDGETS sono toolkit per lo sviluppo di interfacce grafiche semplici da utilizzare
grazie alla presenza dell’applicativo wxFormBuilder con la quale sono state realizzate le
finestre dei programmi Windows© Based sviluppati. La scelta di utilizzare queste librerie
per lo sviluppo dei software è dettata da tre motivi fondamentali:
-
le wxWidgets[b,c] sono librerie crossplatform, cioè in grado di essere compilate e
eseguite con sistemi operativi differenti (Windows©, Linux).
-
sono un insieme di librerie per la gestione di molteplici componenti e aspetti di un
personal computer tra cui la grafica, la comunicazione attraverso socket, l’audio,
etc.
-
sono librerie semplici da utilizzare, fornite con ampia documentazione e semplici
esempi.
Le WxWidgets sono inoltre provviste di licenza LGPL che permette di includerle
liberamente in un applicazione commerciale closed-source, a patto che le modifiche
apportate al codice sorgente delle librerie vengano rese pubbliche.
- 71 -
Sviluppo del sistema
LIBWXCTB è una libreria per la gestione della seriale a basso livello; è indispensabile per il
corretto funzionamento delle due librerie implementate per l’amministrazione della seriale
e dell’interfaccia BTicino.
La libreria MYSERIAL è implementata in C nativo ed è stata sviluppata per la gestione
della comunicazione seriale del PC. È sviluppata basandosi sulla libreria libwxctb di cui
utilizza le funzioni principali.
In questa libreria sono implementate le quattro funzioni principali per l’utilizzo della
seriale del PC:
-
Init_Serial: Funzione per l’inizializzazione della comunicazione seriale, vengono
qui definiti il numero della porta COM il Baudrate ed tutte le impostazioni per la
trasmissione;
-
Close_Serial: Funzione per la chiusura della comunicazione seriale;
-
Serial_Write: Funzione per la scrittura e l’invio dei dati su seriale;
-
Serial_Read: Funzione per la ricezione dei dati da seriale.
La libreria L4686SDK è anch’essa implementate in C nativo ed è basata sulla precedente
MySerial; per il funzionamento necessita solamente di una pre-inizializzazione della
seriale tramite la funzione Init_serial.
All’intero di questa libreria sono implementate quindici funzioni utilizzate come
infrastruttura per il linguaggio OpenWebNet, attraverso le quali è possibile gestire le
operazioni più semplici ed utili per il comando del sistema domotico MyHome.
Le funzioni implementate sono:
-
controllo_ACK: funzione per il controllo della trasmissione. Dopo una qualsiasi
operazione, il device L4686SDK risponde con un messaggio di ACK
(Acknowledge) o NACK a seconda dell’esito dell’operazione.
-
on_luce - off_luce: Funzione per l’accensione e lo spegnimento di punti luce o
prese comandate da relè all’indirizzo selezionato.
-
tapparella - on_luce_scala: Funzione per il comando temporizzato dei relè
all’indirizzo selezionato.
-
on_scen: funzione per l'attivazione dello scenario. Deve essere specificato
l’indirizzo del modulo scenari ed il numero dello scenario stesso.
- 72 -
Sviluppo del sistema
-
on_prog_scen,
off_prof_scen,
del_all_scen,
del_scen:
funzioni
per
la
programmazione degli scenari.
-
on_gruppo - off_gruppo: Funzione per l’accensione e lo spegnimento dei gruppi.
-
leggi_stato - leggi_stato_gruppo: funzione per la lettura dello stato delle
periferiche.
-
connessione: funzione per il controllo della connessione tra PC e interfaccia
BTicino.
La libreria AUDIERE consiste invece di api per la gestione dell’audio ad alto livello. È una
libreria cross-platform compatibile con sistemi operativi Windows© e Linux. Ulteriore
fattore di importanza è la compatibilità con vari tipi di formati audio (tra cui wav, mp3 e
ogg) e la possibilità di eseguire i file in streaming, senza cioè caricare l’intero file in
memoria, rendendo l’esecuzione del software più leggera.
IRRLICHT è un graphic engine, un motore grafico 3d cross-platform compilato in
linguaggio C++. Un motore grafico è il core software che sta alla base di tutte quelle
applicazioni che necessitano di una grafica in tempo reale.
I motori grafici sono costituiti a partire da delle api grafiche: procedure e funzioni che
formano un set di strumenti specifici con il compito di dialogare a basso livello con i driver
delle schede grafiche e audio.
Esempi di api grafiche sono le Direct3D e le OpenGL; sfruttando queste funzioni, il
motore grafico fornisce un ulteriore livello di astrazione rendendo più semplice al
programmatore dialogare con il processore grafico (GPU) e la scheda video.
L’utilizzo di un motore grafico permette di semplificare notevolmente la stesura del codice
rispetto all’utilizzo delle classiche MFC (Microsoft Foundation Classes) e allo stesso
tempo ottenere un risultato nettamente superiore.
Esistono numerosi motori grafici sul mercato: dai più complessi e performanti engine
commerciali come CryEngine o C4Engine utilizzati per lo sviluppo di videogame di alta
qualità, ai più semplici motori open source come Irrlicht, Ogre e Crystal Space.
La scelta di utilizzare Irrlicht come libreria grafica è stata dettata da cinque fattori
principali:
-
è una libreria Open Source;
- 73 -
Sviluppo del sistema
-
è cross-plattform;
-
è compatibile sia con DirectX che con OpenGL;
-
è compilato in C++;
-
è semplice da utilizzare e fornito di esempi ed un’ampia documentazione online.
Essendo il motore grafico open-source, l’engine è continuamente aggiornato;
l’intercambiabilità tra le varie versioni è tuttavia resa difficoltosa da numerosi cambiamenti
apportati in vari punti del codice. Per il lavoro di tesi è stata utilizzata la versione 1.3
presente sul sito degli sviluppatori [d].
Prerogativa di Irrlicht è il supporto di DirectX8, DirectX9 ed OpenGL; grazie a questo, la
compatibilità dei programmi che si basano su questo engine grafico non è solo crossplatform, ma garantisce il funzionamento su personal computer anche non più molto
recenti.
Il motore grafico supporta vari tipi di formati di modellizzazione 3D non che la possibilità
di creare semplici animazioni a partire da una sequenza di immagini, anch’esse compatibili
in diversi formati.
Irrlicht è basato sul concetto di nodo. I nodi sono oggetti con struttura ad albero in cui
vengono caricate immagini, mesh 3D, texture che contengono delle specifiche funzioni a
seconda della tipologia di nodo che si sta utilizzando per la generazione di animazioni ed
altri effetti grafici.
Irrlicht da inoltre la possibilità di controllare gli eventi che vengono generati dalla
pressione di un tasto della keyboard, dall’invio e la ricezione di dati via TCP/IP, etc. dando
così l’opportunità di gestire il tutto senza l’utilizzo di ulteriori librerie.
Molto utile risulta anche la presenza di un piccolo engine fisico per la rilevazione di
collisioni.
Per ogni libreria e software creato è stata generata una documentazione che illustra per
ogni programma le funzioni implementate, i parametri utilizzati e propone una sommaria
illustrazione dell’utilizzo dell’applicazione.
- 74 -
Sviluppo del sistema
SOFTWARE DI CONFIGURAZIONE E TESTING
In questo paragrafo vengono presentati i tre applicativi per la configurazione ed il testing
del sistema MyHome.
Le tre applicazioni servono rispettivamente per la configurazione del sistema, per la
configurazione degli scenari e per il testing ed il controllo dell’impianto da PC. La struttura
modulare di questi tre programmi permette di aggiornare facilmente l’intero sistema senza
dover iniziare la programmazione ex novo; sono inoltre la base di partenza da cui si sono
sviluppati i protocolli per la BCI di cui si parlerà del paragrafo successivo.
IL SOFTWARE CONFIG_BCI
Il sistema installato come da schema in Fig. 21, per essere gestito da PC o attraverso un
sistema BCI, necessita di essere configurato, ciò significa che il PC deve essere a
conoscenza di quali periferiche MyHome sono presenti in modo da poter comandare solo
ciò che è realmente collegato ed impedire l’invio di comandi o la lettura di stati di una
periferica inesistente, provocando ritardi nell’esecuzione del software ed errori.
Per eseguire questa operazione è stata sviluppata l’applicazione CONFIG_BCI: questo
software ha il compito di creare un file contenente la configurazione del sistema in modo
che possa essere facilmente letto da una qualsiasi applicazione che voglia comunicare ed
utilizzare il sistema domotico.
Il programma è essenzialmente costituito da una finestra nella quale vengono visualizzati
dei comandi e dei tag per l’inserimento dei dati (Fig. 23) . Il software genera/modifica un
file nel quale sono memorizzate tutte le informazioni necessarie per l’utilizzo del sistema
MyHome.
La struttura della form è stata studiata per rendere l’operazione la più semplice possibile;
per facilitarne ulteriormente l’utilizzo nella finestra viene riportata una breve spiegazione
per la creazione di un corretto file di configurazione.
Occorre come prima operazione selezionare la COM mediante l’apposito menù a tendina
(A): la seriale selezionata, prima di essere inserita nella configurazione, viene testata per
accertarne il corretto funzionamento e la disponibilità (la porta seriale può essere infatti già
occupata da un’altra applicazione).
- 75 -
Sviluppo del sistema
Le periferiche di MyHome vengono invece aggiunte scegliendo mediante gli appositi tag il
tipo di periferica (B), il nome (C), l’indirizzo SCS (D), il numero dello scenario (E) nel
caso la periferica sia di tipo scenario e l’immagine da assegnare al pulsante.
Per aggiungere una periferica occorre inserire tutti i valori e premere il pulsante Aggiungi.
b
C
D
E
A
Fig. 23: Schermata del software di configurazione per MyHome
Con questa operazione i dati da aggiungere non vengono memorizzati direttamente nel file
finale ma in un buffer. In questo modo è possibile eliminare facilmente i cambiamenti
effettuati semplicemente chiudendo il programma.
- 76 -
Sviluppo del sistema
Per eliminare una periferica presente nel file di configurazione occorre inserire il nome
nell’apposito campo (C) e premere il pulsante elimina. Anche in questo caso tutte le
modifiche verranno dapprima salvate in un buffer; le modifiche saranno memorizzate nel
file di configurazione solo dopo la conferma del salvataggio (pulsante Salva).
Nella Fig. 23 si può notare inoltre la presenza di un pulsante per l’eliminazione dell’intera
configurazione.
Per rendere l’applicazione finale la più semplice e personalizzabile possibile, all’utente è
inoltre data la possibilità di selezionare il file immagine che verrà associato al pulsante
della periferica nell’applicazione MyBCI e Anima; nel caso non venga selezionata alcuna
immagine specifica, viene utilizzata una figura di default.
IL FILE DI CONFIGURAZIONE
La configurazione viene salvata in un file in formato .txt in modo da ottenere la
compatibilità con diversi sistemi operativi.
Un formato del genere permette inoltre di strutturare il contenuto in modo leggibile: nel
caso del file config.txt la configurazione è facilmente interpretabile grazie all’utilizzo di un
linguaggio naturale per la memorizzazione delle periferiche.
La prima linea del file, come mostrato in Fig. 24, contiene il nome della porta COM da
utilizzare per la comunicazione con l’interfaccia BTicino: possono essere utilizzate sia le
normali COM presenti nel PC, sia porte seriali virtuali generate tipicamente dai dispositivi
Bluetooth® e USB to rs232 converter.
Le successive linee contengono ognuna la configurazione di una singola periferica. Ogni
riga è composta da cinque campi intervallati da uno spazio; la linea è terminata dai
caratteri /n /r in modo da separare le impostazioni delle differenti periferiche.
Il primo campo corrisponde alla tipologia di periferica ed è memorizzata attraverso il nome
completo del tipo (Punto_Luce, Ambiente, Gruppo, Scenario e Automazione).
Il secondo campo è il nome associato alla periferica. Attraverso questo parametro viene
data una descrizione della periferica (per esempio luce scala, scenario TV, etc.) utilizzata
anche come identificativo univoco di ogni dispositivo: due periferiche non possono avere
lo stesso nome. È stato scelto di utilizzare una stringa contenente il nome come
identificativo e non un numero in modo da poter utilizzare lo stesso anche durante
l’implementazione dei software MyBCI e Anima per la nomenclatura dei pulsanti.
- 77 -
Sviluppo del sistema
Il terzo campo, nel caso il dispositivo sia di tipo scenario, contiene il numero con cui la
periferica è memorizzata all’interno del modulo scenari. Per gli altri tipi di periferiche
viene memorizzato un campo vuoto contenente il carattere “-“.
L’impostazione della periferica prosegue con il numero dell’indirizzo del bus SCS
associato al dispositivo: la formattazione di tale indirizzo è illustrata nel capitolo
precedente.
Il quinto ed ultimo campo contiene invece il percorso generale del file immagine da
utilizzare come pulsante nelle applicazioni finali. Le immagini utilizzabili devono essere
preferibilmente in formato bmp di una grandezza massima di 100x100 pixel. La scelta di
un nome e di una figura appropriati durante la configurazione di ogni periferica è
indispensabile per ottenere una grafica utente la più semplice ed efficace possibile.
I file di configurazione, data la struttura appena illustrata, può essere anche modificato
manualmente con l’accortezza di mantenere la formattazione generata dal software di
configurazione.
Fig.24: Esempio di file di configurazione
IL SOFTWARE CREA_SCENARI
Il secondo applicativo per la configurazione ideato durante il progetto è il software
CREA_SCENARI. Il software è stato sviluppato per la configurazione dei moduli scenari
presenti nel sistema MyHome.
- 78 -
Sviluppo del sistema
Il software è costituito da un’unica finestra (Fig. 25) contenente tag e comandi per
l’inserimento dei dati necessari per la creazione dello scenario.
Occorre, come prima operazione, selezionare la porta seriale a cui è collegata l’interfaccia
(A), il software procede con il controllo della la presenza del dispositivo BTicino, in caso
contrario viene visualizzato un errore che richiede la selezione di una nuova COM.
In una modalità simile a quella già descritta per il software precedente, viene richiesto
l’inserimento dell’indirizzo del modulo scenari (B) ed il numero dello scenario (C) da
configurare (si possono configurare fino a 16 scenari per modulo).
A questo punto la pressione del comando Avvia Prog. da inizio alla programmazione del
modulo scenari. Una volta entrati nella modalità programmazione tutte le variazioni che
avvengono nel sistema MyHome (on/off luci, regolazione imposte, ecc.) vengono
memorizzate dal modulo scenari. Terminata la selezione delle periferiche da inserire nello
scenario desiderato, la pressione del comando Fine Programmazione chiude la modalità
programmazione e memorizza lo scenario sul modulo.
Nel software sono stati inoltre inseriti dei comandi per testare gli scenari programmati (D)
e per l’eliminazione del singolo o di tutti gli scenari (E) presenti su di un modulo.
I due pulsanti Scollega COM e Collega COM sono stati implementati in modo da poter
liberare la comunicazione seriale istanziata con l’interfaccia e poter così utilizzare il
software MyBCI, illustrato nel prossimo sottoparagrafo, per l’accensione e lo spegnimento
delle periferiche da inserire nello scenario.
Lo scollegamento della COM è indispensabile in quanto l’esecuzione del programma
Crea_Scenari, dopo aver selezionato la porta seriale da utilizzare, crea una connessione con
l’interfaccia che tiene occupata la COM per tutta la durata della collegamento; la
momentanea disconnessione permette di utilizzare l’interfaccia seriale con altri software.
Occorre tuttavia ricollegarsi mediante l’apposito comando per essere in grado di terminare
la programmazione dello scenario. Nel software sono implementati numerosi controlli che
abilitano e disabilitano i vari tag/comandi e mostrano messaggi in modo tale da impedire
all’utente di incorrere in errori.
- 79 -
Sviluppo del sistema
C
B
E
A
D
Fig. 25: Schermata del software di configurazione scenari
IL SOFTWARE MYBCI
Dopo aver terminato la configurazione, prima di procedere all’implementazione
dell’interfacciamento BCI con la domotica di BTicino, occorre verificare il corretto
funzionamento del sistema testé configurato. Si necessita quindi di un software apposito
che legga la configurazione eseguita in precedenza e sia in grado di inviare i comandi
necessari per testare le varie periferiche.
Volgendo lo sguardo verso un possibile utilizzo concreto di tale sistema, si è deciso di
strutturare il programma in maniera da poter essere utilizzato non solo come testing, ma
anche come applicazione finale per la gestione della domotica da PC. A tale proposito sono
stati implementati vari controlli per gli errori in modo da ottenere un prodotto finale il più
stabile possibile.
Il software è composto da una finestra principale (Fig. 26) e da quattro secondarie a
scomparsa alla quale si può accedere attraverso i comandi posti nella form principale.
I moduli attualmente presenti sono: punto luce, ambienti/gruppi, scenari e automazione.
- 80 -
Sviluppo del sistema
Il software, all’accensione, controlla l’esistenza del file di configurazione: se la
configurazione è assente viene inizializzato automaticamente il software config_bci.
Viene inoltre accertata la presenza del collegamento con l’interfaccia seriale; se il
dispositivo non è collegato il software avvisa l’utente con un messaggio di errore e chiude
automaticamente l’applicazione. Le finestre associate alle quattro tipologie di periferiche,
al contrario della finestra principale, sono create in modo dinamico in quanto la loro
struttura deve mutare automaticamente nel caso la configurazione memorizzata nel file
config.txt venga cambiata.
Le funzioni implementate da ogni comando sono differenti a seconda della tipologia di
periferica.
Fig. 26: Schermata del software di test MyBci
I punti luce vengono gestiti con comandi in modalità toggle: la luce è accesa e spenta
mediante lo stesso controllo semplicemente leggendo anticipatamente lo stato delle singole
luci ed inviando il comando di conseguenza.
Per gli altri tipi di periferiche, al contrario, sono stati implementati due comandi differenti
per l’accensione e per lo spegnimento.
Per accendere per esempio una luce occorre prima selezionare l’icona associata alla
tipologia Punto_Luce nella finestra principale, a questo punto verrà visualizzata una
finestra come quella di Fig. 27 nella quale sono visualizzati i pulsanti associati alle
periferiche configurate. Cliccando sul pulsante della periferica da accendere il programma
- 81 -
Sviluppo del sistema
invia il comando OPENWEBNET specifico all’interfaccia seriale che a sua volta spedisce
il comando sul bus SCS e accende la lampada.
Fig. 27: Finestra di selezione delle periferiche Punto_Luce
IL SOFTWARE DI INTERFACCIA BCI: AENIMA
La parte più importante dell’intero progetto è stato lo sviluppo del software AEnima per
l’interfacciamento del sistema domotico con la Brain Computer Interface.
L’applicazione è stata sviluppata a partire da una base preesistente contenente i tre
protocolli, menzionati nel capitolo precedente, per lo screening delle frequenze, il training
ed il testing del framework SSVEP.
Qui di seguito viene riportata la descrizione della struttura del software sottolineando le
componenti ed i collegamenti principali, vengono poi presentati tutti i protocolli
implementati e l’integrazione eseguita con il software già esistente.
LA STRUTTURA DEL SOFTWARE AENIMA
Il software AEnima è l’applicativo utente che permette l’utilizzo del sistema di Brain
Computer Interface come interfaccia per software, domotica, etc.
AEnima è stato compilato utilizzando il linguaggio C++ in modo da sfruttare le
caratteristiche di ereditarietà e polimorfismo della programmazione ad oggetti, sulle quali è
fortemente basato il software.
- 82 -
Sviluppo del sistema
Nella Fig. 28 è riportata la struttura del programma AEnima. In figura è possibile notare le
componenti principali che formano il sistema ed i collegamenti tra questi e le applicazioni
esterne.
Protocol
Dealer
Domotica
TCP/IP
Screening Protocol
Event
Manager
Training Protocol
Testing Protocol
User Protocol
MyHome Protocol
Active
Protocol
Game Protocol
Graphics Engine
File di
Configurazione
Stimolatori
Fig. 28: Struttura del software AEnima
Il software AEnima è strutturato, come gli altri software, per ottenere il migliore livello di
astrazione possibile in modo da rendere semplice delle eventuali modifiche successive. A
tale scopo il programma è basato sui così detti protocolli: ogni applicazione gestita da
AEnima è implementata in un sottoprogramma costituito da uno di questi protocolli,
ognuna con le proprie funzioni caratteristiche , totalmente indipendente dagli altri.
La struttura siffatta permette inoltre di aggiungere in un qualsiasi momento una nuova
applicazione semplicemente creando un nuovo protocollo senza modificare alcunché di
quelli già presenti.
La selezione del protocollo da utilizzare può avvenire in due differenti modalità:
- 83 -
Sviluppo del sistema
-
al momento dell’avvio attraverso parametri da linea di comando; in questo modo
possono essere selezionate le tre applicazioni per la configurazione della BCI e il
protocollo utente.
-
durante l’utilizzo del software attraverso il menù utente; in questo caso possono
essere selezionati solamente i protocolli user, game, MyHome ed i relativi
sottoprotocolli per la domotica.
La componente principale che si occupa della gestione dei protocolli è la classe Protocol
Dealer. La classe, all’avvio del software, esegue il protocollo selezionato creando l’oggetto
Active Protocol; durante l’utilizzo dell’applicazione Protocol Dealer ha la funzione di
aggiornare e controllare il protocollo che si sta eseguendo per verificare eventuali chiamate
a funzioni.
Il Protocol Dealer comunica altresì con la classe per la gestione degli eventi: attraverso
questa vengono ricevuti i comandi per l’avvio e la terminazione dell’esecuzione del
protocollo, nonché le informazioni necessarie per il passaggio dal protocollo in esecuzione
ad un altro. Tale passaggio è una delle fasi critiche nell’esecuzione del software in quanto
vengono cambiate, mentre il software è attivo, delle parti essenziali per il funzionamento
dell’applicazione stessa. L’implementazione di un gestore per i protocolli all’interno del
software ha lo scopo principale di salvaguardare questa operazione.
La classe Event Manager è l’oggetto che ha la funzione di gestire gli eventi chiamando
delle apposite procedure a seconda della situazione. Nel software, sfruttando le
caratteristiche di Irrlicht, sono stati implementati tre tipi di eventi differenti:
-
KEY INPUT EVENT: evento generato dalla pressione di un tasto sulla tastiera del
computer;
-
USER EVENT: eventi generati manualmente dall’utente;
-
SOCKET EVENT: eventi generati alla ricezione di dati via TCP/IP.
Gli eventi generati da tastiera sono utilizzati per l’interazione manuale con il software. La
generazione dell’evento da tastiera è infatti usato per avviare e interrompere il protocollo
(attraverso i tasti P e O), e per la prova degli stimolatori (A e S).
Gli eventi generati dall’utente sono invece chiamati dalla classe Protocol Dealer e vengono
solamente utilizzati quando deve essere variato il protocollo attivo.
- 84 -
Sviluppo del sistema
Gli eventi generati dalle socket sono le componenti più utilizzate all’interno del software e
vengono generati ogni qual volta AEnima riceve dei dati dal software di acquisizione. I
dati ricevuti ed inviati attraverso la comunicazione TCP/IP sono denominati BCImessage e
hanno una struttura ben definita. Sono composti da quattro campi: kind, value, array
buffer e check.
Kind descrive la tipologia di messaggio: questo può essere di sette differenti tipi a seconda
del quale è associata una funzione apposita.
Value e array buffer possono essere utilizzati per trasmettere dei valori da utilizzare a
seconda della tipologia di messaggio.
Check è invece un valore di controllo per verificare la corretta ricezione del pacchetto.
I messaggi possono essere:
-
GRAPH_TRIG è il dato inviato da AEnima al software di acquisizione per la
sincronizzazione dei segnali acquisiti;
-
CLASSIFICATION
è la tipologia che descrive l’avvenuta classificazione, value
contiene il valore numerico corrispondente alla direzione classificata;
-
FEEDBACK è la tipologia di messaggio utilizzata per la trasmissione del
biofeedback; l’array buffer contiene in questo caso il valore del feedback calcolato;
-
START_ACQ e STOP_ACQ sono i messaggi inviati al software di acquisizione
per avviare e terminare la memorizzazione dei dati;
-
SET_FREQUENCIES è il messaggio utilizzato per settare le frequenze degli
stimolatori; array buffer contiene il valore delle frequenze;
-
CHANGE_PROTOCOL è la tipologia di messaggio utilizzata per il cambio di
protocollo; tale messaggio non è realmente inviato attraverso le socket ma è
utilizzato per la generazione manuale di un evento.
Questi tipi di messaggi, tramite l’event manager ed il protocol dealer, vengono utilizzati
dal protocollo attivo per gestire i collegamenti con le componenti e le applicazioni esterne
del sistema.
Il protocollo attivo si occupa infatti del controllo degli stimolatori, componente essenziale
di un sistema BCI basato SSVEP. La frequenza degli stimolatori viene impostata all’avvio
del protocollo attraverso l’apposito BCImessage. Le frequenze vengono selezionate
- 85 -
Sviluppo del sistema
manualmente dell’operatore dopo l’attività di screening e vengono impostate attraverso il
software di acquisizione che le comunicherà ad AEnima via TCP/IP.
Il protocollo attivo, quando si tratta del protocollo MyHome, comunica inoltre con il
sistema domotico attraverso l’interfaccia seriale BTicino.
Per poter comandare la domotica, il sistema deve essere a conoscenza dell’attuale
configurazione: a tale scopo viene utilizzato il file di configurazione precedentemente
creato attraverso l’applicazione BCI_config. Questo file viene letto all’avvio del protocollo
per generare una lista delle periferiche presenti nel sistema.
Dal protocollo attivo dipende anche la grafica dell’interfaccia utente. Ogni protocollo
utilizza differenti oggetti grafici che vengono gestiti attraverso il motore grafico Irrlicht.
Questi oggetti, quali immagini, mesh 3d, etc. devono essere caricati nel graphic engine in
modo che possano essere utilizzati all’interno dell’applicazione. Per velocizzare
l’esecuzione del software tutti gli oggetti grafici vengono caricati all’inizializzazione del
programma: in questo modo l’avvio risulta parzialmente rallentato ma l’esecuzione ed in
particolare il cambio tra i vari protocolli risulta molto più veloce e si evita di caricare più
volte lo stesso file in memoria.
Attraverso l’utilizzo del semplice engine fisico presente in Irrlicht, il motore grafico offre
inoltre la possibilità di controllare le collisioni tra gli oggetti in modo da gestire il controllo
del cursore nei vari menù delle differenti applicazioni.
CONTROLLO DEL CURSORE
La Brain Computer Interface implementata in laboratorio utilizza come interfaccia finale
un PC dal quale possono essere controllate, in teoria, tutte le applicazioni e periferiche ad
esso collegate. L’utilizzo del PC come interfaccia finale incrementa notevolmente le
potenzialità della BCI; il controllo diretto di un’applicazione presuppone infatti di
utilizzare un comando per ogni funzione dell’applicazione (es. SSVEP con quattro
frequenze di stimolazione può dare quattro differenti comandi): utilizzando un PC con
un’interfaccia grafica, l’utilizzo di solo quattro comandi è sufficiente per comandare
infinite applicazioni.
A seconda del protocollo utilizzato per la BCI (SSVEP, Motor Imagery, P300, etc.) e delle
applicazioni per cui questa deve essere utilizzata, possono essere implementate differenti
- 86 -
Sviluppo del sistema
tipologie di controllo. Nel software AEnima ne sono stati implementati tre differenti
modalità a seconda delle applicazioni per cui tale controllo deve essere utilizzato.
FREE CURSOR MOVEMENT
Questo tipo controllo del cursore è quello che più si avvicina al movimento del mouse del
PC. I quattro comandi implementati dal protocollo SSVEP sono utilizzati per indicare
quattro direzioni di movimento.
Il movimento del cursore è continuo in quanto ogni classificazione viene utilizzata per
muoverlo in una differente direzione. I potenziali SSVEP sono caratterizzati da una certa
latenza quando cessa o cambia la stimolazione a causa sia della caratteristica del segnale
SSVEP stesso, sia della finestratura del classificatore; un cursore implementato in questo
modo, a causa di questo ritardo, è soggetto ad un inerzia nei movimenti che, durante un
primo utilizzo, potrebbe essere causa di errori.
Il movimento del cursore così ottenuto appare tuttavia lento; a tale proposito, per
ottimizzarne l’utilizzo, il cursore accelera e si sposta al doppio della velocità dopo che
sono state ricevute un certo numero di classificazioni nella stessa direzione.
La presenza di un classificatore nullo permette di controllare meglio il movimento: questo
tipo di classificazione non viene contata nelle verifica per l’accelerazione, ma è
indispensabile per far rimanere il cursore in una posizione fissa ed evitare movimenti
indesiderati.
Data la presenza di soli quattro comandi, lo spostamento del cursore è limitato a
movimenti orizzontali e verticali, permettendo comunque di raggiungere qualsiasi
posizione sullo schermo.
Questo tipo di movimento del cursore è implementato nel protocollo game per il
movimento dell’astronave. È il tipico controllo che può essere utilizzato in quei casi in cui
si necessita di un movimento fine per permettere all’utente di raggiungere qualsiasi punto
dello schermo il più velocemente possibile: una sorta di mouse BCI.
CONTROLLED CURSOR MOVEMENT
La seconda tipologia di controllo del movimento è implementato attraverso il controllo su
più classificazioni. Il cursore non viene veramente mosso dall’SSVEP, ma se ne simula il
- 87 -
Sviluppo del sistema
movimento per indicare in che direzione sono avvenute le classificazioni. Dopo un certo
numero di classificazioni identiche, viene direttamente avviata l’applicazione.
Un controllo di questo tipo è molto utile in quei casi in cui non occorre raggiungere un
qualsiasi punto dello schermo ma solamente poche posizioni. Viene implementato in quei
casi ove è necessario che la selezione non commetta errori: nel caso in cui il training non è
stato eseguito in maniera ottimale, possibili falsi positivi potrebbero difatti influire sul
corretto funzionamento del sistema; l’utilizzo di un controllo multiplo sulle classificazioni
evita questo problema provocando però un aumento del tempo necessario per una
selezione.
Il metodo del Controlled Cursor Movement è utilizzato da AEnima nel protocollo User.
MATRIX CONTROLLED CURSOR MOVEMENT
Questo tipo di controllo è a metà tra i due movimenti descritti in precedenza. Il cursore
viene spostato dopo che il software ha ricevuto quattro classificazioni nella stessa
direzione; lo spostamento del cursore è tuttavia limitato solamente ad alcune posizioni in
modo da agevolare la selezione in quei casi dove siano presenti solo pochi comandi in
determinate posizioni. Il cursore può essere mosso solo in 15 posizioni delineate da una
matrice di punti (Fig. 29); in questo modo viene evitato che il soggetto muova
erroneamente il cursore in una posizione errata, fatto del tutto plausibile se si tiene conto
delle condizioni reali di utilizzo di un controllo basato su Brain Computer Interface.
Il matrix controlled cursor movement è implementato in AEnima nel protocollo MyHome
e in tutti i suoi sottoprotocolli.
Grazie a questo tipo di controllo è possibile ridurre i tempi di selezione rispetto agli altri
due tipi di movimento e, allo stesso tempo, aumentarne l’accuratezza eliminando gli
eventuali falsi positivi.
- 88 -
Sviluppo del sistema
Fig. 29: Posizioni del cursore nel Matrix Controlled Cursor Movement
I PROTOCOLLI
Come già illustrato in precedenza, il software AEnima è sviluppato per protocolli. Una tale
struttura del software, oltre a creare una separazione tra le varie applicazioni in modo che
possano essere modificate e aggiornate singolarmente, permette oltremodo di
salvaguardare l’utilizzo della memoria in quanto il software istanzia solamente le variabili
di cui necessita il protocollo attivo, le quali vengono poi automaticamente distrutte una
volta concluso l’utilizzo del protocollo.
Il programma è così costituito grazie alle caratteristiche di ereditarietà e polimorfismo
proprie del linguaggio C++.
Tutti i protocolli sono basati su una classe padre, Protocol Manager. Da questa classe,
come illustrato in Fig. 30, sono state generate le classi figlie dei protocolli che ereditano la
struttura della classe padre. Dalla figura si nota come i protocolli principali dipendano
direttamente dalla classe Protocol Manager, mentre i sottoprotocolli per la domotica
utilizzano un’ulteriore ereditarietà dalla classe MyHome principale.
In questo modo, i metodi e le variabili implementate nella classe padre possono essere
utilizzate anche dalle classi figlie evitando così parti ridondanti di codice.
- 89 -
Sviluppo del sistema
Protocol Manager
Screening Protocol
Training Protocol
MyHome Luci
Testing Protocol
MyHome Ambienti
User Protocol
MyHome Scenari
MyHome Protocol
MyHome Automation
User Protocol
Fig. 30: Descrizione dell'ereditarietà dei protocolli.
Come è possibile notare dal codice riportato qui di seguito, la classe Protocol Manager
utilizza due differenti tipi di funzioni.
Quelle che nel codice sono denominate come basic member sono funzioni implementate
direttamente nella classe padre che verranno automaticamente ereditate dalle classi figlie;
la classe figlia può utilizzare così queste funzioni senza doverle ridichiarare.
Le funzioni denominate custom member sono invece funzioni virtuali, come è possibile
constatare dalla presenza del prefisso virtual posta davanti alla dichiarazione.
Le funzioni virtuali sono una caratteristica preponderante del polimorfismo, permettono
infatti a una classe derivata di ridefinire le funzioni che eredita dalla classe padre. In questo
modo è possibile utilizzare per esempio la stessa funzione StartProtocol per avviare tutti i
protocolli, oppure ridefinire per ogni singolo protocollo una funzione apposita.
class ProtocolMngr
{
public:
// BASIC MEMBERS
ProtocolMngr(GraphicEngine *Engine, SoundSystem *Sound, SocketComm*
pSocket, LedDriver *myLed, DealProtocol *pParent);
~ProtocolMngr(void);
- 90 -
Sviluppo del sistema
int GetXState(void);
void
void
void
void
void
void
void
void
void
void
void
EvalProt(void);
ResetTime(void);
SetNextCall(int Millis);
SendBCIMessage(int Kind, int Value=0, short int *pBuffer=0,int
BuffSize=0);
setNextOpt (int kind, int delay, int p1=0, char *ptext=NULL);
HideCenter(void);
RotAnimator(char *NodeName, scene::ISceneNodeAnimator* anim);
creaTextPerif(void);
SetNamePerif(gui::IGUIStaticText* perif, char *nome1);
ViewFeedback(void);
HideFeedback(void);
// CUSTOM MEMBERS
virtual bool StartProt(bool SendSocketMsg = true);
virtual bool StopProt(bool SendSocketMsg = true);
virtual void myProtocol(int myTime){};
virtual void OnProtocolEvent();
virtual void OnSocketEvent(BCIMessage *SocketMsg){};
};
I protocolli implementati sono di due tipi: protocolli di configurazione e protocolli di
applicazione.
I protocolli di configurazione comprendono le tre applicazioni già brevemente descritte nel
capitolo precedente:
− Screening;
− Training;
− Testing.
I protocolli applicativi sono:
− User;
− Game;
− MyHome.
Come illustrato in Fig. 30, per il protocollo MyHome sono stati inoltre implementati dei
sottoprotocolli in modo da suddividere il sistema domotico in più sottomenù, come nel
caso del software MyBCI descritto nei sottoparagrafi precedenti, ognuno contenente una
diversa tipologia di periferia.
Sono inoltre in progetto due ulteriori protocolli per la realizzaizone di un player
multimediale comandato tramite BCI ed un software per una tastiera virtuale per
programmi di word editing e text to speech.
- 91 -
Sviluppo del sistema
Qui di seguito vengono riportate le descrizioni dei sei protocolli principali
precedentemente menzionati, e dei sottoprotocolli per la gestione della domotica in cui è
suddiviso il protocollo MyHome.
IL PROTOCOLLO DI SCREENING
Il protocollo di screening è una parte essenziale per il funzionamento dell’SSVEP, in
quanto ha la funzione di esaminare a quali frequenze di stimolazione l’utente risponde
maggiormente ed è più soggetto a trascinamento (una breve spiegazione è già stata data nel
capitolo precedente).
Il protocollo mostra al soggetto una freccia (Fig. 31) che indica l’unico stimolatore acceso.
Il task del soggetto è quello di concentrarsi sullo stimolatore quando la freccia è
visualizzata e rilassare la vista guardando il centro dello schermo quando la freccia
scompare.
La freccia rimane attiva otto secondi a cui segue una pausa di altrettanti secondi. I segnali
vengono acquisiti e salvati dal software di acquisizione per poi essere elaborati
manualmente per la selezione delle quattro frequenze migliori.
Fig. 31: Il protocollo di Screening
IL PROTOCOLLO DI TRAINING
Dai dati acquisiti vengono selezionate le quattro frequenze principali su cui andrà
addestrato il classificatore. Il software AEnima, con il protocollo training, ha il compito di
acquisire la sequenza di dati necessaria all’addestramento del classificatore.
- 92 -
Sviluppo del sistema
Come per il caso precedente, il software si presenta con uno sfondo studiato per non
infastidire il soggetto ma aiutarlo nella concentrazione.
All’avvio del protocollo il programma invia il messaggio di start acquisition al software di
acquisizione che a sua volta invia le frequenze selezionate precedentemente dall’operatore.
Gli stimolatori sono in questo fase tutti accesi; ognuno con la propria frequenza. A
schermo appaiono in successione delle frecce che indicano al soggetto su quale specifico
stimolatore deve concentrare la propria attenzione.
La sequenza con cui al soggetto vengono presentate le indicazioni è fissata a priori:
l’utente deve concentrare la propria attenzione sullo stimolatore per 20 secondi a cui
seguono una pausa di altrettanti secondi in cui l’utente rilassa la vista guardando il centro;
il tutto viene ripetuto per le quattro differenti direzioni.
Durante la fase di training è possibile, a scelta dell’operatore, attivare le barre di feedback
per aiutare il soggetto a identificare la modalità migliore con cui guardare lo stimolatore.
La scelta della visualizzazione dei feedback è effettuata al momento della selezione delle
frequenze mediante il software di acquisizione.
Il protocollo di Training può essere eseguito più volte per migliorare la capacità di
discriminazione del classificatore. Risulta infatti molto utile eseguire una nuova fase di
training dopo che il soggetto abbia usato il sistema per un certo periodo. L’utente ha in
questo tempo acquisito una certa familiarità nell’utilizzo degli stimolatori, ed una nuova
fase di training può migliorare notevolmente la bontà del training set in quanto i segnali e
le feature acquisite risulteranno migliori rispetto alla prima acquisizione.
IL PROTOCOLLO DI TESTING
Dopo aver addestrato il classificatore con i segnali registrati attraverso il protocollo di
Training, per verificare il corretto funzionamento del sistema e per misurare la
performance del sistema BCI è stato implementato il protocollo di Testing.
Il protocollo consiste in un gioco guidato dal PC: al soggetto viene chiesto di concentrarsi
sullo stimolatore indicato dalla freccia con l’obiettivo di innalzare il più possibile la barra
del feedback. Dopo qualche secondo in cui il feedback è mantenuto alto (tempo necessario
alla classificazione mediante controlled cursor movement) la freccia cambia direzione
indicando un differente stimolatore. Il protocollo si conclude quando il soggetto ha
selezionato ogni direzione per due volte. In questo modo vengono testate sia le abilità
- 93 -
Sviluppo del sistema
dell’utente, sia la configurazione del sistema (le frequenze selezionate durante il training e
la bontà del classificatore).
I tre protocolli appena descritti corrispondono alla parte di preparazione del soggetto per
l’utilizzo del sistema. All’interno del progetto di tesi questi protocolli sono solo stati in
parte modificati per adattarsi alle nuove caratteristiche del software.
I protocolli qui di seguito descritti corrispondono invece alla parte applicativa del sistema:
esempi concreti di un possibile utilizzo della Brain Computer Interface nel campo della
disabilità.
IL PROTOCOLLO USER
Il protocollo User è la parte principale dal punto di vista del software applicativo per la
BCI; è infatti attraverso questo protocollo che è possibile eseguire tutte le altre applicazioni
implementate.
La schermata iniziale (Fig. 32) è stata progettata per l’avvio di quattro applicazioni; sono
infatti presenti quattro icone che corrispondono alle applicazioni implementate per
l’utilizzo della Brain Computer Interface:
-
Domotica;
-
Gioco;
-
Media Player (non ancora implementato);
-
Tastiera / Text to speech (non ancora implementato).
Nulla vieta di progettare un menù iniziale a scorrimento con il quale selezionare anche più
di quattro applicazioni.
Per selezionare il programma da attivare l’utente deve focalizzare la propria attenzione
sullo stimolatore nella direzione corrispondente all’icona dell’applicazione.
Le icone utilizzate sono molto grandi ed intuitive in moda da facilitare l’utilizzo
dell’interfaccia; inoltre la luminosità dello schermo è impostata in modo da non disturbare
la vista dell’utente ed influire quindi sulla generazione dell’SSVEP.
All’avvio del protocollo viene controllata la presenza dell’interfaccia seriale BTicino; se il
dispositivo non risulta collegato l’icona del protocollo per la domotica viene disabilitato; in
questo caso, per ricollegare il dispositivo occorre riavviare l'intero software.
- 94 -
Sviluppo del sistema
Per dare un aspetto più reale, al prototipo sono stati aggiunti vari oggetti grafici, come lo
sfondo e le animazioni, che ne rendono l’aspetto e l’utilizzo più gradevoli.
Fig. 32: Il protocollo User
IL PROTOCOLLO GAME – ASTROBRAINN FIGHT
Per rendere l’esperienza con un sistema di Brain Computer Interface il più possibile
affascinante e coinvolgente, senza però tralasciare l’aspetto ingegneristico della prova,
all’interno del software AEnima è stato sviluppa un’applicazione per l’entertainment.
Attraverso il protocollo game viene implementato un semplice videogame atto a
dimostrare le potenzialità della BCI; tramite questo protocollo è possibile constatare la
possibilità di controllare un qualsiasi cursore in un ambiente 2D/3D con una risposta
abbastanza veloce e precisa. Il tempo misurato ed il numero di comandi effettuati
permettono inoltre di calcolare le reali performance di una tale sistema.
Il gioco Astrobrain Fight consiste in una classica battaglia stellare, all’utente vengono
proposte a schermo (Fig. 33) due navi spaziali: quella grigia è il target immobile mentre
l’astronave rossa viene comandata attraverso i segnali celebrali.
Scopo del gioco è quello di spostare la propria navicella, con l’utilizzo della BCI, contro il
la nave target per quindici volte nel minore tempo possibile.
La navicella viene spostata utilizzando il free cursor movement precedentemente illustrato.
Il protocollo è strutturato come un vero e proprio videogame, con animazioni, effetti
sonori, punteggio e una hall of fame con i migliori risultati.
- 95 -
Sviluppo del sistema
Per rendere possibile un confronto tra le diverse prove eseguite, la posizione dei target è
selezionata in un modo pseudo-casuale: le navi target sono infatti posizionate in coordinate
prefissate.
Fig. 33: Il protocollo Game
IL PROTOCOLLO MYHOME
Il protocollo MyHome è l’applicazione per l’interfacciamento della Brain Computer
Interface con il sistema domotico di BTicino. Attraverso le librerie illustrate nei paragrafi
precedenti, AEnima è in grado di inviare al sistema domotico i comandi necessari per il
controllo delle periferiche domotiche.
Il protocollo si presenta all’utente come in Fig. 34, vengono visualizzate sei icone che
corrispondono ai comandi per accedere ai sottoprotocolli per le luci, gli ambienti/gruppi,
gli scenari, l’automazione, per lo spegnimento di tutte le periferiche e per la chiusura del
protocollo. Una tale suddivisione permette una navigazione più veloce e semplice
dell’intero sistema domotico.
I quattro sottoprotocolli divisi per tipologia di periferica sono strutturati in una maniera del
tutto simile al protocollo MyHome. Per permettere l’utilizzo di più periferiche, i
sottoprotocolli sono strutturati a pagine. Per ogni pagina sono visualizzate fino a quattro
periferiche e due pulsanti per la navigazioni fra le pagine.
- 96 -
Sviluppo del sistema
L’utente, per comandare una periferica deve spostare il cursore sull’icona della tipologia
desiderata e successivamente sul dispositivo identificato dal nome assegnato durante la
configurazione.
Fig.34: Protocollo MyHome
Ogni vola che viene dato un comando ad una periferica, il software ritorna
automaticamente dal sottoprotocollo selezionato al protocollo MyHome. Tale sistema è
stato implementato in quanto all’interno dei singoli sottoprotocolli non è stato prevista
alcuna opzione di uscita; questa implementazione è stata scelta per rendere il software il
più snello e semplice possibile.
4.3
IL CIRCUITO BLUETOOTH
Il sistema domotico MyHome di BTicino comunica con il computer attraverso
un’interfaccia seriale o USB. Questo comporta che il sistema BCI debba essere in una
posizione tale da permettere sempre il collegamento con il bus SCS attraverso il cavo
dell’interfaccia. Occorre quindi che il sistema domotico sia più accessibile in modo da
rendere fruibile un collegamento da “qualsiasi” posizione in modo che l’utente possa avere
una maggiore libertà, senza però dover intervenire sul sistema elettrico con difficili e
costosi interventi di cablatura.
- 97 -
Sviluppo del sistema
La connessione da utilizzare non necessita di velocità di trasmissione molto elevate: i dati
da trasmettere sono infatti solamente delle semplici stringhe di caratteri inviate
saltuariamente quando viene selezionato un comando. Inoltre la portata del sistema è
limitata all’abitazione per cui una distanza tra i 10 ed i 100 metri è sufficiente allo scopo.
Si è preferito quindi utilizzare la tecnologia Bluetooth®, tecnologia wireless a basso costo
che lavora alle frequenze libere attorno ai 2,45 GHz.
Il protocollo garantisce una velocità di trasmissione fino a 723,1 Kbits/s per lo standard
Bluetooth® 1.2 e fino a 2.1 Mbits/s per il 2.0 Bluetooth®.
Classe
Potenza
Distanza
Classe 1
100mW
~100m
Classe 2
2,5mW
~10m
Classe 3
1mW
~1m
Tabella 2: Classi dei dispositivi con relativa potenza e portata.
Nella Tabella 2 vengono riportate le caratteristiche delle tre classi dei dispositivi
Bluetooth® divise in base alla potenza di trasmissione; per il circuito è stato utilizzato un
dispositivo di classe 2.
Un dispositivo Bluetooth® può collegarsi sino a sette device: la connessione che viene
creata è bidirezionale e presuppone che uno dei dispositivi si comporti da master, colui che
imposta la connessione,e l’altro da slave, fornitore del servizio. Il dispositivo slave, dal
momento in cui viene attivata una connessione, rimane occupato e non può fornire i propri
servizi ad altri dispositivi della Piconet (la rete formata dai dispositivi Bluetooth®).
Un dispositivo Bluetooth® è inoltre caratterizzato dal profilo, attraverso il quale vengono
identificate una serie di possibili applicazioni/servizi per cui la connessione può essere
utilizzata (GAP – Generic Access Profile, SPP – Serial Port Profile, LAP – Lan Access
Profile, etc.). Per il progetto, la comunicazione Bluetooth® è effettuata mediante l’utilizzo
del PAN1540 di Panasonic, un modulo bluetooth di classe 2 (vedi Tabella 2) che presenta
uno stack bluetooth embedded certificato con profilo SPP. Utilizzando tale profilo si viene
a creare un ulteriore livello di astrazione: il livello fisico di comunicazione nel quale il
bluetooth ha il compito di simulare un normale cavo seriale; ed un secondo livello
- 98 -
Sviluppo del sistema
applicativo che utilizza lo strato sottostante senza dover apportare modifiche al software
nel caso il livello fisico subisca cambiamenti (il software utilizzato è lo stesso sia che
venga usato un cavo seriale/USB, sia con Bluetooth®).
In Fig. 35 è riportato il circuito dell’interfaccia Bluetooth® implementato durante l’attività
di tesi per creare una connessione wireless per il dispositivo di interfaccia L4686sdk di
BTicino.
Lo schematico ed il circuito stampato sono stati entrambi realizzati con il software Eagle
Layout Editor di Cadsoft, un editor grafico per la progettazione di schemi elettrici e circuiti
stampati. Nonostante la ricca libreria presente all’interno del software, durante l’attività di
tesi, per alcuni componenti è stato necessario creare delle librerie apposite a partire dai
footprint riportati sui rispettivi datasheet.
Come si può notare dalla figura riportata nella pagina precedente, il circuito è suddiviso in
tre blocchi principali:
-
il blocco di alimentazione
-
l’interfaccia seriale
-
il bluetooth.
Il blocco di alimentazione è costituito dal componente LP2985, un regolatore di
tensione smd a 3,3V. La tensione di 3,3V è stata scelta per due motivi principali:
-
lo scopo primario è quello di costruire un interfaccia mobile che quindi consumi il
meno possibile e necessiti di basse tensioni;
-
il modulo PAN bluetooth necessita di una tensione di alimentazione dai 3 ai 3,6V.
Il componente può ricevere in ingresso una tensione tra i 2,5V e i 16V e fornisce in uscita
una tensione stabilizzata di 3,3V.
La tensione in ingresso deve essere una tensione continua, per tanto per alimentare l’intero
circuito può essere utilizzata una batteria o un piccolo alimentatore. I condensatori C1, C2,
C3 e C4 hanno la funzione di filtro per eliminare eventuali oscillazioni sull’alimentazione.
Il pin di ByPass con il condensatore C6 sono invece utilizzati per rendere l’applicazione
low noise limitando ulteriormente la banda del rumore in uscita.
- 99 -
Sviluppo del sistema
Fig. 35: Schema elettrico dell'interfaccia seriale Bluetooth®
- 100 -
Sviluppo del sistema
Il pin di Enable ha la funzione di spegnere e accendere l’intero circuito abilitando e
disabilitando l’uscita del regolatore attraverso l’interruttore S1. Il condensatore da 100nF
con in parallelo alla resistenza da 10KΩ costituiscono la rete antirimbalzo per eliminare gli
sbalzi di tensione dovuti alla meccanica dell’interruttore che potrebbero provocare dei reset
non controllati.
Il blocco di interfaccia seriale è invece costituito dal componente MAX3243 che
consiste in un driver/receiver multicanale per RS232 (traslatore di livelli) con tensione di
lavoro dai 3 ai 5V, ideale per il circuito in cui la tensione di alimentazione è fissata a 3,3V
dalla presenza del modulo PAN.
Il MAX3243 ha il compito di trasformare i segnali provenienti dal modulo bluetooth in un
segnale compatibile con lo standard RS232, e viceversa, trasforma cioè il segnale a 3,3V in
uno a 12V. I componenti CC1÷CC4 e R2,R3,R5,R6 sono rispettivamente dei jumper e dei
resistori necessari per selezionare la configurazione dei pin DTR, DSR, CTS e RTS della
seriale. A seconda di quali jumper vengono saldati (Tabella 3) è infatti possibile gestire i
quattro segnali tramite il modulo bluetooth, oppure fissare il loro valore ad una determinata
tensione. L’interfaccia seriale L4686SDK per una comunicazione bidirezionale richiede
DTR = +12V e RTS = -12V, si è preferito quindi saldare, come mostrato nella tabella qui
sotto riportata, le resistenza R3 e R5 in modo da ottenere le tensioni desiderate senza una
particolare configurazione del modulo bluetooth (si ricordi che il MAX3243 è un traslatore
di livelli, lavora quindi invertendo i livelli di tensione: 0V +12V, +3,3V -12V).
Jumper
Bluetooth
®
DTR = -12V
RTS = -12V
R2
R3
X
X
X
RTS = -12V
RTS = +12V
R6
X
DTR = +12V
DTR = -12V
R5
X
X
X
DTR = +12V
X
RTS = +12V
Tabella 3: Dsiposizione dei configuratori per interfaccia bluettoh
- 101 -
X
Sviluppo del sistema
I quattro condensatori esterni C7, C8, C9 e C10 sono indispensabili al MAX3243 per la
traslazione dei livelli in quanto fanno parte del circuito a pompa di carica interno.
Il condensatore C12 è detto capacità di ByPass e ha il compito di proteggere il componente
da eventuali disturbi in alta frequenza presenti sulla linea di alimentazione o generati dal
componente stesso.
Il blocco di trasmissione bluetooth è composto dal modulo PAN1540 a cui sono
stati aggiunti due led per il controllo dello stato di funzionamento della connessione
bluetooth. Il modulo è stato configurato via seriale e sono state impostate le caratteristiche
di comunicazione richieste dalle periferiche dell’interfaccia seriale BTicino, cioè:
-
baudrate 115200 bit/s
-
8 bit di dati
-
1 bit di stop
-
nessun bit di parità.
Sono stati inoltre assegnati il nome del device bluetooth (“MYHOME”) ed il nome del
servizio SPP fornito (“Homeautomation”).
La progettazione del circuito stampato è stata eseguita manualmente e non con tool di
autorouting in quanto si ritiene che la configurazione del PCB è una componente
essenziale per la buona riuscita di un progetto.
Il design della scheda elettronica risulta infatti di grande importanza in quanto contribuisce
in modo particolare alla reiezione del rumore e dei disturbi, che possono essere prodotti sia
da sorgenti esterne, sia internamente da rumori legati a logiche digitali ad alta frequenza,
trasmissioni radio, etc.
La board realizzata consiste in una scheda double layer in cui il secondo strato è destinato
principalmente al piano di massa e ad eventuali piste impossibili da tracciare su di un unica
faccia. Il piano di massa è il metodo più semplice per la riduzione dei disturbi; consiste in
un’area, il più possibile continua, disposta solitamente nel secondo strato o negli strati
intermedi nel caso di circuiti con più di due layer. Il piano di massa riduce i disturbi in
quanto aumenta la capacità distribuita su ogni filo riducendo il rumore irradiato; agisce
parzialmente da schermo contro i rumori esterni; riduce l’impedenza dei contatti di massa
diminuendo il rumore condotto ed aumenta inoltre la resistenza meccanica del circuito.
- 102 -
Sviluppo del sistema
Nel PCB, per una ulteriore riduzione del rumore, i blocchi circuitali precedentemente
descritti sono posizionati sul top layer separati in regioni differenti.
Nella progettazione del circuito stampato si è cercato d’altra parte di limitare il numero di
discontinuità nelle linee come: interruzioni nel piano di riferimento; fori passanti (vias),
variazioni dello sezione e dello spessore delle piste, che causerebbero una variazione
dell’impedenza caratteristica causando ulteriore rumore.
Per ottenere un dispositivo con dimensione contenute, sono stati utilizzati componenti
SMD. Qui di seguito vengono riportate le due facce del PCB doppio strato (Fig. 36)
disegnato con Eagle e la foto del dispositivo ultimato (Fig. 37).
Fig. 36: PCB dell'interfaccia bluetooth
Fig. 37: Foto del circuito ultimato
- 103 -
Risultati
5
Risultati
La scienza è sempre imperfetta.
Ogni volta che risolve un problema,
ne crea almeno dieci nuovi
George Bernard Shaw.
In questo capitolo vengono discussi i risultati ottenuti dalle acquisizione eseguite durante
il progetto di tesi; nella prima parte vengono riportate le specifiche con cui sono state svolte le
acquisizioni ed i relative risultati; di seguito vengono poi analizzati gli esiti e vengono
riportate alcune considerazioni sulle caratteristiche più rilevanti.
Per testare l’efficienza del sistema implementato, durante il progetto di tesi sono state
effettuate 10 acquisizioni su soggetti sani di età compresa tra i 21 e i 55 anni. Nella Tabella
4 sono riportati i dati per ogni acquisizione.
Come già illustrato nei capitoli precedenti, i segnali sono stati acquisiti tramite otto
elettrodi posti in regione occipitale, uno elettrodo di massa e due riferimenti auricolari sui
mastoidi.
Tutti i soggetti sono stati sottoposti ai protocolli di screening, training e testing; i protocolli
user, myhome e game sono stati utilizzati soli in quei casi in cui è stato riscontrato
trascinamento.
I 7 soggetti per cui è stato riscontrato trascinamento sono stati sottoposti a tutti i protocolli
registrando per ognuno il tempo di testing e di completamento del protocollo game.
Questi tempi verranno utilizzati qui di seguito per l’analisi delle performance della BCI.
Durante le prove eseguite si è riscontrato che la Brain Computer Interface con protocollo
SSVEP, in quanto basata su stimolazione luminosa, necessita di una luminosità controllata
in modo che i led siano ben visibili. Nonostante questo, nei casi in cui i soggetti hanno
utilizzato il portocollo Myhome, l’accensione di luci non influisce sulle performance del
sistema.
- 104 -
Risultati
Soggetto Trascina
R
U
D
(sec)
Tempo Test
(sec)
Tempo Gioco
Frequenze
L
MyHome
Usato con luci
Difficoltà causa
Sonnolenza
Data
Solo Screening
265
X
73
X
8
X
5,9
X
6,9
No
X
9,14
EJ
No
X
Sì
17/12/2007
MV
Sì
PP
17/01/2008
SM
- 105 -
28/11/2007
17/01/2008
Usato con luci
Usato con luci
205
210
Usato con luci
80
65
461
Usato con luci
14,2
16
170
206
Usato con luci
12,2
11,13
15,1
59
295
11,1
9,8
12,8
11,1
64
8
9,14
11,1
9,8
12,2
Sì
Sì
9,8
9,1
11,1
AU
EP
Sì
8
9,8
24/01/2008
04/02/2008
RC
Sì
8
No
06/02/2008
LM
Sì
MR
07/02/2008
AT
24/01/2008
5/02/2008
Tabella 4: Acquisizioni su soggetti sani
Risultati
Il soggetto RC non è stato preso in considerazione nel calcolo delle performance in quanto
durante la prova le istruzioni non sono state comprese ed i tempi risultano falsati.
Alcuni soggetti hanno inoltre riportato un miglioramento nell’utilizzo del sistema quando
viene mostrato il biofeedback anche nella fase di training.
Per due soggetti è stata riscontrata una forte dipendenza dell’ampiezza dell’SSVEP dal
sonno. Per il soggetto PP sono state ripetute due prove a distanza di quindici giorni: nel
caso di soggetto sonnolento si è notata una netta diminuzione della potenza della SSVEP e
quindi dei feedback.
In entrambi i soggetti sonnolenti è stato riscontrato un innalzamento della potenza nella
banda di frequenza corrispondente al ritmo alfa; come visibile dal confronto degli spettri
sulla sinistra delle Fig. 38 sottostanti in cui si noto un innalzamento della potenza attorno
ai 10 Hz.
Fig. 38: Analisi spettrale e tempo frequenza di un segnale EEG estratto da elettrodo in Oz di un
soggetto in condizione normale (a sinistra) ed in condizione di forte sonnolenza (a destra).
Durante l’analisi si è inoltre riscontrato che dopo un primo periodo di utilizzo del feedback
e dei controlli, le performance dell’intero sistema migliorano notevolmente.
L’analisi delle performance della BCI può essere effettuato utilizzando la definizione di
bit-rate (o information transfer rate) per la Brain Computer Interface. Il transfer rate dei
sistemi BCI dipende principalmente da tre fattori: il numero di selezioni, l’accuratezza
della selezione e la velocità con cui queste vengono eseguite. La formula più utilizzata per
- 106 -
Risultati
il calcolo del bit-rate è quella ideata da Wolpaw er al nel 1998: tale formula è adatta solo in
quei casi in cui il numero di selezioni non sia elevato[19].
Bit-rate = bits per symbol · symbols per minuto
Bits per symbol = log2 N + P × log2 P + (1 − P) log2
1− P
N −1
(1)
Con N numero di simboli possibili, nel nostro caso cinque: le quattro direzioni ed il centro;
e P probabilità che il simbolo venga selezionato.
Il bit-rate viene calcolato utilizzando i dati acquisiti durante la fase di testing; in tal caso P
è uguale a uno in quanto per selezionare un simbolo occorrono più di quattro
classificazioni successive dello stesso tipo.
Il numero di bits per simbolo risulta quindi:
bits x symbol = log 2 5 = 2 ,3
Essendo il test composto da 8 simboli (2 per ognuna delle quattro direzioni) intervallati da
pause di altrettanti secondi, il numero di bit per test è pari a:
bit per test = 8 × bit per symbols = 18,6
Dalla (1) si ottiene:
Bit-rate =
bit per test
× 60 = 27 bits/minuto
[tempo test - pause]
Il risultato è in media con i dati riscontrati in letteratura[6][9][19] anche se la performance
del sistema BCI potrebbe essere ulteriormente incrementata diminuendo la lunghezza della
finestra del classificatore da tre a due secondi, rendendo più veloce la classificazione e
provocando così una diminuzione del tempo totale di test, ed ottenendo un bit-rate paria a
46 bits/minuto paragonabile al performance ottenuta da Cheng et al[9] .
La velocità di trasmissione risulta comunque notevolmente maggiore quando si usa il
sistema di controllo free cursor movement: le classificazioni sono infatti molto più veloci
in quanto il segnale SSVEP è in parte già presente dopo la prima classificazione ed al
sistema non occorre più l’intera durata della finestre del classificatore per riconoscere il
comando. In questo caso in media vengono dati 400 comandi in 290 secondi.
- 107 -
Risultati
Per un soggetto è stato inoltre testato il possibile utilizzo della BCI con SSVEP tramite
visione periferica. Durante il test, nel segnale non è stata riscontrata la presenza di SSVEP
là dove il soggetto concentra la propria attenzione su uno stimolatore non guardandolo
direttamente (visone foveale) ma guardando il centro dello schermo e concentrandosi su
uno stimolo solo con la visione periferica. Ne consegue che l’utilizzo di un tale sistema è
adatto solo in quei casi ove il soggetto sia ancora in grado di controllare il movimento degli
occhi [9].
- 108 -
Conclusioni
6
Conclusioni
"Se un uomo parte da certezze,
terminerà con dubbi;
ma se si contenta di cominciare con dubbi,
terminerà con certezze."
Francis Bacon
In questo capitolo vengono riportate le considerazioni e gli aspetti principali che sono
scaturiti dall’analisi dei risultati. Dapprima si passano in rassegna gli obiettivi della tesi per
poi passare ad un breve cenno dei possibili sviluppi futuri.
I risultati ottenuti dalle acquisizioni eseguite durante l’attività di laboratorio sono in
accordo con gli obiettivi fissati all’inizio del progetto, forse anche più soddisfacenti di
quello che si sperava.
Un sistema di Brain Computer Interface basato su SSVEP, nonostante il transfer rate
contenuto, è stato dimostrato essere perfettamente utilizzabile per il comando e la gestione
di un sistema domotico ed il controllo di un cursore a schermo.
L’applicazione creata durante la tesi è solo una dei molteplici impieghi in cui la BCI può
essere implementata come ausilio per disabili.
La struttura progettata per i protocolli applicativi, implementata nel software AEnima, ha
mostrato nel corso delle prove alta efficienza e robustezza, che la rendono la soluzione
ideale per molte applicazioni future, a partire dal mouse BCI per PC, alla tastiera a
schermo comandata “mentalmente”; da un sistema di text to speech ad un telecomando
BCI per la TV, etc.
Dall’esperienza acquisita durante questa attività si è constatato che il tansfer rate ottenuto
dal sistema in laboratorio è più che accettabile per quanto riguarda gli applicativi di
comando come il suddetto telecomando BCI o il media player (una delle prossime
applicazioni in AEnima). Per esempio, per il telecomando BCI basterebbe aggiungere
- 109 -
Conclusioni
quattro stimolatori ai lati del televisore di cui uno solo sempre funzionante; il soggetto
potrebbe in questo modo accedere al telecomando a video concentrando la propria
attenzione sull’unico stimolatore acceso, attivare gli altri stimolatori e fornire un comando
in pochi secondi.
L’utilizzo di un sistema con un bit rate ridotto come dispositivo di input per tastiere virtuali
risulta tuttavia un’applicazione meno efficiente: un applicativo BCI con un transfer rate
attorno a 30 bits/minuto come input per una tastiera con 40 simboli comporterebbe infatti
una velocità di scrittura di 2/3 parole al minuto, velocità molto limitata se confrontata con
sistemi di gaze detection commerciali che possono arrivare fino a 20 parole al minuto
(ERIKA eye detection)[e].
Un applicazione del genere non è comunque da escludere se si utilizza una strutturazione
della tastiera ad hoc o un metodo di immissione intelligente come il T9 o iTap.
Dai risultati esposti nel capitolo precedente si evince il fatto che un sistema BCI basato su
SSVEP non può comunque essere utilizzato da tutti in quanto la variabilità intra-soggettiva
fa si che alcuni soggetti non siano propensi alla generazione dei potenziali SSVEP se
sottoposti a stimolazione visiva. A tal proposito l’utilizzo di differenti tipologie di BCI,
come la motor imagery o la P300, che utilizzano differenti modalità di stimolazione e
rilevamento, aumenterebbero ulteriormente la portata della Brain Computer Interface.
L’utilizzo della motor imagery, in particolare, permetterebbe di eliminare gli stimolatori
rendendo più flessibile l’intero sistema. Inoltre, un applicazione di questa tipologia si
avvicina maggiormente alla definizione di Brain Computer Interface nel vero senso del
termine, rendendo facilmente adattabile la BCI anche per essere utilizzata come interfaccia
per neuroprotesi per il controllo motorio.
Sotto questi punti di vista i possibili sviluppi futuri sono moltissimi, sia per quanto
riguarda le applicazioni, sia per lo sviluppo ulteriore del sistema BCI stesso.
Ad oggi, nonostante il transfer rate limitato, le applicazioni implementabili sono
molteplici, quasi infinite; probabilmente, in un futuro lontano, sarà realmente possibile
pilotare un aereo con “la solo forza del pensiero”.
- 110 -
Appendice I
Appendice I
Neppure la fantasia
saprebbe inventare
tanta varietà di contraddizioni
quante già ce ne sono in natura
nel cuore di ogni uomo.
François de La Rochefoucauld
In questo appendice vengono riportate alcune indicazioni estratte dalla guida a MyHome
Automazione in cui viene descritto brevemente come programmare in maniera corretta i
comandi per mezzo dei configuratori.
CONFIGURAZIONE GENERALITÀ
ATTUATORI: INDIRIZZI E TIPI DI COMANDO
Per comprendere la logica di indirizzamento è utile definire alcuni termini che ricorreranno
frequentemente nel presente testo.
Ambiente (A)
Insieme dei dispositivi appartenenti ad una zona logica (in una abitazione, per esempio, la
sala, la camera ecc.).
Punto Luce (PL)
Identificativo numerico del singolo attuatore all’interno dell’Ambiente.
Gruppo (G)
Insieme dei dispositivi appartenenti anche ad ambienti diversi, ma che possono essere
comandati contemporaneamente (per esempio le tapparelle del lato Nord dell’abitazione,
l’illuminazione della zona giorno, ecc.).
Indirizzo degli attuatori
L’indirizzo di ogni attuatore è definito univocamente assegnando i configuratori numerici
1÷9 nelle posizioni A (Ambiente) e PL (Punto Luce all’interno dell’Ambiente). Per ogni
ambiente è possibile definire un massimo di 9 indirizzi; in un sistema sarà possibile
definire un massimo di 9 ambienti. La definizione del gruppo di appartenenza si effettua
inserendo un terzo configuratore numerico nella sede identificata con G (Gruppo).
- 111 -
Appendice I
Alcuni attuatori dispongono di più posizioni G (G1, G2 e G3) potendo appartenere
contemporaneamente a più gruppi differenti.
Esempio: L’attuatore configurato con A = 1, PL = 3 e G = 4 è il dispositivo N°3
dell’ambiente 1 appartenente al gruppo 4.
Fig. 39: Suddivisione gerarchica del sistema MyHome
COMANDI: INDIRIZZI E TIPI DI COMANDO
Anche i dispositivi di comando dispongono delle posizioni A e PL per la definizione
dell’indirizzo dei dispositivi destinatari del comando (attuatori). Per dette posizioni sono
previsti configuratori numerici e con grafismo (vedi tabella 5) che abilitano il dispositivo
ad inviare il rispettivo comando con le diverse modalità elencate nella sottostante tabella.
Tabella 5: Configuratori da adottare per differenti funzioni
- 112 -
Appendice I
Esempi:
Comando punto-punto
Se il comando è configurato con A = 2 e PL = 3, questo dispositivo invia il proprio
comando all’attuatore identificato con A = 2 e PL = 3.
Comando di gruppo
Se un comando è configurato con A = GR e PL = 1 questo dispositivo invia il proprio
comando a tutti gli attuatori con G = 1 (appartenenti cioè al gruppo 1).
Comando di ambiente
Se un comando è configurato con A = AMB e PL = 1 questo dispositivo invia il proprio
comando a tutti gli attuatori con AMB = 1 (appartenenti cioè all’ambiente 1).
Comando generale
Se un comando è configurato con A = GEN, questo dispositivo invia il proprio comando a
tutti gli attuatori del sistema.
PRINCIPALI MODALITÀ OPERATIVE DEI COMANDI
I dispositivi presenti nel sistema automazione possono svolgere funzioni diverse, quali
regolazione dell’ intensità luminosa, accensione/spegnimento di lampade oppure
apertura/chiusura di tapparelle. La definizione della funzione svolta, cioè quale è il
compito del dispositivo, si effettua inserendo dei configuratori nelle sedi contrassegnate
con M dei dispositivi di comando (vedi Tabella 6). Nella tabella seguente si elencano le
diverse modalità operative in funzione del configuratore.
Esistono poi ulteriori modalità di comando più evolute che vengono però qui tralasciate in
quanto non vengono usate nel prototipo sperimentale in laboratorio.
- 113 -
Appendice I
Tabella 6: Configurazione della modalità di funzionamento
- 114 -
Appendice II
Appendice II
Colui che chiede è uno sciocco
per cinque minuti,
colui che non chiede
lo rimane per tutta la vita.
Proverbio Cinese
In questo secondo appendice viene presentata la relazione del progetto svolto nell’ambito
dell’esame di Soft Computing (2007). Si è ritenuto importante inserire questo lavoro come
appendice dell’elaborato di tesi in quanto il progetto fa parte anch’esso dell’ambito della
Brain Computer Interface.
PROGETTO SOFT COMPUTING:
UTILIZZO DI UNA ANN RICORRENTE PER IL RICONOSCIMENTO DI EVENTI P300
IN UN TRACCIATO ELETTROENCEFALOGRAFICO
Prof. Andrea Bonarini
Prof. Matteo Matteucci
Paolo Perego matr.680555
Maria Elena Scalzi matr. 708275
OBIETTIVI
L’obiettivo del progetto è quello di utilizzare una Rete Neurale Artificiale ricorrente per il
riconoscimento di eventi P300 in soggetti sottoposti a prove di BCI. L’onda P300 è un
potenziale evocato evento-relato (ERP) che si verifica quando l’attenzione del soggetto è
catturata da uno stimolo con valenza cognitiva. Si presenta come un picco positivo che si
sviluppa circa 300 msec dopo lo stimolo. Un sistema BCI basato sulla P300 ha
principalmente il compito di discriminare tra prove in cui è presente o meno l’evento in
modo da poter essere in grado di individuare le componenti cognitive.
- 115 -
Appendice II
MATERIALI E METODI
EEG DATA
Per questo progetto abbiamo utilizzato delle registrazioni di potenziali evocati P300
provenienti dal 2° Wadsworth BCI Dataset del 2002 [2]. In queste registrazioni il segnale
EEG viene acquisito da 64 elettrodi posti sullo scalpo utilizzando il paradigma BCI2000
P3 Speller. Il paradigma consiste nel presentare una parola al soggetto, il quale ha il
compito di dover riconoscere in una matrice 6x6 le lettere componenti la parola una alla
volta. Le righe e le colonne della matrice vengono intensificate in modo casuale con una
frequenza di 5.7 Hz: solo 2 delle 12 possibilità (righe e colonne) conterranno il carattere
desiderato (Fig 40). Le risposte evocate di questi stimoli contengono un’onda P300, segno
di un’attività cognitiva di riconoscimento e sono distinguibili dalle risposte evocate da
stimoli che non contengono il carattere desiderato.
Fig. 40: User display
In Fig. 41 vengono mostrati i 2 tipi diversi di risposta per il canale Cz: in blu è
riconoscibile il picco dopo 300 msec corrispondente all’onda P300, in rosso il segnale
registrato in assenza di stimolo (carattere non presente). Nel pannello inferiore viene
mostrato il parametro “r2” che rappresenta la differenza tra le due diverse classi di dati: r2
assume il suo maggior valore circa intorno ai 300 msec che corrisponde esattamente al
ritardo associato alla P300 in letteratura [3].
- 116 -
Appendice II
I dati vengono salvati i un file Matlab; la matrice “signal” contiene il segnale EEG (totale
#campioni x 64 canali), verrà preso però in considerazione solo il 51° canale
corrispondente all’elettrodo Pz.
Fig. 41: Onda P300 e r2
Al fine di ottenere il segnale desiderato per la nostra rete neurale abbiamo utilizzato le
variabili “Flashing” e “StimulusType”, la prima è un’onda quadra i cui fronti di salita
indicano l’inizio di una stimolazione ottica, la seconda assume valore 0 quando la
riga/colonna intensificata non contiene il carattere desiderato, 1 altrimenti.
Codice Matlab® per la creazione del segnale desiderato di uscita per l’addestramento
della rete neurale:
%Caricamento file
[filename,path]=uigetfile('*.mat','Seleziona il file per
l''addestramento;');
load ([path,filename]);
%Elimina pause
Flashing=Flashing(PhaseInSequence==2);
StimulusType=StimulusType(PhaseInSequence==2);
signal=signal(PhaseInSequence==2,:);
- 117 -
Appendice II
%Trova gli istanti di salita nella variabile Flashing che indicano
%l'inizio della stimolazione ottica
trig = [0; diff( Flashing )];
%Crea la variabile uscita desiderata mettendo a uno i valori per cui c'è
un
%fronte di salita in flashing e ho lo stimolo desiderato
outd=zeros(size(Flashing,1),1);
j=find(trig == 1);
for i=1:size(j,1)
if (StimulusType(j(i))==1)
outd(j(i)+round(.212*240):j(i)+round(.387*240)) = 1;
end
end
IMPLEMENTAZIONE DELLA RETE
La rete scelta ha un singolo ingresso ed una singola uscita in modo che i dati vengano
passati alla rete in modo sequenziale e che l’uscita assuma valore 0 o 1 a seconda che ci si
trovi in presenza di P300 o meno. Da qui si evince la necessità di una sorta di memoria
della rete che tenga in considerazione i valori degli ingressi precedenti per discriminare i
due stati. L’utilizzo di un ingresso sequenziale e di un “neurone memoria” è reso
necessario dal fatto che, avendo come ingresso migliaia di campioni, la rete avrebbe
dovuto avere altrettanti neuroni di ingresso con un conseguente costo computazionale
troppo elevato. Inoltre c’è anche la possibilità che non tutte le acquisizioni abbiano lo
stesso numero di campioni e quindi ci sarebbe l’ulteriore problema di costruire una rete
neurale differente per ogni acquisizione.
Per la costruzione della rete è stato inizialmente utilizzato il software MATLAB®
che comprende un toolbox per la generazione delle rete neurali.
La “memoria” della rete neurale è stata creata utilizzando una retroazione: più
semplicemente si è scelta l’architettura di Elman che, come illustrato in Fig. 42, presenta
una retroazione sui neuroni del primo strato in modo da riottenere in ingresso il dato
all’istante precedente.
Il numero di strati e di neuroni per ogni strato non è invece stato scelto a priori ma si sono
provate varie configurazioni cercando prima di tutto di trovare la soluzione al problema, ed
in seguito di diminuire il costo computazionale in modo da velocizzare la rete.
- 118 -
Appendice II
Dai tentativi da noi sperimentati la rete ottimale risulta avere un’architettura del tipo
(1,5,5,1).
Fig. 42: Neurone nell'architettura Elman
La rete implementata in Matlab® non ha dato risultati soddisfacenti, in particolare il
comando net = train(net,P,T,Pi,Ai,VV,TV) rallenta notevolmente l’addestramento,
soprattutto quando vengono usati un gran numero di campioni per l’ingresso. In Fig 43 si
possono osservare gli errori del training set e del validation set: dopo sole poche decine di
epoche l’algoritmo si arresta senza essere arrivato alla soluzione desiderata.
Fig. 43: Errori del training e validation set.
- 119 -
Appendice II
Testando la rete osserviamo che è ben lontana dall’aver appreso a riconoscere le onde P300
(Fig 44).
Fig.44: Rete Elman ricorrente (1,5,5,1) implementata in Matlab
Un ulteriore passo è stato fatto passando alla programmazione con linguaggio C++
che permette un minor utilizzo di memoria per il programma che quindi risulterà più
veloce. Per fare questo si è utilizzata la libreria Nodelib, facilmente scaricabile dalla rete
[4], che permette la creazione di reti neurali con varie architetture.
In Fig 45 viene mostrata la rete neurale ricorrente implementata del tipo (1,5,5,1), in cui
sono presenti retroazioni a livello del 1°strato nascosto e l’input possiede una connessione
diretta con il neurone in uscita. Come funzioni di attivazione abbiamo scelto la tangente
iperbolica per i neuroni degli strati nascosti e una sigmoide per il neurone d’uscita in
quanto l’output può assumere solo valori compresi tra 0 e 1.
- 120 -
Appendice II
Fig.45: Rete neurale ricorrente (1,5,5,1)
Di seguito viene riportata una parte del codice di implementazione della rete.
Codice C++ per l’implementazione di una rete neurale ricorrente:
NN *nn;
nn = nn_create("1 5
nn_link(nn, "0 -l->
nn_link(nn, "1 -l->
nn_link(nn, "2 -l->
nn_link(nn, "0 -l->
5 1");
1");
/* Inputs to hidden link. */
2");
3");
3");
/* Input to output short-circuit link. */
/* Retroazione */
nn_link(nn, "1 -s-> 1");
nn_set_actfunc(nn,
nn_set_actfunc(nn,
nn_set_actfunc(nn,
nn_init(nn, 1.0)
...
1, 0, "tanh");
2, 0, "tanh");
3, 0, "sigmoid");
... ...
...
data = dataset_create(&dsm_matrix_method,
- 121 -
Appendice II
dsm_c_matrix(&data_set[0][0], 1, 1, c_train));
nn->info.train_set = data;
nn->info.opt.stepf = opt_lnsrch_golden;
nn->info.opt.engine = opt_conjgrad_pr;
nn->info.opt.min_epochs = epoche_minime;
nn->info.opt.max_epochs = epoche;
nn->info.opt.error_tol = errore_tot;
nn_train(nn);
RISULTATI
Al fine di valutare il vantaggio dell’uso di una rete ricorrente per il riconoscimento di onde
P300 osserviamo in Fig 46 i risultati ottenuti in assenza di retroazioni: nel grafico in alto
sono rappresentati in colore blu l’uscita simulata e in rosso la stessa a cui viene applicata
una soglia a 0.4 ; nel grafico in basso viene raffigurata l’uscita desiderata ottenuta dal
dataset. La rete non impara a riconoscere gli eventi.
Fig.46: Rete senza retroazioni
Utilizzando invece la rete neurale ricorrente (1,5,5,1) ad esempio sull’EEG data
AAS010R1.mat possiamo osservare un netto miglioramento (Fig. 47): dopo 1000 epoche
la maggior parte delle P300 vengono riconosciute, vi sono però anche alcuni falsi positivi,
- 122 -
Appendice II
dovuti probabilmente a problemi di over-fitting. Ciò si potrebbe evitare utilizzando la
tecnica dell'early stopping anche se questo andrebbe a discapito dell'accuratezza della rete.
Fig. 47: Rete ricorrente (1,5,5,1)
E’ interessante notare l’importanza del link che lega l’ingresso direttamente con l’uscita:
come possiamo osservare in Fig 48, in assenza di questo collegamento la rete peggiora
notevolmente la sua accuratezza.
Un ulteriore metodo per migliorare la bontà della rete è quello di inizializzarla ed
addestrarla più volte, andando poi a scegliere quella con minor errore. In questo modo si
evita la possibilità di fermarsi in minimi locali e quindi di non raggiungere la soluzione del
“problema”.
Dalle varie prove che sono state effettuate, possiamo concludere che la rete neurale
ricorrente, applicata direttamente su segnale elettroencefalografico, non riesce a
discriminare perfettamente la presenza o meno della P300.
Un passo intermedio potrebbe essere l'estrazione ed individuazione di caratteristiche
particolari dell'EEG che potrebbero poi essere passate alla rete neurale per una successiva
elaborazione.
- 123 -
Appendice II
In tal caso la rete ricorrente potrebbe essere una soluzione migliore rispetto ad una normale
rete feed-forward in quanto ha la possibilità di considerare non solo gli ingressi allo stato
attuale ma anche le uscite allo stato precedente retroazionate. In tal modo sono sufficienti
un minor numero di neuroni negli strati nascosti (5 unità) per avere la stessa accuratezza
della rete feed-forward con un maggior numero di neuroni (20 unità).
Fig. 48: Rete ricorrente (1,5,5,1) senza link ingresso-uscita
La rete neurale ricorrente implementata costituisce un buon punto di partenza per un'analisi
dei potenziali evocati in ambito BCI, anche se l'architettura utilizzata non è provata essere
la migliore. Come possibile sviluppo futuro potrebbe essere utilizzato un algoritmo
genetico per la ricerca dell'architettura migliore (numero di neuroni, funzioni di
attivazione, connessioni tra i vari strati), e successivamente utilizzare diversi algoritmi di
apprendimento.
- 124 -
Appendice II
BIBLIOGRAFIA PROGETTO
[1] G. Androni, L. Maggi, L. Piccini, S. Parini “Interfaccia uomo-macchina avanzate”.
Rivista del Politecnico di Milano, 2003
[2] Documentation 2nd Wadsworth BCI Dataset (P300 Evoked Potentials) Data Acquired
Using BCI2000 P3 Speller Paradigm. (http://www.bci2000.org)
[3] G. Salimi Khorshidi, Ali M. Nasrabadi, M.R. Hashemi Golpayegani “Using Diagonal
Recurrent Neural Networks for an Accurate P300Detection”.
[4] Sito Nobelib: http://flakenstein.net/nodelib/html/
- 125 -
Bibliografia
Bibliografia
“La teoria è quando si sa tutto e niente funziona.
La pratica è quando tutto funziona e nessuno sa il perché.
In questo caso abbiamo messo insieme la teoria e la pratica:
non c'è niente che funziona... e nessuno sa il perché!”
Albert Einstein
ARTICOLI E RIVISTE:
[1] Evoked-potential correlates of stimulus uncertainty Sutton S, Braren M, Zubin J,
John ER. Science. 1965 Nov 26;150(700):1187-8.
[2] Visual evoked potentials standard (2004) J. Vernon Odom, Michael Bach, Colin
Barber, Mitchell Brigell, Michael F. Marmor, Alma Patrizia Tormene, Graham E. Holder
& Vaegan
Documenta Ophthalmologica 108: 115–123, 2004.
[3] Attentional modulation of SSVEP power depends on the network tagged by the
flicker frequency Jian Ding, George Sperling, and Ramesh Srinivasan
Cerebral Cortex 2006 16(7):1016-1029
[4] Brain–computer interfaces for communication and control Wolpaw, Jonathan R.;
Birbaumer, Niels; McFarland, Dennis J.; Pfurtscheller, Gert; Vaughan, Theresa M.
Neurophysiology 113-6 767-791 (2002).
[5] A platform independent framework for the development of real-time algorithms:
application to the SSVEP BCI protocol L.Mazzucco, S.Parini, L.Maggi, L.Piccini,
G.Andreoni,
L.Arnone
Bio-engineering
Dept.,
Polytechnic
of
Milan,
Italy;
STMicroelectronics, AST Group: Research & Innovation, Agrate Br., Italy.
[6] A four command BCI system based on the SSVEP protocol L. Maggi, S. Parini,
L.Piccini, Member, IEEE, G.Panfili and G.Andreoni.
- 126 -
Bibliografia
[7] A Wearable Home BCI system: preliminary results with SSVEP protocol Luca
Piccini, Sergio Parini, Luca Maggi and Giuseppe Androni.
[8] Lead selection for SSVEP-based brain-computer interface Yijun Wang, Zhiguang
Zhang, Xiaorong Gao, Shangkai Gao
[9] Design and Implementation of a Brain-Computer Interface With High Transfer
Rates Ming Cheng, Xiaorong Gao, Shangkai Gao
[10] Visual Spatial Attention Tracking Using High-Density SSVEP Data for
Independent Brain–Computer Communication Simon P. Kelly, Edmund C. Lalor,
Richard B. Reilly, John J. Foxe
[11] P300 Brain-Computer Interface Design for Communication and Control
Applications
Chaunchu Wang, Cuntai Guan, Haihong Zhang
[12] Brain–Computer Interfaces for 1-D and 2-D Cursor Control: Designs Using
Volitional Control of the EEG Spectrum or Steady-State Visual Evoked Potentials
Leonard J. Trejo, Roman Rosipal, and Bryan Matthews
[13] Non-Invasive Brain-Computer Interface System to Operate Assistive Devices
Febo Cincotti, Fabio Aloise, Simona Bufalari, Gerwin Schalk, Giuseppe Oriolo, Andrea
Cherubini, Fabrizio Davide, Fabio Babiloni, Maria Grazia Marciani and Donatella Mattia.
Conference of the IEEE EMBS August 2007.
[14] Walking through a virtual city by thought Leeb, R.; Pfurtscheller, G.; Engineering
in Medicine and Biology Society, 2004. EMBC 2004. 4503 - 4506 Vol.6 2004
[15] Towards an independent brain–computer interface using steady state visual
evoked potentials. B. Allison, D. McFarland, G. Schalk, S. Zheng, M. Jackson, J.
Wolpaw; Clinical Neurophysiology, Volume 119, Issue 2, Pages 399-408
- 127 -
Bibliografia
[16] Application to robot control using brain function measurement by near-infrared
spectroscopy Tadashi Tsubone, Takeo Muroga and Yasuhiro Wada
Conference of the IEEE EMBS August 2007.
[17] Studi Psicofisiologici: I Potenziali Evocati Bergia C. - Psicolab (2006).
[18] Evolution of the residential-gateway concept and standards Hongjun Parks
Associates; Cabling Installation & Maintenance.
[19] Analysis of bit-rate definitions for Brain-Computer Interfaces Julien Kronegg
Svyatoslav Voloshynovskiy Thierry Pun. Int. Conf. on Human-computer Interaction 2005
[20] Steady-State VEP-Based Brain-Computer Interface Control in an Immersive 3d
Gaming Environment E.C. Lalor, S.P. Kelly, C. Finucane, R. Burke, R. Smith, R.B.
Reilly and G. McDarby. EURASIP Journal on Applied Signal Processing 2005:19, 31563164
[21] Biosignal acquisition device: A novel topology for wearable signal acquisition
devices L.Maggi, L.Piccini, S.Parini, G.Andreoni and G.Panfili, Proceedings of Biosignals
2008 - 2008, January 27-31, Funchal (Portugal)
[22] A BCI-Based Environmental Controller for the Motion-Disabled Xiaorong Gao,
Dingfeng Xu, Ming Cheng, and Shangkai Ga, IEEE Trans Neural Syst Rehabil Eng. 2003
Jun;11(2).
[23] Implementation of a Brain-Computer Interface Based on Three States of Motor
Imagery
Yijun Wang, Bo Hong, Xiaorong Gao, and Shangkai Gao
[24] Tesi: Applicazione di interfaccia cervello computer come ausilio per la disabilità
motoria grave: sistema di comunicazione e controllo integrato: Aspice.
Aloise F., Palopoli L., Cincotti F.
- 128 -
Bibliografia
[25] Preliminary Experimentation on Vibrotactile Feedback in the context of Murhythm Based BCI. F. Cincotti, L. Kauhanen, F. Aloise, T. Palomäki, N. Caporusso, P.
Jylänki, D. Mattia, F. Babiloni, G. Vanacker, M. Nuttin, M. G. Marciani, and José del R.
Millán.
Engineering in Medicine and Biology Society, 2007.
LIBRI:
[I] Fisiologia Medica, Guyton e Hall, edizioni EdiSES, ISBN: 8879592106
[II] Anatomia e Fisiologia, Seeley Stephens e Tate, edizione Sorbona, ISBN: 8871500679
[III] Dizionario enciclopedico. Medicina, edizioni Rizzoli Larousse, ISBN: 8852501452
MATERIALE ONLINE:
http://www.aspice.it/ - Sito ufficiale del progetto Aspice
http://mobileguide06.di.unito.it/pdf/Aloise&al_01.pdf
http://mobileguide06.di.unito.it/pdf/Aloise&al_02.pdf
- Pdf con la spiegazione del
progetto Aspice
http://www.uildm.org/dm/157/societa/43aspiceweb.html
- Pubblicazione sul progetto
Aspice
www.gewiss.com – Sito web della Società Gewiss, sviluppatrice di prodotti per la
domotica
www.vimar.it - Sito web della Società Vimar, industria specializzata in energia ed
automazione
- 129 -
Bibliografia
www.bticino.it – Sito web della Società BTicino, sviuluppatrice del sistema domotico
MyHome
[a] www.myopen-bticino.it - Community open web net di BTicino
www.konnex.it – www.knx.org - Sito del protocollo konnex per home automation
www.x10.org – Sito del protocollo di comunicazione X10 per home automation
www.domotica.ch – Sito di riferimento sulla domotica in Svizzera
www.domotica.it – Il portale della domotica italiana
www.domotica-italia.org – Sito di riferimento sulla domotica in Italia
http://www.braincomputerinterface.it/ - Sito italiano sulla BCI
www.bciresearch.org - Sito istituzionale del gruppo di ricerca al Wadsworth Center
www.telethon.it – Sito della fondazione francese Telethon per la ricerca contro le malattie
genetiche
[b] www.wxwidgets.com – Sito ufficiale delle librerie wxWidgets
[c] http://wxpack.sourceforge.net/ - Download wxWidgets e applicativi di supporto
www.bluetooth.com – Sito dello standard di comunicazione Bluetooth
[d] http://irrlicht.sourceforge.net/ - Sito ufficiale del motore grafico Irrlicht
http://paooolino.altervista.org/forumirrlicht/search.php - Forum italiano di Irrlich
[e] http://www.eyeresponse.com/ - Sito del produttore dell’Erika Eye Traking System
- 130 -