
ThinkUino (Thinking Arduino) è un progetto open source capace di far interagire una board Arduino con un headset MindWave. Immaginate di poter attuare un qualsiasi dispositivo collegato al vostro Arduino semplicemente utilizzando il pensiero! Questo tipo di applicazioni sono molto utilizzate in ambito medico ma con un pizzico di inventiva potremmo controllare ogni dispositivo semplicemente concentrandoci su di esso.
Mindwave… cosa è?

Mindwave è una innovativa cuffia sviluppata da Neurosky capace di convertire le onde cerebrali in segnali digitali. Esistono 2 versioni di questo innovativo device:
- Mindwave Headset: questa è la versione base della cuffia. Può essere collegato ad un computer per effettuare delle semplici letture. É distinguibile dalla sua colorazione bianca ed è possibile visionarla attraverso questo link
- Mindwave Mobile Headset: elemento top della serie Mindwave, permette di leggere con più accuratezza le onde cerebrali. Inoltre, in aggiunta alla versione precedente, permette di essere interfacciato a dispositivi mobile quali Android e iOS. È distinguibile dalla sua colorazione nera ed è possibile visionarla attraverso questo link
Mindwave… 2 versioni, ma quale scelgo?
Per la corretta esecuzione del progetto è necessario utilizzare la versione Mobile del dispositivo. L’headset mobile supporta il collegamento bluetooth inviando dati RAW al dispositivo connesso. Questo elemento fondamentale ci permetterà di effettuare il parsing per ricavare i dati.
Procediamo? Certo, da subito!
Ricapitolando, gli elementi fondamentali per l’implementazione del progetto sono:
- Mindwave Mobile Headset;
- Arduino 2009 (o superiore);
- LED a bassa luminosità;
Per prima cosa, colleghiamo il LED alla board inserendo l’anodo all’interno del pin 13 (chiamato proprio pin led) ed il catodo a GND (massa). Notare il collegamento della figura qui di seguito:

