The Immersive RC Car Controller - A dynamic Google Cardboard experience
Sneak Peek of Production Product Model - " 'Lando "
Using a Google Cardboard compatible Android application, you can explore the world around you as if you were riding in an RC Car. Lean forward, backward, left and right to move in those directions. Swivel your head around to control the 360 degree camera on top.*
Do all of this instantly, wirelessly and conveniently from any Google Cardboard phone to our RC Car from anywhere in the world.
Our team wanted to create a VR/AR experience that allowed the user to explore the world in real time.
What it does
Landoscope is a mobile camera car that allows the user to "be an RC car". They will be able to steer the wheel and look around at their surroundings in real time using Google Cardboard and a 360 degree rotating camera base. The best part about it is that you can access the device from across the world as the connection is done over an internet connection.
How we built it
Our team's hardware consisted of two Android smartphones running custom Android applications, an Arduino Leonardo with a WiFi101 shield, two 360 full rotation servo motors, one 180 rotation servo motor, Google Cardboard, and a Raspberry Pi.
These components were powered by Android (Java + XML), Web Technologies (HTML/JS/CSS + Three.JS), a Linode server (Java web socket), a local Raspberry Pi server (Node.JS), the Arduino Servo and WiFi101 controller libraries (Arduino) and tears.
Challenges we ran into
Hardware. None of us had any experience in electrical engineering or using hardware for any type of project in the past whatsoever. Through the course of the 36 hours we were given however we learned much about how circuits and Arduinos function.
Connecting all the parts. How would we be able to stream camera video feed and phone orientation data from the moving camera through the Raspberry Pi to the Linode Server to the user's Google Cardboard? How would we be able to send gyroscope information about the user through the network to the Arduino and process information on three-axis transformation into an algorithm which commanded the RC car to manipulate the correct servos in the right fashion? How could all of this be accomplished in real time with as little delay as possible?
The car - it's broken. Our RC Car snapped into two parts several hours before submission time. How do we implement a quick fix?
Accomplishments that we're proud of
- Connecting to our RC Car wirelessly
- Being able to control the RC Car to move in any cardinal direction
- Being able to create a stereoscopic image using just one image and being able to apply this affect to a dynamic image stream to simulate stereoscopic video
- Successfully managing and processing data through multiple servers simultaneously and across several platforms
- Being able to read orientation information from an Android device and translating it into mechanical instructions for the RC Car
What we learned
- How to program an Arduino
- How basic electric circuitry works
- How to set up various local servers and connect them to each other as well as a cloud server (Linode) to stream data across in real time using web sockets
- How to efficiently manage complex data through custom protocols using the smallest packets of bytes possible and use that data through byte processing on the Raspberry Pi
- How to create a stereoscopic image from a single image feed
- How to read gyroscope orientation information from multiple Android devices through web technologies and through native Android applications
- How to parse orientation information into mechanical instructions for several motors through an Arduino
What's next for Landoscope
Landoscope, when fully completed, will be able to allow users to experience being in other places at a low cost with a broad range of uses. From being able to explore a foreign city to being able to check on how employees are doing at a factory, Landoscope will allow people to immerse themselves from place to place in real time.
Landoscope aspires to one day seeing its siblings, Periscope and Aeroscope, come to life in order to complete a tri-force of land, sea and air immersion for any user.