My Journey with SafeStride: Empowering the Visually Impaired

SafeStride is an affordable, detachable smart cane unit that enhances mobility for Singapore’s visually impaired, detecting obstacles with ultrasonic sensors and a user-friendly mobile app. As part of a school project with Team T2B—comprising Milan, Ken, Gamaliel, and Yu Jie—I contributed to this innovative solution by coding, designing and executing the prototype. This project was a transformative experience, blending technical development with a mission to empower the visually impaired, particularly the elderly, to navigate urban environments with confidence and independence.

The SafeStride 1.0 detachable unit enhances traditional white canes with ultrasonic obstacle detection.

Identifying the Problem

In Singapore, over 10,000 visually impaired individuals, many of whom are elderly, face daily challenges navigating busy urban spaces. Traditional white canes, while essential, can’t detect obstacles above knee level, such as open windows, horizontal bars, or raised platforms like truck sides. Existing smart canes, priced between $399 and $1,050, are often too expensive, bulky, or complex for widespread adoption. With Singapore’s aging population growing rapidly, the need for an accessible, effective mobility solution is urgent. Our team set out to address this gap with SafeStride.

Introducing SafeStride 1.0

SafeStride 1.0 is a detachable smart cane unit that transforms any traditional white cane into a sophisticated navigation tool. Priced at SGD 47.39, it’s significantly more affordable than competitors like WeWALK ($749) or SmartCane ($1,050). The device uses ultrasonic sensors to detect obstacles up to 3 meters away, alerting users through a buzzer that simulates a vibration signal. Its compact, lightweight design ensures portability, making it easy to attach to any cane.

Our prototype, built with an ultrasonic sensor, buzzer, and microcontroller, successfully detected obstacles like horizontal bars and raised tables during testing—challenges that traditional canes miss.

The SafeStride app offers voice-activated navigation and haptic feedback for seamless indoor and outdoor mobility.

We also developed a companion mobile app with voice-activated inputs, Bluetooth pairing, and voice or haptic feedback. The app supports indoor navigation (e.g., in malls or airports) and route planning for public transportation, creating a seamless user experience.

Technical Details: How SafeStride Works

The heart of SafeStride’s prototype lies in its simple yet effective hardware and software design, powered by an Arduino microcontroller. I’ll break down the technical aspects based on the code we developed to bring SafeStride to life.

The prototype consists of three key components:

  • Ultrasonic Sensor (HC-SR04): Connected to pins 16 (trigger) and 17 (echo), it emits ultrasonic waves and measures the time it takes for the echo to return, calculating the distance to obstacles.
  • Buzzer: Connected to pin 18, it produces audible tones to alert users when obstacles are detected.
  • Microcontroller: Runs the Arduino code to process sensor data and control the buzzer.

The Code:

const int trigPin = 16; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 17; // Echo Pin of Ultrasonic Sensor
const int buzzerPin = 18; // Buzzer Pin

float duration, distance;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzerPin, OUTPUT);
  Serial.begin(115200); // Start serial communication at 115200 baud
  Serial.println("Ultrasonic Sensor Test");
}

void loop() {
  // Clear the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  // Sets the trigPin on HIGH state for 10 microseconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);

  // Print the duration for debugging
  Serial.print("Duration: ");
  Serial.println(duration);

  if (duration == 0) {
    Serial.println("Out of range or no object detected");
  } else {
    // Calculate the distance
    distance = (duration * 0.0343) / 2;

    // Print the distance on the Serial Monitor
    Serial.print("Distance: ");
    Serial.print(distance);
    Serial.println(" cm");

    // Play a melody if an object is detected within 30 cm
    if (distance <= 200) {
      playMelody();
    }
  }

  delay(1000); // Delay for a second
}

void playMelody() {
  tone(buzzerPin, 1000); // Play a 1000 Hz tone
  delay(500);            // Wait for 0.5 second
  noTone(buzzerPin);     // Stop the tone
  delay(100);            // Wait for 0.1 second

  tone(buzzerPin, 1500); // Play a 1500 Hz tone
  delay(500);            // Wait for 0.5 second
  noTone(buzzerPin);     // Stop the tone
  delay(100);            // Wait for 0.1 second

  tone(buzzerPin, 2000); // Play a 2000 Hz tone
  delay(500);            // Wait for 0.5 second
  noTone(buzzerPin);     // Stop the tone
}

