Introduction: Touchless PC Control A.k.a JARBAS
Hey guys, this is my first instructable, so any critics,suggestions or questions, just comment!
Have you guys always wanted to build a Gesture Interface? Like J.A.R.V.I.S or the ones used in sci-fi movies? Well, the future is now!(I always wanted to say this).
I had the idea of "building" this when my teacher Prof. Dr. Ricardo Menotti, gave me and a friend of mine a Leap Motion to control our 4x4x4 Led Cube(instructables to this one is already been doing :) ), and when I was messing around with the api the idea of using to Leap Motion to control the PC came into mind.
You may ask: "Why use something to control a PC if I already have a mouse?". Well, I think that using the Leap Motion to control it is good for when you're using your note on the television, or when your hands are dirty from food(who doesn't hate when your mouse/keyboard becomes sticky?) and besides that, the real question in the maker world is not "why?", but "how?".
So let's get started!
Step 1: Things You Need
Well, in this instructable no eletronic soldering skill will be needed, as all the components we need are already done. The things you're going to need are:
- A Leap Motion
A Windows-running computer
If all the above check, we can get to the part of joining everything!
P.S.: If you already have the Leap Motion drivers and Visual Studio installed, just go to step 3.
Step 2: Setting Up Everything
Ok, now that we've checked that we have everything we need, we get to the worst(or best, depends on you) part, the configuration!
First, we need to download the drivers from the Leap Motion. Go to this page, create an account and download the sdk. You will have and .zip file, extract it to a folder of your preference(I suggest one that you won't forget/delete later, most of the libs are in this sdk) and double click in the installer to make your Leap Motion work!
After installing, type "Leap Motion Visualizer" in the Windows Search and run it. If everything is ok, you should be seeing two cameras and your hovering hands!
Next, we need to download and install the Visual Studio 2015(you can try and run it on Mono, but I haven't tested it). First, go to the download page, enter in your Microsoft account, download and install the Visual Studio.
Now let's go to the best part: opening the project!
Step 3: Opening and Running the Project
So, now that we have everything set up, let's open and run the project!
Go the JARBAS project page on GitHub, and download and unpack it or clone it.
After doing it, go to the JARBAS folder and run the JARBAS.sln, the Visual Studio should open the solution. Now what you only have to do is click on "Start" to run the project!
If everything went fine, you should be seeing a Window(hopefully I already updated the project in GitHub and it will look better than the one on the screenshot).
By the time I'm writing this instructable the program works this way:
It uses the position of your right hand index finger to control the cursor, and the right hand thumb "contracture"(don't know a better word, sorry) to simulate clicks. As for now, it has some events:
- Left click (by contracting your thumb finger)
- Right click(by contracting your thumb finger with your palm upwards)
- Opening the virtual keyboard(by showing your left hand to the Leap Motion)
- Closing the virtual keyboard(by not showing your left hand to the Leap Motion)
I intend to add more events to the program(the new features will be on the GitHub page, so check it often), and that's what we will talk in the next step.
Step 4: Extending and Improving the Project
As an Open Source lover, I think that the most important part of a project is the interaction with the communit.The project is fully detailed here and the source code is on GitHub, and here's where you guys enter!
I intend to improve the project, adding more features, more events(dragging, using the virtual keyboard properly), creating a proper UI, and porting it to Linux and OS X(and probably refactoring and improving the accuracy).
So feel free(and encouraged) to fork the project on GitHub, comment here and get in touch with me!
Till the next time :)