A Big Bang Theory episode: link.
Though they made the virtual presence robot as a joke, I thought it might have real (and funny) applications during lockdown and bring people together.
What it does
You can control a moving robot with up, down, left, and right commands. Meanwhile, a phone is mounted on the robot, so you can talk to others through the phone (kind of like FaceTime, but I coded it with the Agora SDK).
How I built it
First, I built the robot using 4 dc motors, wheels, 2 controllers for the motors, a ton of wires, a plastic chassis, and screws.
Then, I connected an Arduino Uno to the motor controllers so it could control app the DC motors. I used a voltage converter and serial communication to communicate between the Arduino MKR1010 and the Arduino Uno. The Arduino MKR1010 is what communicates to AWS IoT.
A react client is connected to AWS IoT and sends messages to the Arduinos to move up, down, left, right, or stop. The Agora SDK allows me to use video and audio communication between the phone and the controller. I sized the phone screen (when you click the robot button) to the size of my phone.
Challenges I ran into
I got a few errors when using the Agora SDK, so it took a long time to troubleshoot them. Also, the motors for the robot get stuck often, so I had to keep readjusting the wires in the robot (and there were a lot!) to get it to function properly. The website was hosted on AWS Cloudfront, and I tried to connected to one of the domains I got, but it didn't work :(.
Accomplishments that I'm proud of
I had a lot of fun making the phone stand. Also, it was a lot of fun controlling the robot remotely and see the video the phone is recording. It's like controlling an autonomous vehicle, and it is possible to control it anywhere as long as you are connected to wifi.
What I learned
I learned how to use a client to communicate directly to AWS IoT. I also learned to make a vehicle with wheels, which was very fun. Mostly, the circuitry was very new to me, so I got a lot more hardware experience.
What's next for Virtual Presence
I want to add more batteries to make the wheels go faster and add more to the website.