Escolar Documentos
Profissional Documentos
Cultura Documentos
Apresentao
Alessandro de Oliveira Faria (A.K.A. Cabelo) 40 anos Desde 12 anos no mercado de tecnologia.
Pesquisador e Consultor em Biometria Facial; 102 Artigos publicados na internet (Viva O Linux e outros); Mantenedor de biblioteca de vdeo captura Linux e mais 12 projetos; Embaixador openSUSE na Amrica Latina; Experincia com Viso Computacional (openCV e GPU); 40 Palestra ministrada sobre tecnologia;
Interfaces Cerebrais
A rea da computao que estuda como interagimos com o computador se chama HCI (Human Computer Interaction) e possvel notar que os mais variados tipos de dispositivos so estudados devido grande criatividade dos pesquisadores da rea. Os dispositivos que permitem a interface direta com o crebro (BCI Brain Controlled Interface), vm ganhando muito destaque atualmente, especialmente os no invasivos, ou seja, aqueles que no requerem a colocao cirrgica de eletrodos.
Ondas Cerebrais
A eletroencefalografia(EEG) o estudo grfico das tenses medidas a partir da superfcie do couro cabeludo de um sujeito. As principais utilizaes desse tipo de medio na identificao de doenas como epilepsias por apresentarem irregularidades caractersticas no registro grfico dessas tenses. Contudo, vrios grupos de pesquisas ao redor do mundo esto dando novas utilidades a esse tipo de tecnologia como em Interfaces Crebro-Mquina e em Neurofeedback, utilizado em tratamentos de doenas como a prpria epilepsia.
Estado Beta: Baixa amplitude e alta frequncia, 14 a 30 ondas/segundos (ativo) Estado Alfa: Baixa amplitude, 8 a 13 ondas/segundos (relaxada) Estado Teta: Baixa mdia amplitude, 4 a 7 ondas/segundos (sonolenta) Estado Delta: Baixa amplitude e baixa frequncia, 3 ondas/segundos (sono profundo) Ainda no analisado o REM (Estgio do sono)
Aplicabilidades
Aplicabilidades
Aplicabilidades
NeuroSky
Preo: $ 99,00 Interface : USB Wireless Plataforma : Windows, Mac, iOS e Android. SDK: Gratuito Site: http://www.neurosky.com/
PLXWave
Preo: $ 99,99 Interface : USB Wireless/Bluetooth Plataforma : Windows, Mac, iOS, Android, Window Mobile e Blackberry. SDK: Gratuito Site: www.plxdevices.com/plxwave/
Emotiv EPOC
Preo: $ 299,00 Interface : USB Emotiv Bluetooth Plataforma : Windows, Mac. SDK: $ 500,00 ~ $ 7.500,00 14 Sensores Site: www.emotiv.com
Emotiv EPOC
Developer Edition Research Edition Education Edition Enterprise Edition Enterprise Plus Edition
OpenVibe.
Link: http://openvibe.inria.fr/
Windows, Linux e Mac Software que possibilita acompanha e controlar a atividade cerebral eltrica oscilatria opensource.
Emotiv EPOC um capacete (headset) com diversos sensores (14) que permitem a leitura e interpretao de ondas celebrais de forma no invasiva. A colocao do capacete no muito incmoda e depois de alguns minutos bem fcil se acostumar com ele. No devemos desprezar a resistncia capilar. No h nenhum tipo de sensao adicional, alm da pequena presso que os pontos de contato fazem na regio de contato. E no, ele no causa cncer ou qualquer tipo de doena mental.
2 equipamentos 2.4 GHz Intel Pentium 4 Microsoft Windows XP SP2 1GB RAM, 50 MB (HD). Uma ou duas portas USB 2.0 desocupadas. Bateria interna com autonomia de 12 horas. Carga de 10% a cada 15 minutos.
EE_EngineConnect()
int main(int argc, char * argv[]) { EmoEngineEventHandle eEvent = EE_EmoEngineEventCreate(); EmoStateHandle eState1 = EE_EmoStateCreate(); EmoStateHandle eState2 = EE_EmoStateCreate(); if(EE_EngineRemoteConnect(input.c_str(), controlPort) != EDK_OK) { std::string errMsg = "Cannot connect to EmotivEPOC!"; throw std::exception(errMsg.c_str()); } while(end>0) { state = EE_EngineGetNextEvent(eEvent); if (state == EDK_OK) { EE_Event_t eventType = EE_EmoEngineEventGetType(eEvent); if (eventType == EE_EmoStateUpdated) { EE_EmoEngineEventGetEmoState(eEvent, eState2); faceSame = ES_ExpressivEqual(eState1,eState2); //Expresso moodSame = ES_AffectivEqual(eState1,eState2); //Emocional ES_Copy(eState1, eState2); if(!faceSame) expEvent(eState1); if(!moodSame) affEvent(eState2); cogEvent(eState1); } } }
voidaffEvent(EmoStateHandlestate) { floatsavedEng=engaged_bored, SavedExcite=excitement, SavedExciteLT=excitementLT, savedMed =meditation, savedFrust=frustration; engaged_bored=ES_AffectivGetEngagementBoredomScore(state); excitement=ES_AffectivGetExcitementShortTermScore(state); excitementLT=ES_AffectivGetExcitementLongTermScore(state); meditation=ES_AffectivGetMeditationScore(state); frustration=ES_AffectivGetFrustrationScore(state); if(savedEng!=engaged_bored){ cout<<"AFF_ENGAGEMENT_BOREDOM"<<(float)engaged_bored<<endl; }if(savedExcite!=excitement){ cout<<"AFF_EXCITEMENT"<<(float)excitement<<endl; }if(savedExciteLT!=excitementLT){ cout<<"AFF_EXCITEMENT_LT"<<(float)excitementLT<<endl; }if(savedMed!=meditation){ cout<<"AFF_MEDITATION"<<(float)meditation<<endl; }if(savedFrust!=frustration){ cout<<"AFF_FRUSTRATION"<<(float)frustration<<endl; }
voidexpEvent(EmoStateHandlestate) { //savepreviousvariables floatsavedLeft=leftLid; floatsavedRight=rightLid; floatsavedX=x; floatsavedY=y; EE_ExpressivAlgo_tsavedLow=actionLow; EE_ExpressivAlgo_tsavedHigh=actionHigh; ES_ExpressivGetEyelidState(state,&leftLid,&rightLid); ES_ExpressivGetEyeLocation(state,&x,&y); actionLow=ES_ExpressivGetLowerFaceAction(state); actionHigh=ES_ExpressivGetUpperFaceAction(state); powerLow=ES_ExpressivGetLowerFaceActionPower(state); powerHigh=ES_ExpressivGetUpperFaceActionPower(state);
if(leftLid!=rightLid){ if(savedLeft!=leftLid)cout<<"EXP_WINK_LEFT"<<(float)leftLid<<endl; if(savedRight!=rightLid)cout<<"EXP_WINK_RIGHT"<<(float)rightLid<<endl; } elsecout<<"EXP_BLINK"<<(float)rightLid<<endl; if(savedX!=x) cout<<"EXP_HORIEYE"<<(float)x<<endl; if(savedY!=y) cout<<"EXP_VERTEYE"<<(float)y<<endl; switch(actionLow) { caseEXP_SMILE: cout<<"EXP_SMILE"<<endl; break; caseEXP_CLENCH: cout<<"EXP_CLENCH"<<endl; break; caseEXP_LAUGH: cout<<"EXP_LAUGH"<<endl; break; caseEXP_SMIRK_LEFT: cout<<"EXP_SMIRK_LEFT"<<endl; break; caseEXP_SMIRK_RIGHT: cout<<"EXP_SMIRK_RIGHT"<<endl; break; };
voidcogEvent(EmoStateHandlestate){ EE_CognitivAction_tactionType=ES_CognitivGetCurrentAction(state); floatpower=ES_CognitivGetCurrentActionPower(state); if(power!=0) { switch(actionType) { case(COG_NEUTRAL): cout<<"COG_NEUTRAL"<<endl; break; case(COG_PUSH): cout<<"COG_PUSH"<<endl; break; case(COG_PULL): cout<<"COG_PULL"<<endl; break; case(COG_DISAPPEAR): cout<<"COG_DISAPPEAR"<<endl; break; };
Obrigado! cabelo@opensuse.org