Tacit Glove

The Tacit is a glove meant to replace a blind person's cane. The idea and original construction belong to Grathio Labs and has a Creative Commons license attached to it. You can read more about the project here:



The intent is for the person constructing the kit to learn basic Arduino code, electronics circuit design, and to use CAD and 3d printing for construction of shell for the circuitry to go inside for use as a glove.

After all that learning business is out of the way and the glove is complete, it will be donated for use.

Its possible that more gloves will be created in the future for continued donation, or for other uses.

Alternate Construction

Instead of using )))Ping sensors, I've opted for the cheaper HC-SR04 model. Initial prototyping will use an Arduino Nano instead of the Mini Pro.

Currently I'm considering replacing the servo feedback with a tone generator which will have an 8 ohm speaker as output. In this way the user can determine distance with sound. Uses would include the original purpose, but sighted users could make the glove a musical instrument akin to a theremin.


Tacit 1.jpg

10 Sept 11: All parts are in except the servos, switch, battery apparatus, and glove materials. I have the ultrasonic sensors, Arduino Nano, breadboard and wires for initial testing.

After downloading some code and doing research on how it works, the HC-SR04 sensor works with output to the screen in cm! I used a library for the sensor found here:


Next step: Get two sensors to work in tandem.

Tacit 2.jpg

13 Sep 11: After spending some time learning about how libraries work in the Arduino language, I've managed to figure out that multiple instances of library functions can be run simply by renaming the main function to something else. Thus the added areas allowed me to run both ultrasonic sensors at once with proper outputs in cm:

Ultrasonic ultrasonic(8, 10); Ultrasonic ultrasonic2(4, 6);

void setup() { Serial.begin(9600); }

void loop() {



You can go here to learn about Arduino library structure:


Score! Next, I'll begin working on outputs with a speaker.

14 Sep 11 Tonight I was at the Makery, and with help from the guys that were hanging out...I now have a speaker to play with!

1 4 ohm speaker
1 1K resistor

Solder the resistor to the positive lead, solder a stiff wire to the ground wire, plug the ground into ground, plug the resistor into a digital pin, in this case 11. Download TONE library:


Next: Programming it to send out tones that correspond with the distance coming from the HC-SR04s. Low for far, high for close, along a gradient. Best of luck to me...

Tacit 3.jpg

15 Sep 11 Having decided from the start not to use standard parts and configuration for this project, I can say, has been the biggest frustration of the entire endeavor. It has also been the greatest joy, as it has forced me to look into the coding, hack it apart, and put it all back together again to work with the new components and intent.

I am quite happy to say that after an entire evening mucking about with various schemes to get the sound to play, let alone play in a corresponding manner to the ultrasonic sensors...I did it!

The TacitTheremin, at its heart, works.

Next steps:
1. Optimize the code for sensor ability/redundant functions/unnecessary delays.
2. Begin CAD construction of a wearable container for the project.
3. Attach a battery and switch.


17 Sep 11 Today was spent doing a little optimizing.

1. Changed the code so that the output covers 10 notes...one note for each foot. Not sure if I'm going to stick with this mod or not.
2. I managed to find a 9 volt connector, wired it up, and took the breadboard around the room. Everything seems to be in order, with no noticeable favoritism for one sensor or the other.
3. Decided that when the time comes to mount the sensors, I'll mount them 7 degrees off horizontal to maximize the look angles, which the specs say is about 15 degrees.

Here's hoping that designing a container is as rewarding as making the circuit and logic. -T

1 Oct 11 Time hasn't been with me up to now, but it looks like I might be able to get something done this weekend. All the parts are in, and now I just have to figure out how to put them together.

Over the past week, I've consulted with Michael, a guy I know who works over at Envision. He is blind. Michael tested out the device such as it is and recommended a 4 foot radius sweep, as this is what his cane affords him. He also wants the sound to be louder and of a higher tone, so I'm going to lower the resistance to the speaker and change the tones to be higher, essentially undoing the last programming mod I did.

2 Oct 11 And then it happened. In one magical evening, Kevin and I got this Project to damn near completion. We programmed a pro mini with an FTDI cable, soldered wires to it (decided not to use perf board to save room in the box), and made lots of holes in the project box for all the components. Not too shabby.

At the end of the day...it doesn't work! The sensor lost a tiny part which we couldn't fix. Ah, but wait. There is...another.


3 Oct 11 Wow! This project has really morphed over time. I started with the intent of reconstructing the Tacit step by step, and ended up with a very different animal, thanks to using what was available, inputs from a potential user, and my fellow Makers at OMG. This has been my most satisfying project to date...and it works!

The TacitTheremin prototype uses 1 sensor and outputs sound that the user can hear, with the speaker mounted at the top of the box along with an on/off switch. I used a small project box from Radioshack for the enclosure. The wrist strap and battery holder are velcro and hot glue constructed...fancy.

To see the fancy, non detailed writeup on this project, and a movie of it in action, go here: Tacit Theremin.

Here is a copy of the code. Open source and all that. Saving the world.

  1. include <Tone.h> //This is a library for PWM audio tones
  1. include "Ultrasonic.h" //This is the library for the HC-SR04 sensor

Tone musicmaker; Ultrasonic ultrasonic2(4, 6); //transmit and receive pins for the HC-SR04

void setup() { Serial.begin(9600); musicmaker.begin(12); //Audio output pin }

void loop() {

 Serial.println(ultrasonic2.Ranging(CM));  //get distance from sensor
 Serial.println("cm"); //print to screen for diagnostics
 /* The following is the only necessary code for marrying the two libraries.  
 Given range values are within sensor limits and not erroneous, we map 
 the value to a range that corresponds with the Hz we wish to output on the output pin.
 After playing the tone, we wait 1/5 of a second, and continue.  If the input ever goes
 out of range, the sound stops.*/
int cc = ultrasonic2.Ranging(CM);
if (cc >=3 && cc <= 500) {
 int dd = map(cc, 3, 500, 3951, 523);

Active Participants

Travis Smith
Kevin Fusselman