Skip to main content
Version: FILS English

VisionAssist

A wearable electronic device that enhances spatial awareness for visually impaired individuals using ultrasonic sensors and haptic feedback.

info

Author: Mahmoudzadeh Hosseini Fatemeh Sadat

GitHub Project Link: https://github.com/UPB-PMRust-Students/project-FaMaHo

Description

The Accessible Navigation Assistant is a wearable electronic device designed to enhance spatial awareness for visually impaired individuals. The core function of this system is to detect obstacles in the user's path using ultrasonic sensors and provide real-time haptic feedback through strategically positioned vibration motors.

Motivation

Traditional mobility aids like white canes provide limited environmental information. This project aims to complement these tools by offering additional spatial awareness through a different sensory channel (haptic feedback), improving confidence and safety during navigation, particularly in unfamiliar environments.

Architecture

Schematic Diagram

This is the diagram that illustrates the components and their connections.

Schematic diagram

Raspberry Pi Pico 2W

  • Role: Acts as the central processing unit of the system — it processes sensor data from ultrasonic sensors and controls the haptic feedback mechanisms.
  • Connections: GPIO pins for connecting to ultrasonic sensors, PWM outputs for vibration motors and buzzer, and WiFi module for remote configuration.

Ultrasonic Sensors (HC-SR04+)

  • Interface: GPIO
  • Role: Detect obstacles in the user's path from different angles, providing distance measurements.
  • Connections: Two sensors connected to GPIO pins on the Raspberry Pi Pico 2W. Left sensor and right sensor provide directional obstacle detection.

Vibration Motors

  • Interface: PWM
  • Role: Provide directional haptic feedback to indicate obstacles. A left-side vibration indicates an obstacle on the left, while a right-side vibration indicates an obstacle on the right.
  • Connections: Connected to PWM-capable GPIO pins on the Raspberry Pi Pico 2W for variable intensity feedback.

Passive Buzzer

  • Interface: PWM
  • Role: Provides optional audio feedback to complement the haptic system, alerting the user to obstacles.
  • Connections: Connected to a PWM-capable GPIO pin on the Raspberry Pi Pico 2W.

Power Management

  • Role: Provides portable power for the system, enabling mobility and independence.

  • Connections: Breadboard power supply connected to all components in the system.

Log

Week 5 - 11 May

  • Completed initial project documentation including architecture design, component selection, and system schematic
  • Successfully connected and tested ultrasonic sensors (HC-SR04+) with the Raspberry Pi Pico 2W
  • Implemented basic distance measurement functionality using the sensors
  • Set up and tested the passive buzzer for audio feedback
  • Created a simple program to verify component functionality and basic communication between sensors and output devices
  • Established development environment with necessary Rust crates and Embassy framework

Week 12 - 18 May

Week 19 - 25 May

Hardware

The Accessible Navigation Assistant uses a Raspberry Pi Pico W as its core microcontroller, which connects to ultrasonic sensors for obstacle detection and vibration motors for haptic feedback. The system is designed to be compact, lightweight, and wearable, with a focus on power efficiency for prolonged use.

Schematics

[Place your KiCAD schematics here]

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2WCentral processing unit with built-in WiFi40 lei
Raspberry Pi Pico 2WDebugger40 lei
Senzor Ultrasonic de Distanţă HC-SR04+ (Compatibil 3.3 V şi 5 V) (2×)Obstacle detection15 lei each (30 lei total)
Motor cu Vibraţii de 4 x 8 mm (2×)Haptic feedback3 lei each (6 lei total)
Buzzer Pasiv de 5 VOptional audio feedback1,50 lei
Breadboard HQ (400 Points)Prototyping4,50 lei
Breadboard HQ (830 Puncte)Additional prototyping10 lei
Breadboard Power SupplyPower management5 lei
Breadboard Jumper Wires SetConnections7,99 lei

Software

LibraryDescriptionUsage
embassy-rsFramework for async programming on embedded devicesCore framework for the system
embassy-rpHardware abstraction layer for Raspberry Pi PicoInterface with Pico hardware
embassy-timeTiming utilities for the Embassy frameworkManaging sensor polling intervals
embassy-netNetworking stack for EmbassyWiFi communication
cyw43Driver for the Pico W's WiFi chipWiFi functionality
embedded-halHardware abstraction layer for embedded systemsStandardized hardware interface
static-cellAllocation of static memoryMemory management
heaplessData structures without dynamic memory allocationEfficient data handling
defmtDebugging formatted outputDevelopment and debugging
panic-probePanic implementation for debuggingError handling
  1. Belt Aid for Visualy Impaired Person
  2. MOST-Ultrasound-based-Navigational-Support