This simple smart cane uses an Arduino and an old cellphone vibration motor to help detect obstacles.

I wanted to make something to help the visually impaired, so I created an open-source Arduino project for a smart cane. This Arduino smart cane can assist with walking alone in new environments by taking inputs through an obstacle sensor (ultrasonic sensor) and providing feedback to the person through haptics (a vibration motor).

One day while I was out walking, I saw a blind person having a difficult time walking down a busy street. I was able to help him, and at that moment that I had an epiphany. I realized that I could use technology to assist people like him. It was that evening that I came up with the smart cane. I wanted it to be very cheap and easily replicable so even a child can easily make it from scratch in a couple of hours.

Using this Arduino smart cane, a visually impaired person can walk without anyone's help. The cane can automatically detect an obstacle and give the user a feedback response by vibrating the walking stick and giving a warning sound.

I used an ultrasonic sensor with an Arduino for detecting the obstacles. It cost me just $10 to make one. It's cheap and easy to make without the need of much soldering. Now let's get started!

Other tools needed:

  1. 3/4-inch diameter PVC pipe (for the walking stick)
  2. 3/4-inch diameter PVC elbow
  3. Insulation tape
  4. Some small screws for mounting Arduino
  5. Screwdriver
  6. Utility knife
  7. Instant adhesive glue
  8. A box for your Arduino and other electronics

How Does the Smart Cane Work?

The technology behind the Arduino smart cane is pretty straightforward. There are mainly three blocks behind it: input, controller, and output. The input consists of an ultrasonic sensor that is capable of detecting obstacles in front of it at a range of up to about 13 feet. It is interfaced to the Arduino, which determines if an obstacle is too close to the cane and triggers the output if it is. The output consists of a vibration motor to provide haptic response, and a piezo buzzer. If you want to learn more about the ultrasonic sensor and interfacing it to an Arduino, check out this tutorial from Jeff Salim.

Salvaging the Vibration Motor from a Cellphone

You'll need to remove the vibration motor from a broken cell phone, which takes care and patience. I used a micro vibrator motor from an old broken cell phone I had lying around, because it's very small and works with low voltages.

Unscrew the cell phone and disassemble all the parts as shown in the above images. The vibrator motor is located at a side of the phone's case. Carefully remove the motor from the cell phone.

Please note
: Vibrator motors are different sizes and shapes, depending on the phone.

Now solder the motor on a small piece of general purpose PCB. Then solder two wires to the terminals of the motor as shown in the above images.

Interfacing the Arduino

Now it's time to wire the Arduino! This is pretty easy and doesn't have any complicated wiring. See the schematics below and carefully connect all parts to the Arduino. I used a mini breadboard to connect the ultrasonic sensor to the Arduino using jumper wires. Other parts, like the buzzer and motor, are directly connected to the Arduino. You can see the wiring diagram below.

Here are the connections for each part:

  • Ultrasonic VCC to Arduino 5V.
  • Ultrasonic GND to Arduino GND.
  • Ultrasonic TRIG to Arduino D12.
  • Ultrasonic ECHO to Arduino D11.
  • Buzzer RED to Arduino D8.
  • Buzzer BLACK to Arduino GND.
  • Vibrator motor pin 1 to Arduino D7.
  • Vibrator motor pin 2 to Arduino GND
  • 9 volt battery RED to Toggle switch pin 1.
  • 9 volt battery BLACK to DC male power jack(-).
  • Toggle switch pin 2 to DC male power jack (+).

Now we finished the wiring!

Uploading the Sketch for the Arduino Smart Cane

Now it's time to upload the sketch. Copy this into your Arduino IDE, then upload it to your Arduino board.
#define trigPin 13
#define echoPin 12
#define motor 7
#define buzzer 6

void setup()
{ pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motor, OUTPUT);
pinMode(buzzer,OUTPUT);
}

void loop()
{ long duration, distance;
digitalWrite(trigPin, LOW); 
delayMicroseconds(2); 
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); 
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;

if (distance < 70) // Checking the distance, you can change the value
{ 
digitalWrite(motor,HIGH); // When the the distance below 100cm
digitalWrite(buzzer,HIGH);
} else
{
digitalWrite(motor,LOW);// when greater than 100cm
digitalWrite(buzzer,LOW); 
} delay(500);
}

Assembling the Arduino Smart Cane

I used a PVC pipe to make the walking stick. If you have a walking stick lying around your home, you can use that, otherwise, you can follow this step. I used a 3/4-inch diameter PVC pipe and an 'L' shaped elbow to make the walking stick. Take a look at the above images to make the walking stick and follow these instructions:

  • First, take a PVC pipe (3/4-inch diameter) and cut a piece of it that is about 1 1/2 meters long.
  • Take an L-shaped elbow and attach it to one end of the pipe.
  • Take another small piece of PVC pipe (about 4 inches long), then attach it to the other end of the elbow and glue it.
I wrapped the walking stick with black insulation tape because I like how it looks. You could even paint it.
 

Attaching the Components to the Smart Cane

This is the hardest step in this project. It took me hours to design and fix the parts onto the walking stick. Find a box that you can use to put all your electronics together. I used foam board to make a box myself. You can do that easily.

Fix your Arduino in the box using screws. Now make two holes for fixing the ultrasonic sensor on the lid of the box as shown in the above image. I attached the buzzer outside of the box for better sound. Next, I attached the toggle switch at the side of the box and made a small hole for connecting the vibration motor to the Arduino. Fix the battery inside of the box and connect the power jack to the Arduino.

Now attach the box to the walking stick. You can either use screws or glue. I used an instant adhesive because it's quite strong. After attaching the box to the walking stick, take out the vibrator motor and fix it below the elbow. I used insulation tape for this.

That's it! We just made an Arduino smart cane for assisting blind individuals. Check out the demo video:

You can continue to add more features to this project and contribute to helping people with visual impairments. HAPPY MAKING!

Suhail X

Maker Pro Logo
Continue to site
Quote of the day

-