Giter Site home page Giter Site logo

soundanalogous / esp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from damellis/esp

0.0 2.0 0.0 25.46 MB

The Example-based Sensor Predictions (ESP) system applies machine learning to real-time sensor data.

License: BSD 3-Clause "New" or "Revised" License

Arduino 7.93% C++ 78.56% Processing 1.00% CMake 11.88% Makefile 0.09% Objective-C 0.01% Shell 0.53%

esp's Introduction

ESP (Example-based Sensor Predictions)

Build Status

This project aims to help novices make sophisticated use of sensors in interactive projects through the application of machine learning.

Pre-requisites

At the moment, this project runs on OS X and Linux. You'll need Xcode and git (to clone this repository and its submodules). You can also build the project for Windows, but not all examples are supported yet.

Installation

To install, first clone this repository, then run the setup script:

git clone https://github.com/damellis/ESP.git
cd ESP
./setup.sh

This will clone the relevant git submodules and create some symbolic links.

Running

The main application is an openFrameworks-based GUI application named, unsurprisingly, ESP. Below are instructions to run on different platform (currently we support Linux and OS X).

Arduino Project Hub has a more comprehensive tutorial on how to use the software.

OS X

Use Xcode to open the project at Xcode/ESP/ESP.xcodeproj. You can choose an example by uncommenting the corresponding line at user.cpp. Many of these examples expect an Arduino board to be connected to the computer and running an appropriate sketch. Some of the sketches are hosted in this repository as well (see Arduino folder). Some examples are:

  • user_audio_beat.cpp: recognizes periodic sounds (e.g. dialtones, bells ringing, whistling) using an FFT and support vector machines algorithm. Works with your computer's built-in microphone.

  • user_color_sensor.cpp: detects objects by color using a naive Bayes classifier. Works with either the Adafruit TCS34725 breakout (using the sketch in Arduino/ColorSensor) or the SparkFun ISL29125 breakout (using the sketch in Arduino/ColorSensor_SparkFun_ISL29125). See documentation for the sensors for hookup information.

  • user_accelerometer_gesture.cpp: recognizes gestures using a dynamic time warping algorith. Works with either an ADXL335 accelerometer (using the Arduino/ADXL335 sketch) or the built-in accelerometer on an Arduino 101 (using the Arduino/Arduino101_Accelerometer sketch).

  • user_accelerometer_poses.cpp: recognizes the orientations of an object using a naive Bayes classifier. Works with accelerometers as for the user_accelerometer_gesture.cpp example.

We also support using CMake on OS X to compile the project:

# Compile openFramework by compiling an emptyExample
xcodebuild -configuration Release -target emptyExample \
  -project "third-party/openFrameworks/scripts/templates/osx/emptyExample.xcodeproj"

# Build ESP
mkdir build
cd build
cmake ..
make -j8

Linux

We use CMake on Linux to compile the project. The compilation is a bit more involved, but should be easy to follow:

# Install required package
sudo apt-get -y install doxygen
sudo apt-get -y install cmake

# Then build openFrameworks
sudo third-party/openFrameworks/scripts/ci/linux/install.sh
sudo third-party/openFrameworks/scripts/ci/linux/build.sh

# Build and install GRT
cd third-party/grt/build
mkdir -p tmp && cd tmp
cmake .. -DBUILD_EXAMPLES=OFF
make
sudo make install
cd ../../../../

# Build ESP
mkdir build
cd build
cmake ..
make -j4

Windows

See this setup guide

API

See the online documentation of the ESP API.

Dependencies

These should be automatically installed by the setup script:

License

See LICENSE.txt for licensing information.

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.