Skip to content

SamRod33/remote-robot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Unmanned Ground Vehicle (UGV)

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

Background

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.

Problem

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.

Objective/Solution

  • 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

Materials

  • 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

Mock Up

Website where user controls robot from and views live video

Mock Up

Technologies

Figma
  • Design website mockup that will serve as the remote control for the UGV
  • Provide assets from the mockup into the actual website
Python
  • Use GPIOZero module to control motors:

https://gpiozero.readthedocs.io/en/stable/api_output.html?highlight=motor#motor

Django
  • 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
Ngrok
  • 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
HTML
  • Basic website design (refer to mockup) that will show controls and live video
DC Motors
  • 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
Raspberry Pi
  • 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
Camera
  • Connects to Raspberry Pi
  • Sends video data to Raspberry Pi
Electric Wire Diagram for One TT Motor

circuit-diagram

L298N Motor Drive Controller
  • Communicate between 2 motors and Pi
  • Controls voltage delivered to the motors to change motor’s RPM (essentially controlling speed of the robot)

Solution/Description

TODO: Write down each piece of the solution, i.e. break it down into smaller pieces

Who will do what?

I, Samuel Rodriguez, will be doing all of the work

When will it be done?

Week 1

  • 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

Week 2

  • 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

Week 3

  • 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)

Week 4

  • 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).

Week 5

  • Build robot skeleton and mount all devices

Week 6

Weekly Log

Week 1

  • 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

Week 2

  • 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

Week 3

  • 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.

Week 4

Week 5

Week 6

Conclusion

About

Wirelessly controlled robot that provides live video footage

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors