My project is a 3D drawing interactive exhibit that combines Unity, Arduino, and Leap Motion.
Video to be posted soon.
Introduction to Physical Computing
60-223 Fall 2017
My project is a 3D drawing interactive exhibit that combines Unity, Arduino, and Leap Motion.
Video to be posted soon.
For my project, I’ve gotten a few separate parts of my project to work, but not all of them.
Projector & Unity (Works)
Unity has this weird thing where there’s not a built-in way to get the full gaming experience while in the editor (or at least, I haven’t found one yet), but there’s a way to maximize the game scene, and if I set up my laptop to do the “extended projection”, it’s close enough to what I would want it to be. When I build the actual cube, if I make it slightly smaller than the projected image, it should be fine.
Projector & Cube (Works- kind of)
Unfortunately, the projector that I’m using doesn’t have the range that I wanted it to have (in terms of projecting within a close distance). The closest I can have an in-focus image is about 4 feet, so that scraps my idea of having the projector inside the cube and reflecting the image with a mirror. That takes away a huge component of the streamlined-ness that I wanted my final project to have, so I’ll try to make it up in other ways (perhaps a physical interface rather than a virtual one, etc.). I’ve finally gotten the dimensions for my cube as well – should end up being around 14″ x 16″, which means I might have to get stiffer cardstock when building it, I’m going to try to build it with what I have first.
Motor & Arduino (Doesn’t work yet)
This part is the most frustrating so far- I’ve spent hours trying to get my 12V stepper motor to work with Adafruit’s motor shield, but for some reason it’s just not working. I think that the issue might have to do with the power supply, but I’m not sure (will try to troubleshoot this some more in class). Without this key component working, I haven’t been able to work on getting Unity to interface with Arduino, which is what I see as the biggest challenge of the project, so this is definitely my top priority right now.
Leap Motion & Unity (Works)
Leap Motion has done a great job of streamlining its integration with Unity, so I’ve been able to get it to do the basic functions that I need so far (drawing, rotation with hand gestures, etc.).
Sorry I don’t have any pictures or videos- my phone camera died and I didn’t have time to check out a camera from Hunt beforehand.
Abstract
I’d like to make an interactive 3D drawing box. Users can draw an object in 3d space and see their drawing projected onto an interactive cube in real time. It will use Unity, Arduino, a projector, and the Leap Motion Sensor. It is heavily inspired by Ralf Breninek’s project: https://vimeo.com/173940321
As well as Leap Motion’s Pinch Draw:
Unfortunately, Pinch Draw is currently only compatible with VR headsets, so it won’t translate directly to my project idea. That’s where I think some of the technical complexity comes in- I will probably have to write my own custom program.
Hardware
Software
Order of Construction and Testing
For this assignment, I made a mini DJ turntable using a soft circular potentiometer, speaker, and some buttons/switches. The buttons and switches are only for aesthetic purposes, however, since I didn’t have time to figure out how to incorporate volume and play/pause into my code.
As you press the needle in different places around the record (the circular potentiometer), the speed of the song (Super Mario theme song) either increases or decreases.
Link to demo video, code, etc:
https://drive.google.com/drive/folders/0B0yMpI_ZOcoYU2pTOVd2M2hWVDg?usp=sharing
For this assignment, I made a zoetrope. A zoetrope is one of the most primitive forms of animation, and it uses static images and optical illusion to create the impression that an image is animated. You can change the scene being animated by switching out the paper strips, as well as reverse direction and speed up/slow down the spinning.
I originally wanted to an inverse zoetrope, which features 2D cut outs that go around the rim of the spinning platform and projects the image onto the inside of the backdrop with slits. However, my original animated scene (opening a fridge door) was too fragile to be cut out.
I ran into a lot of issues with this project, actually, even though it looks pretty simple. The minimum number of frames you can have to satisfactorily achieve the illusion of motion is 12, and it was difficult to get find stills with just the right amount of change between them to look animated. Another issue was the size constraint. Since the motor I’m using can be powered solely by an Arduino, I ran into issues with the lack of torque from the motor, so I had to stick to a small platform. I also wasted a lot of time trying to figure out what was wrong with my circuit, when it turned out that I just had a bad wire connecting the motor to the voltage supply.
If I were to do this over, I think I would give another try to the inverse zoetrope, and make a design more well-suited to it.
Demo video:
https://drive.google.com/file/d/0B0yMpI_ZOcoYaGZjRUppUnRFMU0/view?usp=sharing
*Circuit and code directly from class example
The goal of my project was to explore how heart rate can implicitly express emotion. A faster heart rate can mean many different things, from adrenaline, to fear, to excitement. In this specific case, I wanted to see how an increased heart rate can be linked to negative emotions associated with being off-balance.
As you knock the person off-balance, the heart rate increases rapidly. Once the person is back on his feet, the heart rate returns to a steadier, more relaxed rhythm. The heart rate is represented by a string of LEDs in the shape of a heart mounted on a protoboard. The protoboard is mounted to a servo, which moves in rhythm with the heart beat. The person is hand carved from a bar of soap, with an accelerometer embedded in its back.
All details (Arduino sketch, demo video, etc.) can be found here:
https://drive.google.com/drive/folders/0B0yMpI_ZOcoYRzJyZXRWZ3lidkU?usp=sharing