Introduction: Haptic Interface Arduino Prototype
This is is a simple guide to constructing a prototype of a haptic interface. The final product will be able to manipulate a series of eight vibration motors using user input to the Arduino serial monitor on the computer. A haptic interface is meant to communicate information through touch, in this case through different sequences of vibrations (similar to a cell phone set to vibrate). The coding for the prototype is malleable enough to include more motors and different sequences of vibration.
The purpose of this prototype is to provide a base system off of-which new prototypes can be constructed (as I had to start from scratch when I needed one).
Essential materials include:
- An Arduino Uno kit (or equivalent materials)
- Eight coin vibration motors
- A roll of 14 gauge electrical wire
- A roll of masking/painter's tape
- A pair of pliers
Step 1: Preparing the Vibration Motors
Using the pliers, cut sixteen 5 ft. lengths out of the 14 gauge wire, stripping either end as you go; then carefully strip the wires coming out of each vibration motor. For each motor, wrap either wire around one end of a separate 5 ft. length of wire (ensure that the other end is not attached to anything, these ends will be used to plug into the arduino breadboard). Be sure to tape over the stripped sections of wire to avoid shorting the circuit. Finally, tape the two wires together to keep them from tangling with other pairs, feel free to label them so as to avoid confusion.
Step 2: Making the Circuit
Here is a graphical depiction of the circuit that will enable the prototype to work, be sure to connect the Arduino board to your computer through the USB cable. All of the wires (except for the ones labelled 4), sensors and resistors can be found in the Arduino Uno set.
In the graphic:
- A potentiometer to adjust the voltage going to the motors
- A push button that when pressed, takes note of a point in time in the program
- A 330 Ohm resistor
- Each pair of wires are connected to a vibration motor
Step 3: Programming the Arduino Board
With the circuit ready, plug the arduino board into your computer and open the Arduino code compiler. Be sure to open up the serial monitor as you will need it to send instructions to the board. Then download the below arduino file and upload it to the board.
Step 4: Using the Prototype
As soon as the program starts, it should display "Begin" in the serial monitor to indicate that you can enter your commands. Valid user inputs are the numbers 0-9, where 0 turns off all motors, 1-8 activates motors 1-8 respectively (as labelled in the code) and 9 activates all of the motors at once.
When you enter an input, it will print out the corresponding sequence number and begin counting the time since the beginning of the program along with the voltage going to the motors, feel free to turn the potentiometer to adjust the voltage. Pressing the push button will result in the program inserting a note of interest between the time and voltage readings.
Now you have a functioning haptic interface prototype, for those more experienced, you can adjust the code to suit your needs. For my purposes, I attached the motors to a belt, but feel free to configure them in whatever way is most convenient.