WorldWide Rover
Award winningAward-winning internet-controlled rover that lets users drive and monitor a physical robot from anywhere in real time.
Overview
WorldWide Rover proves that robotics can be controlled remotely in a way that feels immediate and practical. Users can interact with a real rover through a web interface, while backend systems keep commands responsive and reliable. It is impressive because it connects hardware, networking, and user experience into a seamless live demo that won HackUMass.
Demo
Description
Flask server and /move API The backend exposes a
/move endpoint (POST) that accepts a direction (f, b, l, r, s for forward, back, left, right, stop). Request handling uses an action lock and a stop_event: when a new direction is requested, the server signals any in-progress action to stop, briefly waits, then sets the new direction and clears the stop flag. For stop (s), it sends the command once and returns; for move commands, it loops send_command(current_direction) with a 1 s delay until stop_event is set (e.g. user hits another direction). This keeps the rover responsive to new commands from the web UI.Serial and Arduino The Pi sends commands to the Arduino over UART/serial (e.g. 9600 baud). The Arduino reads a character (
f/b/l/r/s), drives motor pins (IN1–IN4 via an H-bridge or motor driver), and the rover moves. Serial connection is opened at server startup and closed on shutdown (e.g. atexit). Python uses a serial library (e.g. pyserial); the Pi also uses RPi.GPIO where needed for local signals.Integration and deployment The web frontend (React) calls the Flask server; the server was exposed via ngrok so users worldwide could reach the Pi without port-forwarding. AWS hosted the frontend. Challenges the team tackled included latency for real-time feel, power management (12 V for motors), and reliable maze/obstacle avoidance with sensor calibration.
Tech & tools
- Python
- Flask
- Raspberry Pi
- Arduino
- React
- ngrok
- AWS
- RPi.GPIO
- UART
Highlights
- HackUMass XII — Best Embedded System winner
- Server and backend: Flask API, command handling, serial to Arduino
- Real-time remote control with ngrok for global access
- Team: Jacob, Elizabeth Peter, Ken Su, Khushii Shetty
More projects
tinyTemp
Custom tiny temperature monitor that evolved from an ATmega328P prototype into a compact ATtiny85 OLED PCB.
BareTag Tool Tracker
Smart tool tracking that helps teams instantly find equipment, prevent loss, and stay coordinated in real time.
Buffet
Automated trading system that tests strategies, learns from market behavior, and executes decisions with built-in risk controls.
HeadHunter
AI-powered job search assistant that helps people find better-fit roles faster, with smarter resume matching and cleaner tracking.
Meal Planner
Personal meal planning app that turns “what should I cook?” into a clear weekly routine with pantry awareness and shopping support.
BrickVision
Turns ideas or 3D models into buildable LEGO-style instructions, making custom creations faster and more accessible.
Pong on Assembly
Classic Pong rebuilt from the ground up in hardware and low-level assembly, showing full-stack systems engineering in action.
Custom Single-Cycle 32-Bit Processor
From-scratch 32-bit processor design that brings core computer architecture concepts to life in working hardware.
ThreadLib Disk Scheduler
C++ user-level threading library paired with a concurrent disk scheduler that coordinates requester threads and SSTF service.
Multilateration 3D Positioning
3D location engine that estimates where an object is in space and validates accuracy through realistic simulation.
RISC-V Encryption
Encryption concepts implemented at the hardware-software boundary, showing security logic at instruction level detail.
PUF Tester
Hardware security testing toolkit for measuring unique device fingerprints and reliability under real test conditions.
tinyTemp
Custom tiny temperature monitor that evolved from an ATmega328P prototype into a compact ATtiny85 OLED PCB.
BareTag Tool Tracker
Smart tool tracking that helps teams instantly find equipment, prevent loss, and stay coordinated in real time.