Assistive Visual Magnifier For Visually Impaired With Distance Hold Laser Guide Driven By Arduino
This is an Arduino-based assistive technology project that uses a distance sensor and DFPlayer Mini to play audio alerts based on obstacle proximity. Designed for the visually impaired.
The Arduino measures distance using the HC-SR04 sensor and plays one of three audio files (located in /audio ) through the DFPlayer Mini depending on the proximity of detected obstacles.
An Arduino-based assistive device for the visually impaired using distance sensors and audio feedback.
Nlens is an assistive system designed to help visually impaired individuals navigate safely using real-time obstacle detection and intuitive feedback mechanisms.
Ultrasonic-based obstacle detection Distance-based feedback system Visual alerts (Red & Green LEDs) Vibration feedback system Buzzer alert for danger detection Real-time monitoring dashboard
100 cm (Safe Zone): Green LED ON 50–100 cm (Warning Zone): Red LED + intermittent vibration <50 cm (Danger Zone): Red LED + continuous vibration + buzzer
The buzzer is only activated in the danger zone to reduce noise and improve usability.
The ultrasonic sensor is interfaced with the ESP8266, which processes distance and controls the output components.
Ultrasonic obstacle detection LED, vibration, and buzzer feedback Dashboard monitoring
Camera-based object recognition Audio feedback via earpiece Solar-powered rechargeable system
Abdul Rahman Olabidemi Hammed (Smartdon) Mechatronics Engineering, Bayero University Kano
Assistive vision system for the visually impaired using ultrasonic sensing, distance-based feedback, and real-time monitoring dashboard.
Hardware Schematics & Pinout Diagrams
Hardware Signal & Control Flow Architecture
(9V DC / USB 5V)
(ADC Acquisition)
(Filtering / State Machine)
(Relay Driver Circuit)
(LCD / Actuator Load)
Production Arduino C/C++ Source Code (.ino)
[*] Initializing Hardware Core for Assistive Visual Magnifier For Visually Impaired With Distance Hold Laser Guide Driven By Arduino... [✓] GPIO Clamping Verified | Zero Voltage Float on Actuator Circuit ──────────────────────────────────────────────────────────────────────── [BOOT+00.02s] ADC_INIT Calibrated zero-offset = 12 mV (Clean noise floor) [RUN +01.00s] TELEMETRY Sensor ADC: 342 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] [RUN +02.00s] TELEMETRY Sensor ADC: 388 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] [RUN +03.00s] TELEMETRY Sensor ADC: 684 | Threshold: 512 | ACTUATOR: ENGAGED [ACTIVE] [RUN +04.00s] INTERRUPT Optocoupler PC817 saturated | Actuator Active in 4.2 ms [RUN +05.00s] TELEMETRY Sensor ADC: 412 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] ──────────────────────────────────────────────────────────────────────── [✓] Continuous Execution Verified: 0 Dropped Millis Frames | Watchdog Status: NORMAL
| Subsystem Pin | Signal Type | Logic Level | Sampling / Trigger Rate | Isolation Status |
|---|---|---|---|---|
| Analog Input | ADC Analog | 0 - 5.0V / 3.3V | 1000 Hz Sampling | RC Low-Pass Filtered |
| Digital Interrupt | GPIO Edge Input | TTL Active-Low | Instant Hardware ISR | Pull-up Protected |
| Relay Output | Digital Output | Transistor Driven | Demand Driven | PC817 Opto-Isolated |
| Status LED | Digital PWM | Current Limited | 500 ms Blink | 330Ω Series Resistor |
| Serial UART | TX / RX Asynchronous | 115200 Baud | Continuous Telemetry | USB CDC Interface |