Here’s how the code works:

  • Setup: The code initializes the ultrasonic sensor’s trigger pin as an output (to send waves), the echo pin as an input (to receive echoes), and the buzzer pin as an output. It also starts serial communication at 115200 baud for debugging, printing “Ultrasonic Sensor Test” to confirm setup.
  • Main Loop: Every second, the code:
    1. Sends a 10-microsecond ultrasonic pulse via the trigger pin.
    2. Measures the echo duration (time for the wave to return) using pulseIn().
    3. Calculates the distance in centimeters using the formula: distance = (duration * 0.0343) / 2, where 0.0343 cm/µs is the speed of sound, and division by 2 accounts for the round trip.
    4. Prints the duration and distance to the Serial Monitor for debugging.
  • Obstacle Detection: If the distance is 200 cm (2 meters) or less, the playMelody() function triggers the buzzer to play a sequence of three tones (1000 Hz, 1500 Hz, 2000 Hz, each for 0.5 seconds with 0.1-second pauses). This simulates the vibration alert described in the slides, warning users of nearby obstacles. If no echo is detected (duration = 0), it prints “Out of range or no object detected.”
  • Efficiency: A 1-second delay between readings balances responsiveness and power efficiency, suitable for real-time navigation.

This code ensures SafeStride reliably detects obstacles within 2 meters, aligning with the slides’ claim of detecting up to 3 meters (Page 6), though our prototype was tuned for a 2-meter range for clarity in alerts. The buzzer’s melody provides intuitive feedback, making the device accessible even for elderly users unfamiliar with technology.

Understanding Our Market

To ensure SafeStride meets real needs, we analyzed Singapore’s market of 10,000 visually impaired individuals, focusing on the 5,000 elderly who face significant mobility challenges. Our initial goal is to sell 1,000 units, targeting 20% of this segment. We identified three customer groups: visually impaired individuals, caregivers, and organizations like rehabilitation centers.

Validation was key. We interviewed 10 individuals from Dialogue in the Dark and St. Joseph’s Home, and 70% supported SafeStride for its affordability and compatibility with existing canes. A survey showed most were willing to pay SGD 40–60, confirming our SGD 47.39 price point.

Building a Sustainable Model

SafeStride’s business model emphasizes affordability and scalability. We plan direct sales at SGD 47.39 per unit (with a SGD 36 manufacturing cost) and bulk sales to organizations like the Singapore Association of the Visually Handicapped (SAVH). Distribution channels include e-commerce platforms (Lazada, Shopee) and retail through pharmacies. Future subscription services for premium app features could add value. Revenue projections estimate SGD 50,000–100,000 in Year 1, growing to SGD 250,000–300,000 by Year 3.

Line chart with SafeStride’s revenue projections, showing low (blue) and high (green) estimates over 3 years.

Revenue projections estimate SafeStride’s growth from SGD 50,000–100,000 in Year 1 to SGD 250,000–300,000 by Year 3.

Standing Out in the Market

SafeStride competes with WeWALK ($749), SmartCane ($1,050), and UltraCane ($399), but our SGD 47.39 price and compatibility with existing canes give us an edge. Tailored for elderly users, SafeStride prioritizes simplicity and portability, making it a practical choice for Singapore’s visually impaired community.

Milestones and Momentum

A visually impaired individual testing the SafeStride prototype in an urban setting, using a cane with the smart unit.

We’ve completed the prototype and conducted user testing, earning praise from visually impaired individuals and caregivers for its ease of use and effectiveness. These early successes drive us forward as we refine the device and app.

Looking Ahead

SafeStride’s future includes refining the prototype, enhancing the app with features like multi-language support, and partnering with NGOs and healthcare providers. Government grants could further improve accessibility. This project taught me the power of empathy-driven innovation and technical precision, skills I’ll carry forward.

SafeStride is more than a school project—it’s a step toward a more inclusive world. Reach out to me to learn more about how we’re empowering the visually impaired, one step at a time.