VR Arduino Camcorder
Introduction: VR Arduino Camcorder
The VR Arduino Camcorder is a school/passion project inspired by a limitation i noticed while working with digital camera's. digital camera movement often looks kind of static, and lacks human imperfection, which is an important element in making digital things look realistic. i'm not good enough at animating to keyframe the camera's in interesting ways.
This is why i came up with this invention. it makes filming digital thing much more intuitive because it allows me to record my scenes the same way i'm used to in real life working with a camera, but in a Virtual Reality Reality environment.
i salvaged an old VHS camera and rewired all nessecary buttons to the Arduino UNO. i send this data to Unity Game Engine. here i set up my VR scene and created a digital copy of the physical camcorder to hold.
i use the camera's original buttons for their original purpose, but digitally in Unity.
Features:
-Start/stop Unity Recorder to MP4 (with LED feedback, Red = off, Green = on)
-Restart Unity timeline
-Dual zoom button (Tele, Wide)
-Ring on the lens to adjust Focus (Depth of Field)
-VR Tracker slot with straps for easy access
Supplies
1x Arduino UNO
1x Panasonic MS70 Camcorder
1x Velleman Soldering Iron (can be any brand)
1x Oculus Quest VR set (any modern set works)
1x Linear Potentiometer
1x USB 2.0 cable Type A/B
1x Red LED 5mm
1x Green LED 5mm
1x CAT6 Ethernet Cable
10x Heat shrink cable wrap
1x 15-Pin Header strip
1x 19-Pin Header strip
1x grey 1.5mm 3Core & earth cable
2x Velcro strip
Step 1: Research
before starting i needed to do some research. this was my first time working with arduino so i looked up some tutorials on how to install and read a potmeter in arduino code. i also found a video about sending/receiving data to/from unity.
I also looked around the internet to see if anyone has done something similar before, and found out this technique was used during the making of The Lion King CGI remake, but on a much larger scale/budget. this seemed to work really well and it inspired me to keep going. the reason they used this VR Camera technique is also to add some more humanity to otherwise plain and robotic camera movement in a 100% 3D animated movie. 983
they also used Unity Engine for recording all camera animations in VR
Sources:
Control LED with Potmeter Arduino: https://www.youtube.com/watch?v=RBYVUTIU4FE
Making of Lion King: https://www.youtube.com/watch?v=WupuXjvO9uA
Make Arduino Game Controller in Unity: https://www.youtube.com/watch?v=N9RhSa8oMD8
Step 2: Setting Up Arduino
I started with making a simple breadboard circuit to test out my potentiometer. i also added a button and a LED to tinker with. i also knew i was going to need these anyway later on. the leds switch color when i press the button.
Step 3: Set Up Unity VR Project and Communicate With Arduino
in Unity i set up the project with all neccesary VR integrations, and attach a cube to the right hand controller. i add a digital camera object at the front and make it render to a rendertexture, which is attached to the side of the cube. this way i was able to move a camera object with my controller, and see output on the "screen" (render texture)
i put my VR controller inside of a small waist bag to test how holding the controller sideways with a strap feels . this feels similar to holding a camera
the next task was finding out how to send/receive data from arduino to Unity. after some research i found the Ardity plugin (https://github.com/dwilches/Ardity) this makes communicating with the arduino UNO trough serial port somewhat easier. Because parsing the final string of serial data gave some major issues, i decided to simply let arduino send different letters to unity, corrosponding to the buttons. in unity i'd check the entire string and if the subject letter is present, the button code runs.
i wrote a C# program in unity to read the serial port data, and pass the value's of the Potentiometer to the Focus Distance of unity's Depth of Field (Focus) post-effect. to test this out i created a quick scene with terrain and a dancing target for testing. 769