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 -