This framework provides an interface to access data from the Emotiv EPOC brain sensor using Node.js.
To use this framework, you're gonna need an EPOC or EPOC+ that you can buy here.
Originally based on the epocutils library by @StephaneAG
-
Refactored to use latest SDK โ Working with EmoComposer but still need to test while wearing the sensor.
-
Known issues:
- Cognitive Actions are not working at the moment when wearing the sensor.
- Need to provide a way for users to provide the path to their own user data file when launching the program.
If you haven't already downloaded the SDK, clone or download this repo and copy the edk.framework
to /Library/Frameworks
(on Mac).
In your terminal, run:
npm install epocjs
Example of simple program:
var Epoc = require('epocjs')();
Epoc.connect(function(event){
if(event.smile > 0){
console.log('smiling')
}
})
If the value is superior to 0, the headset is detecting that the user is smiling.
if(event.smile > 0){
// do something
}
The headset can detect the direction in which the user is looking:
if(event.lookingUp > 0){
// do something
}
if(event.lookingDown > 0){
// do something
}
if(event.lookingLeft > 0){
// do something
}
if(event.lookingRight > 0){
// do something
}
Detect if the user blinked:
if(event.blink > 0){
// do something
}
The headset can detect if the user is winking:
if(event.winkingLeft > 0){
// do something
}
if(event.winkingRight > 0){
// do something
}
Detect if the user is laughing:
if(event.laugh > 0){
// do something
}
Detect changes in gyroscope data:
if(event.gyroX){
// do something
}
if(event.gyroX){
// do something
}
Actions available:
- push
- pull
- lift
- drop
- left
- right
- rotate left
- rotate right
- rotate clockwise
- rotate counter clockwise
- rotate reverse
- disappear
switch(cognitivAction){
case 2:
console.log('push')
break;
case 4:
console.log('pull')
break;
case 8:
console.log('lift')
break;
case 16:
console.log('drop')
break;
case 32:
console.log('left')
break;
case 64:
console.log('right')
break;
case 128:
console.log('rotate left')
break;
case 256:
console.log('rotate right')
break;
case 512:
console.log('rotate clockwise')
break;
case 1024:
console.log('rotate counter clockwise')
break;
case 2048:
console.log('rotate forwards')
break;
case 4096:
console.log('rotate reverse')
case 8192:
console.log('disappear')
}
- Get cognitive actions working.
Thanks to Cam Swords for his help :)
Licensed under the MIT license.