Giter Club home page Giter Club logo

epoc.js's Introduction

JavaScript framework for the Emotiv EPOC [WIP]

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

Status:

  • 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.

How to Install

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

How to Use

Example of simple program:

  var Epoc = require('epocjs')();

  Epoc.connect(function(event){
    if(event.smile > 0){
      console.log('smiling')
    }
  })

Events


Smile

If the value is superior to 0, the headset is detecting that the user is smiling.

  if(event.smile > 0){
    // do something
  }

Looking Up / Down / Left / Right

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
  }

Blink

Detect if the user blinked:

  if(event.blink > 0){
    // do something
  }

Winking Left / Right

The headset can detect if the user is winking:

  if(event.winkingLeft > 0){
    // do something
  }

  if(event.winkingRight > 0){
    // do something
  }

Laugh

Detect if the user is laughing:

  if(event.laugh > 0){
    // do something
  }

Gyroscope

Detect changes in gyroscope data:

  if(event.gyroX){
    // do something
  }

  if(event.gyroX){
    // do something
  }

Cognitive Actions (Only working with the EmoComposer at the moment)

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')
  }


Next steps

  • Get cognitive actions working.

Special Thanks

Thanks to Cam Swords for his help :)

License

Licensed under the MIT license.

epoc.js's People

Contributors

charliegerard avatar

Watchers

James Cloos avatar Peter avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.