Rethink Phone for Visually Impaired - With a Smart Cane

by CJA3D in Circuits > Arduino

6280 Views, 59 Favorites, 0 Comments

Rethink Phone for Visually Impaired - With a Smart Cane

55edb4d6937ddbe89c000734.jpeg
Arduino Phone for Visually Impaired V1.0
IMG_8248.JPG

Here is the first prototype of the Arduino phone for the Visually Impaired using an Arduino Uno and Seeed studio GPRS shield 1.0. There are two features that this phone has, which is driven by the mode switch,just below where it say "eye" in the picture above

  • Large button for calls and text (4 call buttons in orange and 2 button in red for text)
  • When the switch is turned down the phone converts to a Smart Cane, driven by the Maxbotix ultrasonic sensor which measures distance from an obstacle and vibrates the vibration motor.This helps the visually impaired person navigate around the house.

This is some thing that I wanted to make for my friends mother, and thanks to the #rethinkphone contest I had a deadline to complete the first prototype, to get some feedback for further improvements.

I have detailed out a few enhancements and improvements in the last step of the instructable, feel free to comment with your suggestion for features and improvements.

Phone Features

55eb18992e7fb6641a000ac3.jpeg
IMG_8272.JPG
IMG_8288.JPG

The Phone has a ON/OFF switch as shown in the first picture above just below the Seeed studio GPRS shield antenna, the switch is connected to the Adafruit's PowerBoost 500 Charger .The best part PowerBoost 500 Charger is that you can charge the Lipo battery on the phone while the phone is in the ON mode.

Phone has 4 call buttons , two which you can associate 4 different phone numbers which you can change as part of the Arduino code. And also have 2 message button which you can change the text as part of the Arduino code.

As of now the Phone can only make calls , as the GPRS shield does not have the option to receive calls and you can use normal headphones and mic to connect two the two port of the GPRS shield.

The mode switch,just below where it say "eye" is use to change the phone into the smart cane mode , which basically uses a Maxbotix ultrasonic sensor which measures distance from an obstacle and vibrates the vibration motor.This help the visually impaired navigate around when they are out and about..

Collect the Electronic Components You'll Need

IMG_8219.JPG
IMG_8215.JPG
IMG_8216.JPG

Here are the list of electronic you'll need for

Arduino Phone

Smart cane

In addition here are the tools required

  • Soldering Iron
  • Solder
  • Wire strippers
  • 3D printer
  • PLA 3D printing filament
  • Ninjaflex 3D printing filament
  • Hot glue Gun
  • Cutter/saw for the PCB
  • Hobby knife

Breadboard the Circuit

IMG_8126.JPG

It is always a good idea to bread board the circuit to run a couple of test before soldering the components together.

At large the Circuit contains 3 part

#1 - Phone call and message switchesFor the 6 switches(4 call and 2 text) connect one end to the switch to GND and the other end o

  • Call 1 button to pin 4 on the Arduino
  • Call 2 button to pin 11
  • Call 3 button to pin 5
  • Call 4 button to pin 12;
  • Text message 1 to pin 3 on the Arduino
  • Text message 2 to pin 10
  • In addition connect the slide switch for the mode to pin 6

#2 - Ultrasonic sensor and Vibration motor

  • Diode is connected in reverse bias in parallel to the motor , acts as a surge protector for the spikes that the motor can produce.
  • 2N2222 transistor is used to provide current amplification
  • 0.1µF capacitor absorbs voltage spikes produced
  • 1KOhms resistor is placed in series with the base of transistor

#3 5V supply via the Powerboost 500 charger

  • Connect +ve and -ve just below the USB port of the power boost to Vin and GND of the Arduino
  • In addition connect a slide switch between the Bat - ENable - GND, for more details refer to step 10

Modify Code With Phone Number and Upload to Arduino Uno

Screen Shot 2015-08-28 at 1.36.28 PM.png
Screen Shot 2015-08-28 at 12.42.40 PM.png
Screen Shot 2015-08-28 at 12.42.45 PM.png
Screen Shot 2015-08-28 at 12.43.01 PM.png

Download the latest version of the Arduino IDE from

https://www.arduino.cc/en/Main/Software

Download the Zip file above and change the phone numbers in the PhoneSettings.h file.

In addition you will also have to modify and experiment with the OBSTACLE_DISTANCE parameter value in the file based on your preference.

Now select boards in Tools -> Board -> Arduino Uno and then select the port that your Arduino is connected to under Tools --> Port

And then hit the upload button to upload the code to the Arduino

To test your GPRS sheild with AT commands before uploading this sketch refer to http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0

Test Out the Circuit -Vibration Motor

55ed9a7c937ddbb0ad00019a.jpeg
Testing the Smart Cane Circuit

Move the slide switch to the obstacle detection mode and change the value of the OBSTACLE_DISTANCE parameter to 10 inches.

Now use a coffee cup/or anything that you find near by to act as your obstacle as shown in the video.

