← Back to Projects

Rescue Rover

An autonomous Arduino-based rover designed to simulate search-and-rescue operations through obstacle avoidance, boundary detection, and color-based target identification

ArduinoRoboticsAutonomous SystemsI2C CommunicationHardware-Software IntegrationEmbedded Systems

About This Project

The Rescue Rover is an autonomous search-and-rescue simulation developed for my CS 362 (Computer Design) course at UIC. The rover patrols a predefined area, avoids obstacles, detects boundary limits, and identifies target objects using infrared, ultrasonic, and RGB sensors. When a goal object of a specified color is detected, the rover halts, activates visual and audio alerts, and resumes patrol once the object is removed. The system is powered by four Arduino Uno boards communicating via I2C, separating sensing, control logic, motion, and output responsibilities to improve reliability and modularity. Built alongside Alexa Jimenez-Munoz, Darshan Zaware, and Mihaela Harizanova.

Key Features

  • Autonomous navigation with obstacle avoidance and boundary detection
  • Color-based goal object identification using an RGB sensor
  • Multi-Arduino architecture with I2C master-slave communication
  • Real-time feedback via LEDs, LCD display, and buzzer alerts
  • Fully autonomous operation controlled by a single on/off input

Technologies Used

  • IDE: Arduino IDE
  • Arduino Uno R3
  • C / C++ (Embedded)
  • I2C Communication (Wire.h)
  • Ultrasonic Sensor
  • RGB Color Sensor (TCS3200)
  • Infrared Sensor
  • DC Motors & L293D Motor Drivers
  • LCD Display
  • LEDs & Piezo Buzzer

Challenges & Learnings

Challenges:

One of the biggest challenges was coordinating communication between four Arduino boards using I2C while maintaining reliable timing and state synchronization. Sensor placement and calibration required extensive testing, particularly aligning the ultrasonic and RGB sensors so that object detection and color recognition did not interfere with each other. Power inefficiency was another challenge, as the rover required multiple 9V batteries and frequent replacements during testing. Debugging motor behavior, turn logic, and I2C data transmission also required multiple design iterations. Another issue faced was transporting the rover safely since it was big and I was tasked with taking it home and bringing it back to campus for team meeting. Thus there were a lot of pieces we decided to hot-glue onto the rovers build near the end.

What I Learned:

This project provided hands-on experience with embedded systems design, multi-microcontroller communication, and real-world hardware debugging. We learned how to architect modular systems by separating sensing, decision-making, and actuation across multiple controllers, and gained a deeper understanding of sensor calibration, power management, and timing constraints in autonomous robotics.

This project was created in October - December 2025