Instructables
Picture of Make and Feel Virtual Drawings

Learn to make a new haptic (Haptic perception is the process of recognizing objects through touch) device with Arduino! Here I can feel the slope of part of the drawing being touched using a servo motor. I made this for my blind friends...and for and to try out a new way of drawing! Here I used Servo motors and Arduino Uno and hacked a mouse to make our device.

Hypothesis:

While drawing blindfolded, a square in the haptic perception becomes radically different on paper. This is a problem in bridging the gap between haptic perception and the drawing interface we use. I've developed a device that gives tactile output of curvature of a drawing at a point by changing the slope of a servo motor fan. So, when drawn using this interface, the memory stores all the slopes at different points and accurately draws the shape imagined in our mind (or as we think it perceives it).

 
Remove these adsRemove these ads by Signing Up

Step 1: Materials needed

Arduino Uno (or any other Arduino will work)

Micro Servo ( https://www.sparkfun.com/products/9065 )

Mouse

Computer

Arduino Software ( http://arduino.cc/en/main/software )

Processing Software (https://www.processing.org/download/)

3 Jumper wires

External 5-6 V DC power adapter. ( There must be a terminal of this adapter, which makes it difficult to connect servo motors. So we cut the wire in between the adapter and terminal. There must be 3 wires ( earthing, positive negative). The polarity of the wires can be checked by putting multimeter across 2 wires. )

Step 2: Start drawing on Processing

Picture of Start drawing on Processing

First lets create a code on Processing, which lets you draw freehand on the computer.

Download Processing from https://www.processing.org/download/ .

Here is the processing code:

int prevX=mouseX, prevY=mouseY; //to record previous position of mouse pointer

void setup() { size(800, 800);

}

void draw() { if(mousePressed)

{stroke(0);

strokeWeight(20);

smooth();

line(prevX, prevY, mouseX, mouseY);

prevX=mouseX;

prevY=mouseY;

} }

Now you can start drawing using your own code!