If you observe in the video , I am holding on to the vibration motor with my finger to prevent it from bouncing of the breadboard.

Test Sending Message and Make a Call

IMG_20150828_131420.jpg
Testing Sending Text and making a call

Now modify the mobile number in the PhoneSettings.h file.

Also modify the text message if you need to. Hit all the button and validate that you can make calls and send text as shown in the video above.

Preparing the PCB

IMG_8137.JPG
IMG_8139.JPG
IMG_8140.JPG
IMG_8146.JPG

Now place the Prema proto PCB on the Arduino and using a sharpie mark the pieces of the PCB to cut.

Using a saw/Dremel tool cut open PCB.

Once done use a hobby knife to remove the connectivity between PCB holes as shown in the third picture above.Basically we are doing this as we are going the make the PCB like a shield , which will hold the call and test tactile buttons.

Now to test that you have broken the connectivity use a multimeter as shown in the forth picture above.

Soldering the Header Pins

IMG_8135.JPG
55e26a9d50e1b6f665000708.jpeg

Now refer to the circuit in step 3 of the instructable and cut header pins which you will insert in GPRS shield which is stacked on the Arduino Uno.

Here note the pins that need to be blank and the ones used to communicate between the GPRS shield and Arduino Uno , refer to link at

http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0

Now solder the header pins to the PCB as shown in the picture above.

Soldering the Componenets

IMG_8153.JPG
IMG_8157.JPG
IMG_8161.JPG
IMG_8165.JPG

Fire up your soldering Iron and solder the buttons first to the PCB as shown in the second picture above.

Here it is a good idea to use an helping hand and use 26AWG silicone stranded wire which is more flexible when compared to normal breadboarding wire.

Be patient and take regular breaks while soldering, this step can take about 40 mins to an hour depending on your soldering skill.

Finally solder the Vibration motor circuit the bottom half of the breadboard, with the resistor connect to A0 on the breadboard above.

Finally solder the maxbotix sensor and the vibration motor.

Warning : When soldering always make sure you are doing this in an well ventilated area

Preparing the Phone to Be Battery Powered

IMG_8197.JPG
IMG_8203.JPG
IMG_8205.JPG
IMG_8207.JPG

Now solder +ve and -ve below the USB port, which is visible in the second picture above. Here the USB port comes separately and is not soldered by default.

Connect the Bat and GND to two ends of the switch

And the ENable to the middle of the slide switch which is the green wire in the pictures above.

For more info about the PowerBoost 500 Charger - Rechargeable 5V refer to the link

http://www.adafruit.com/products/1944

3D Print the Base and the Bottom Using PLA

55e71dbe50e1b655a50009f0.jpeg
Screen Shot 2015-09-02 at 12.19.06 PM.png
IMG_8156.JPG
IMG_8190.JPG

Download the 3D printing software that you printer supports, in my case i am using the Printrbot Simple Metal which use Repetier-Host as a software to

  • Slice the STL files attached, which basically means cutting the part into various layers
  • And send commands to the 3D printer while printing

Download the STL files attached and load it in your printer software and slice the file, based on your printer setting,

  • Slicing the STL files should take about 2-3 mins
  • And the print time for all the file should be about 2 to 3 hours ,and this is based on your slicer setting..

3D Print the Buttons

IMG_8241.JPG
IMG_8242.JPG
IMG_8243.JPG
IMG_8245.JPG

Download the button.stl file and 3D print the 6 button, in my case I used to orange PLA to print the call buttons and the red PLA to print the message button. Printing the button should take a max of 10 mins.

In addition download the TopWithText.stl and 3D print it.

Here I choose to paint the text so that it is visible in the pictures.

Putting It All Together

IMG_8222.JPG
IMG_8225.JPG
IMG_8230.JPG
IMG_8227.JPG
IMG_8255.JPG
IMG_8260.JPG
IMG_8263.JPG

Now its time to put it all together use 4-40X1/2 IN flat head screws to secure the Arduino Uno to the base 3D printed part

Use another screw to hold the power boost to the 3D printed part

Now secure the lipo battery with some tape so that the sharp pointed ends below the Arduino Uno done pierce through the battery and damage it.

Now fire up your hot glue gun and glue the Slide switch and the battery to the base.

Hot glue the headphones and Mic.

Now use rubber bands to secure the 3D printed parts (the next version with the latest GPRS shield will have 3D printed parts that snap fit

Glue the Maxbotix and vibration motor as shown in the picture above.

Add the button above the tactile buttons on the PCB and hot glue the 3D printed part with the text to the base.

Future Enhancements and Improvements

55edb59467400cbda5000d1b.jpeg
IMG_8268 copy.JPG
IMG_8289.JPG

Here are some enhancements and improvements I plan to implement as part of the version 2.0

  • Improve the 3D design based on feedback an make the part snap fit.
  • Adding GPS tracking, so that the text would include the GPS location