Afzan Khan
afzanlearns
Back to Projects
ArduinoC++Embedded SystemsHC-SR04NEO-6M GPSMPU6050

NavAssist

About the Project

Solo-built smart wheelchair navigation & safety prototype combining obstacle detection, motion sensing, and GPS tracking for safer, more independent mobility.

NavAssist photo 1
NavAssist photo 2

Overview

NavAssist is a fully functional embedded system designed to enhance the safety and mobility of individuals using wheelchairs. Built entirely solo as a first-year engineering project, it combines real-time obstacle detection, motion analysis, and location tracking into a single responsive unit — going beyond a classroom demo into a working prototype with genuine assistive-tech potential.

This build is a scaled-down proof of concept — a miniature chassis standing in for a full-size motorized wheelchair. The intent was never to build a toy car; it was to demonstrate, at small scale, exactly how a real wheelchair could be retrofitted with the same sensors to protect people who are physically cramped, visually impaired, or otherwise need assistance getting around safely. Every component here does the same job it would do on a full-size chair — just proven first in miniature before it's worth the cost and risk of building full-scale.

The system operates autonomously once powered on: it continuously scans for obstacles ahead, alerts the user audibly if something is in the path, tracks acceleration/orientation for stability monitoring, and logs GPS location — all while allowing direct manual control via a physical switch.


Why I built this

Assistive technology sits at an intersection I care about — hardware, real-time systems, and genuine human impact. Rather than build another generic line-following robot, I wanted a project that mirrored a real-world mobility aid challenge: helping wheelchair users avoid collisions and giving caregivers a way to track location, all through affordable, accessible components.

The people this is actually for are the ones who can't easily judge distance or react quickly to an obstacle on their own — someone with limited mobility who can't twist around to check what's behind them, someone visually impaired who can't see a step or a wall ahead, or anyone navigating a space solo without a caregiver present. A wheelchair fitted with this kind of system doesn't replace the user's control — it just gives them a second layer of awareness and safety they wouldn't otherwise have. That's the entire point of NavAssist: prove that this layer of protection is buildable with cheap, accessible components, small enough to prototype on a desk, before ever needing to justify the cost of building it into a real chair.


System Architecture

At the core is an Arduino board, programmed in C++ via the Arduino IDE, acting as the central controller reading sensor inputs and driving outputs in a continuous loop.

Components and their roles

ComponentFunction
Arduino (Uno-class board)Central microcontroller — runs the main control loop, reads all sensors, triggers buzzer alerts, and processes switch input
HC-SR04 Ultrasonic SensorEmits ultrasonic pulses and measures echo return time to calculate distance to the nearest obstacle ahead — the core of the real-time collision-prevention logic
NEO-6M GPS ModuleCommunicates via serial (UART) to provide live latitude/longitude coordinates, enabling location tracking with future navigation potential (e.g. route logging, geofencing for caregivers)
MPU6050 (Accelerometer + Gyroscope)Provides 6-axis motion data — tracks acceleration and rotational movement to help monitor ride stability and detect abnormal tilts or sudden stops
Buzzer Alert SystemTriggers an audible warning the instant the ultrasonic sensor detects an obstacle within a critical threshold distance, giving the user immediate feedback without needing to look down at a screen
Manual Switch ControlAllows direct user-operated control over movement, ensuring the system supports manual override rather than being fully autonomous — important for real-world safety and user trust
Battery + power switchPowers the entire system independently, allowing the unit to move and operate untethered — a full standalone build, not just a bench-tested prototype
Motor + wheel assemblyConverts control signals into physical movement, allowing the system to demonstrate real-time navigation and obstacle response rather than just sensor logging

How it works (data flow)

  1. The HC-SR04 continuously pings for obstacles in front of the wheelchair
  2. If an object is detected within the danger threshold, the Arduino immediately triggers the buzzer to alert the user
  3. Simultaneously, the MPU6050 feeds motion data to the Arduino, allowing basic stability/motion monitoring in parallel
  4. The NEO-6M GPS continuously reports position data over serial, laying the groundwork for future location-based features
  5. The manual switch lets the user override or directly control movement at any time, keeping a human decision-maker in the loop rather than full autonomy
  6. All of this runs on a self-contained battery-powered chassis, meaning the system works independently on real terrain, not just on a lab bench

Design Philosophy: Built Solo, By Necessity and By Choice

This project was intentionally built individually rather than in a team. Working solo meant taking on every role — hardware design, wiring, firmware logic, debugging, and testing — without the ability to delegate or fall back on a teammate's expertise in one particular area.

That constraint became the project's greatest teacher: debugging sensor noise, tuning ultrasonic thresholds, and managing power draw across multiple modules all had to be solved independently, deepening a much broader hands-on understanding of embedded systems than a divided team project typically allows.

"Individuality can sometimes outperform teamwork — not because collaboration isn't important, but because working solo forces you to grow in every direction. You become the designer, the engineer, the troubleshooter, and the learner — all at once."


What This Project Taught Me

  • Real-time sensor fusion — combining distance, motion, and location data into one coherent control loop
  • Practical embedded C++ — timing-sensitive code for ultrasonic pulse measurement and serial GPS parsing running concurrently
  • Power management for standalone, battery-driven hardware
  • The engineering value of manual override — designing systems that assist rather than replace human control, especially critical in assistive tech contexts

What's Next

Future iterations could include:

  • GPS-based geofencing alerts for caregivers
  • Bluetooth/WiFi telemetry to a companion app
  • Replacing the single ultrasonic sensor with a wider-coverage array (multiple HC-SR04s or a LIDAR module) for more complete obstacle mapping
  • Voice/audio feedback instead of a single buzzer tone, so a visually impaired user gets directional cues (e.g. "obstacle ahead," "obstacle left") rather than just a generic alert
  • Scaling the same sensor logic and control loop onto a full-size motorized wheelchair chassis, which was the underlying goal of this prototype all along

Tech Stack

Arduino IDE · C++ · HC-SR04 · NEO-6M GPS · MPU6050 · Embedded Systems · Assistive Technology


Built solo as a first-year engineering student — from wiring to firmware to final assembly.