Dopo aver collegato il LED come da figura, procediamo alla creazione del firmware che sarà flashato sull’Arduino:
int val; void setup() { Serial.begin(9600); pinMode(13,OUTPUT); } void loop() { if(Serial.available()>0){ val = Serial.read(); if(val==1){ digitalWrite(13,HIGH); }else{ digitalWrite(13,LOW); } }
- 0: il pin 13 viene impostato a LOW
- 1: il pin 13 viene impostato ad HIGH
In questo modo otterremo la logica di accensione e spegnimento del Led.
Configurazione Mindwave Mobile Headset:
Come qualsiasi dispositivo bluetooth occorre in primis effettuare il pairing con il PC. Quindi eseguire i seguenti passaggi:
- Tenere in pressione il tasto per 3 secondi:

- Cliccare su "aggiungi un dispositivo":

- Cliccare sul dispositivo denominato "Mindwave Mobile":

Terminato il pairing con il pc, scarichiamo il codice sorgente
Il progetto è stato realizzato attraverso Visual Studio 2010 Express Edition, pertanto è ricompilabile anche con la versione 2012. Componente fondamentale del software è la libreria ThinkGear.net. Tale libreria permette di interfacciare molto velocemente l’headset al software. Sarà quindi possibile leggere direttamente i valori dell’eSense (Attenzione, Meditazione) e le relative singole frequenze che compongono i due stati.
Scaricato il pacchetto dei sorgenti procediamo alla modifica delle parti fondamentali del progetto. Ricerchiamo le costanti che identificano le porte COM di Arduino e Mindwave:
- ARDUPORT: identifica la porta COM di Arduino, in genere è identificabile attraverso l’Arduino compiler
- MINDPORT: identifica la porta COM di Mindwave, rilevabile dal pannello di controllo di windows attraverso l’analisi dei dispositivi bluetooth.
Modificate le due costanti non ci resta altro che avviare la compilazione del software. Terminata tale procedura si presenterà una finestra come quella qui di seguito:

Utilizzo del software:
L’utilizzo del software è davvero molto semplice. Per prima cosa accendiamo l’headset impostando lo switch su “ON”. Successivamente colleghiamo l’Arduino alla porta USB del computer, quindi clicchiamo su “Connect” della sezione Headset e Arduino. In questo modo verranno aperti 2 canali di comunicazione seriali sia sul bluetooth che su USB. Per selezionare l’opzione di spegnimento del led ci basterà semplicemente sbattere le palpebre degli occhi. Per eseguire l’attuazione, invece, basterà concentrarsi sull’obiettivo. La condizione necessaria per attuare il led è “Attention > 60”.
Considerazioni finali:
Questo progetto pone semplicemente le basi per la creazione di ulteriori progetti molto più complessi di una semplice attuazione. L’utilizzo dell’headset Mindwave richiede un pò di pratica per essere utilizzato correttamente in questo progetto. Sicuramente, nelle prime prove effettuerete dei cambi di stato in maniera del tutto involontaria e casuale.
Ed ora, è il momento dei commenti! Scrivete qui di seguito le vostre considerazioni riguardanti il progetto perché, ovviamente, saranno prese tutte in considerazione! Infine, vorrei salutare l'Associazione Domos (Domotica sociale) di Conversano, in provincia di Bari, che ogni giorno svolge un egregio lavoro a supporto delle persone che necessitano davvero di una aiuto!

Ho fatto anche io dei test tempo fa con delle cuffie Emotiv Epoc ma i risultati NON sono stati soddisfacenti. Poi non ho avuto il tempo di approfondire il problema, cioè capire se era colpa della tipologia di cuffie o del fatto che fossero usate e quindi difettose. Non sono arrivato nemmeno a sviluppare una riga di codice 🙁
Comunque credo questa applicazione è un primo passo verso un mondo ancora inesplorato!
Come step successivo penso si possa mirare ad accendere il led con il pensiero (un alto livello di concentrazione) e poi a spengerlo con un basso livello di concentrazione.
Successivamente passare a + led di diverso colore, ma sempre con la mente, escludendo il battito degli occhi che invece potrebbe essere un segnale di reset.
Più ci si spinge avanti e più ci saranno problemi di rumore che non credo possano essere risolti tutti via software (sicuramente ci vorrà un dsp o dspic o un arm) ma comunque anche un condizionamento del segnale tra le cuffie ed il microcontroller penso sia necessario.
Il dibattito è aperto, le idee anche 🙂
La fortuna di Neurosky è la possibilità di avere anche numerosi script anche per Matlab, ma anche per Arduino come questo progetto che m’interessa molto. Gli utlizzi sono infinti anche nel campo della domotica per esempio per persone disabili, aprire e chiudere le tapperelle, accendere la tv etc.
Stiamo entrando in una nuova fase in cui ben presto i device EEG saranno a disposizione di tutti e faranno parte della quotidianità, come una volta i mainframe erano solo per i centri di ricerca ed ora sono appunto “personal comuter”.
Neurosky è più indicata per i makers, Emotiv purtroppo come dice anche Emanuele è una soluzione troppo chiusa.
Rileggendo l’articolo credo vada sottolineato che Neurosky implementa un solo elettrodo a secco. Soluzione che manca ad Emotiv che usa quelli wet.
Qualcuno però ha cominciato ad aprirla .. 😀
https://github.com/daeken/Emokit/blob/master/Announcement.md
Salve a tutti, questo progetto è solo la punta dell’iceberg… come dice Emanuele sto già provvedendo alla creazione di una lampada RGB ad immersione… ovviamente cambierà colore in base alle onde cerebrali.. spero di scrivere altri articoli di vostro gradimento!
conosco il workaround 😉
Complimenti per il progetto, attendo con ansia il secondo step
Una cosa da sottolineare è che sia Mindwave che Emotiv non sono propriamente delle BCI (Brain Computer Interface) perchè non processano solo segnali EEG, anzi, danno il loro meglio quando rilevano ed elaborano i segnali EOG-ElettroOculoGramma (movimento degli occhi) e EMG-ElettroMioGramma(espressioni facciali, battito delle palpebre etc…). Tali segnali hanno ampiezze dell’ordine dei mV, mentre i segnali EEG veri e propri solo dei microV, quindi sono molto più affetti da rumore.
Negli elettroencefalografi a scopo diagnostico, per esempio,i segnali EOG e EMG sono considerati come artefatti e vanno eliminati, qui invece sono usati come fonte principale di input.
Questa distinzione è importante nel caso si volesse usare Mindwave e Emotiv come aiuto per i disabili affetti da malattie neurodegenerative gravi e per i locked-in.
Essi infatti, non hanno la possibilità di muovere nessun muscolo o lo fanno con molta fatica. Tale soluzione quindi non sarebbe proponibile.
Faccio i complimenti all’autore per l’articolo… argomento interessantissimo !!
Sono d’accordo per quanto riguarda Mindwave, invece per quanto riguarda Emotiv Epoc, nonostante il segnale instabile, è possibile rilevare le P300 sia attraverso uno speller (paradigma odd-ball) che in termini di affective picture processing.
Non ho mai avuto tra le mani Emotiv Epoc, però ho avuto modo di parlare con persone che l’hanno usato e mi hanno dato per lo più pareri negativi sulla sua efficacia come BCI “pura”, soprattutto per la necessità di addestramento e calibrazione estenuanti (anche per i “normodotati”, figuriamoci per i disabili).
Tuttavia, come dicevo prima, risulta un buon dispositivo di biofeedback in senso lato, che non è poco !! Secondo me verrà sfruttato soprattutto per progetti di implementazione di realtà virtuale, per la casa domotica o per rendere i social network più interattivi (l’affective picture processing potrebbe essere sfruttato per mettere i like su facebook !! )… la strada per l’implementazione di BCI ai disabili invece, secondo me, non passa dall’Emotiv.
Comunque è tutto molto affascinante ed entusiasmante … l’interattività tra corpo umano ed ambiente circostante attraverso l’elettronica è il futuro !!
Questo l’avete visto ? https://www.youtube.com/watch?feature=player_embedded&v=oWu9TFJjHaM
Come accennato dal commento precedente il problema di “Emotiv Epoc” sta per l’appunto nell’instabilità del segnale che rende “estenuante” il training per i normodotati nell’utilizzo di uno speller dovuto anche al fatto dell’utilizzo di elettrodi wet volendo sostituibili etc.
http://brainfactor.it/index.php?option=com_content&view=article&id=775%3Abrain-computer-interface-il-futuro-ora&catid=46%3Aintegrazioni&Itemid=3
Nonostante tutto siamo all’inizio della diffusione di periferiche EEG commerciali e chissà forse un giorno raggiungeranno le prestazioni di quelle professionali ad un costo ragionevole.
Innanzitutto voglio cogliere l’occasione per fare i complimenti ad Antonio perché questo progetto è davvero interessante.
Tanto interessante che hai ri-scatenato il nostro Andres 🙂
Sentiti soddisfatto per questo. Sappi che è un gran bel risultato!
Bentornato Andres, anche se io lo so che seppure non commenti ci leggi lo stesso. 🙂
Ma torniamo all’articolo. Dicevo l’ho trovato molto interessante. Sono curioso e speranzoso che questo progetto vada avanti, si sviluppi, cresca e diventi una realtà concreta.
Dopodiché, approfitto per chiedere scusa a tutti per essermi dimenticato, nella previsione dell’articolo, di indicare il suo blog, quello dove potete trovare la documentazione completa e seguirlo semplicemente nei lavori che fa: http://www.blesciasw.it/
Queste mi sembrano delle ottime proposte.
Che ne pensi Antonio?
Il fatto che il mio articolo crei così tanto interesse da parte vostra mi lusinga… e non poco… Sono contento che Andres si scateni in questo modo! 🙂 … come sempre tento ti raccogliere più informazioni possibili dai vostri commenti! non si smette mai di imparare nella vita! grazie ancora!
Bisogna concentrarsi di più |
:-))))))))
Questo articolo mi piace molto, e davvero mi fa conoscere un mondo di cui non ero a conoscenza e, devo dire la verità, un po’ mi turba.
Ho sempre pensato che la tecnologia non debba oltrepassare delle barriere, e la lettura delle onde celebrali pensavo fosse una di queste barriere. In realtà, come tutte le cose, la vera e propria barriera andrebbe messa esclusivamente nell’utilizzo e dalle scelte che l’uomo fa. L’utilizzo per aiutare chi ha problemi di deambulazione è senz’altro un utilizzo nobile, ma chissà dove si potrà arrivare?
Un film con Jim Carrey (Se mi lasci ti cancello) racconta di un’azienda capace di cancellare i ricordi che non si volevano più conservare.
Un altro film, Strange Days, parla di una “droga” tecnologica, attraverso cui una persona poteva rivivere delle scene vissute da altri, sentimenti compresi. Nonostante i film di cui parlo siano davvero molto belli, io spero davvero che non si arrivi mai a questo tipo di risvolto. La mente umana, i ricordi, i sentimenti, credo e spero che resteranno per sempre inavvicinabili dalla tecnologia.
Questo ovviamente è solo uno spunto di riflessione su un argomento che di per se è davvero interessante (al creatore i miei complimenti).
Il codice sorgente non riesco ad aprirlo con Visual Studio 2010 come indicato nella guida, sembra non essere compatibile con questa versione.
É molto strano. Ho appena provato ad aprire il progetto sia con il 2010 express che con il 2013 Community.
Se può postare uno screenshot relativo all’errore.
Cordialmente