Wirelessly controlled robot that provides live video footage
Author: Samuel Rodriguez (samuelrprofessional@gmail.com)
Started: 06/01/21
Last Updated: 02/17/22
Self-Link: https://tinyurl.com/k3rpch2p
Personally, I am at my university for most of the year, so I do not have the ability to traverse around my house to see my dogs, and I tend to get homesick sometimes.
Humans are limited in how fast they can travel. It is not instant, nor do we have the financial means to travel all the time. We are also limited such that we cannot be in multiple places at the same time either.
- Build a wirelessly controlled robot from anywhere in the world
- Install camera to get live video footage from robot
- Control robot from a secure site
- Robot travels on the ground
- Raspberry Pi 4 Model B : $43
- Micro HDMI to HDMI cable : $0 (Already have)
- 16BG Micro SD card (x3) : $9.90
- 5V DC 3A power supply adapter with USB type C : $0 (Already have)
- 4 Wheels and 4 motors : $14.99
- L298N Motor Drive Controller Board DC Dual H-Bridge Robot Stepper Motor Control and dupont cables : $ 6.99
- Female to female wiring: $5.99
Total Cost: 43 + 0 + 9.90 + 0 + 14.99 + 6.99 + 5.99 = 80.87
Website where user controls robot from and views live video
- Design website mockup that will serve as the remote control for the UGV
- Provide assets from the mockup into the actual website
- Use GPIOZero module to control motors:
https://gpiozero.readthedocs.io/en/stable/api_output.html?highlight=motor#motor
- Create Django development server to communicate between Pi and remote control device
- Javascript listeners performs GET request when user presses specific keys that are mapped to various robot configurations (i.e. arrow keys to move)
- Executes python script to handle GET and POST requests while simultaneously controlling Pi via GPIO output signals
- Features a secure tunneling service to connect any device to Pi from anywhere in the world online
- Implements SSH online to activate server on the Pi and control the robot all from a device like a laptop
- Basic website design (refer to mockup) that will show controls and live video
- Gives all 4 wheel drive mobility
- Activates each motor according to input from Raspberry Pi
- Level of voltage correlates with rpm
- One motor per wheel
- Two motors per motor controller
- Hub for robot
- Communicates with server
- Receives input for how to control UGV
- Sends live video output
- Sends output to motors to move UGV
- Receives input from camera to send live video
- Connects to Raspberry Pi
- Sends video data to Raspberry Pi
- Communicate between 2 motors and Pi
- Controls voltage delivered to the motors to change motor’s RPM (essentially controlling speed of the robot)
TODO: Write down each piece of the solution, i.e. break it down into smaller pieces
I, Samuel Rodriguez, will be doing all of the work
- Order all materials to practice with Raspberry Pi without constructing robot
- Create website mockup on Figma
- Finish design doc
- Create static web page following mockup
- Connect to Raspberry Pi to control via laptop’s monitor and keyboard
- Create local http-server with Python
- Connect motors to power source to test that they are running
- Configure motor drive controller to Pi and motors
- Send local signals to Pi to control motors via Pi
- Configure camera to Pi (might need camera module)
- Configure camera to Pi
- Create client for Pi to connect to http-server (with Python)
- Control Pi via server (ensure connection even on different networks).
- Build robot skeleton and mount all devices
- I bought Raspberry Pi, motors, wheels, motor driver controller, few wires, and Micro SD cards
- Research how to setup Raspberry Pi via guidebook
- Construct GitHub Repo
- Wrote some technologies in design doc
- Create website mockup
- Implement website (control center) skeleton
- Set Up and Connected Raspberry Pi to VNC and SSH
- Enables Pi to be controlled from laptop
- Create django project in development mode and integrated control center site
- Integrated GPIO control in django development project
- Connected motors to the power source via reconfigured USB cable and they worked!
- Purchased female to female wiring
- Cut out bottom chasis from clipboard
- Attached motors, Pi, Pi power source, motor drive controller, and motor driver controller power source to chasis
- Performed initial tests controlling robot prototype from a local
- Necessary improvements: distribute weight evenly on robot as power sources are the main source of weight that is fastened to only one side of the robot.

