Giter Site home page Giter Site logo

prasad-madhale / 3d-interface Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 1.0 52.25 MB

Motion and touch tracking interface using stuff like Aluminium Foil, CardBoard and an Arduino Uno. Built using Processing 3.0 and Arduino IDE.

Processing 98.20% Arduino 1.80%
arduino-uno processing affordance human-computer-interaction motion-tracking touch-enabled

3d-interface's Introduction

3D-Interface

This project accomplishes motion and touch tracking using simple household stuff like Aluminium Foil, CardBoard and an Arduino Uno.

Implementation Details

Implementation details

Softwares used.

  1. Arduino IDE
  2. Processing 3.0.

Libraries used in Processing.

  1. Obsessive Camera Direction
  2. Minim (audio library)
  3. PeasyCam (mouse-controlled camera)
Project uses OPENGL 3D mode in processing.

Hardware requirements

  1. Cardboard Assembly. Cardboard Assembly

  2. Audio cables (sheilded)

  3. Arduino UNO

  4. Another cardboard with aluminium foil coated to provide us GROUND.

Overall Setup

Overall Setup

Circuit diagram

Circuit Diagram

Applications included:

1. Motion Tracking.

This sketch tracks motion of your hand and presents it in a 3D block grid arrangement wherein the yellow sphere denotes your hands position Motion Tracking

2. 3D Camera.

Uses same code as above and uses hands motion to control a camera's viewing angle 3D Camera

3. Musical instruments.

uses hand gestures to produce different sound output like different chords of guitar Musical Instrument demo

4. UFO game.

uses hands gestures inside a 3D game.Aim is to suck people in and dodge missiles UFO game

5.Drawboard.

This implementation uses both motion and touch tracking wherein all the 3 plates(X,Y,Z) become touch surfaces as well Drawboard

6. Virtual Blocks (Work in progress).

Uses motion tracking to control 3D blocks height. This is still a work in progress. Virtual Blocks

Steps to get it working

  1. Get the hardware setup ready as shown in above image.
  2. Open arduino IDE and load the Arduino_sketch.ino file which is in the Arduino_sketch folder.
  3. Run the arduino sketch after connecting uno to the computer. Solve any issues like permissions denied(for ports).
  4. Check if sketch is uploaded properly by opening serial monitor(tools->serial monitor). It should spit out 3 numbers continuously. These numbers denote your X,Y,Z plates of the cardboard assembly.You can check if each plate is working or not by touching the plate.On touching the values of the particular plate should show significant change(increase in values).
  5. Now, open one of the processing sketches mentioned above. Before running the sketch remember to close arduino serial monitor.
  6. Next the system will require calibration wherein you place your hand on ground plate and move your hand from the top half of cardboard assembly to the innermost point of the assembly.(Do not touch the plates)
  7. Now you are good to go. PLAY WITH IT! HAVE FUN.

REFERENCES:

These articles have very good explanation and will guide you properly through the hardware setup. Article1.

Article2.

Paper with helpful implementation details.

3d-interface's People

Contributors

prasad-madhale avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

shijinmathew012

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.