Feel The Time

Final video


There are tactile watches on the market, and there are even haptic ones out there. The former is in wide use by the blind, and the latter is not so commonplace. But a haptic watch can be useful to the deaf-blind.

The first thing I did for this project was to design the vibration patterns. I wired a buzzer to an Adafruit Feather board, and wrote some code that would give the vibrations I had in mind.

The vibrations are as follows:

Long vibration for ones.

Two short vibrations for fives.

Short vibration, medium vibration, short vibration for tens.

The watch will vibrate ones until it gets to five. Then it vibrates the fives pattern plus ones for numbers beyond five. When it gets to ten, it vibrates the tens vibration, then adds ones and fives until it reaches two tens, and so on.

For example, for 3:49, the watch vibrates three times with the long tones for ones, then pauses for a couple of seconds to separate the hours from the minutes. Then it vibrates the tens pattern 4 times, the fives pattern once, and the ones pattern 4 times to indicate 49, or 40 plus five plus 4.

I introduced the circuit and code to power and vibrate a haptic motor. The first time I plugged things in, the motor vibrated erratically, but this meant that the circuit and the code were working to some extent.

Meanwhile I was designing the box to hold the watch components. This would consist of a laser-cut base that would be attached to velcro straps on both sides, topped with a cylindrical 3D-printed case.

The cylindrical case is finished off with a round disc with a hole on it to support a panel-mount button.

Working, Not Working

When I started changing the code, I got it into a non-working state. It isn’t easy for me to make sure I have the right amount of braces, {}, in my code, so fellow ITP first year Luming Hao helped make sure that code got cleaned up.

Another difficulty with the code was that I put a later version of the code file in the same folder as a previous version. This made the Arduino IDE think that both files were part of the same project. I found this out after some collaboration with Noah, and learned not to put things into the same folder that don’t belong together when writing code.

With my lesson learned, I had things not working again. This time one of my wires broke. This time I collaborated with Mary and asked her to wire the motor to the wrong pin on the Gemma. Twice. I would only find this out after a few hours of sleep, and a fresh batch of energy. My bad.

While my circuit was broken, I was able to work on the code to get the vibration patterns correct by using a spare vibration motor circuit I had on a breadboard.

Finally, with code in hand, and circuit a little funky, I was able to tell time haptically, if not consistently.

The following video shows me working with the haptic watch, able to tell the time.

The Swan

My final assignment for PComp was something that came to mind after hearing about Carnival of the Animals by French composer Camille Saint-Saëns. I don’t recall what podcast or perhaps NPR station the program was on, but the show host talked of the imagery of the swan moving its neck up ad down according to the melody. I wanted to build a swan that would move its wings, tail, feet and neck to the rhythm and melody of the song.

But that was not to be yet, for this semester. It would take more fabrication, programming, and solving more bugs than I had time and tolerance for.

What I built was a box with buttons. The box contains an Arduino Uno, breadboard, the Emic 2 text to speech shield, and an MP3 shield.

When the software is loaded to the Arduino, The Swan plays, and text is read by a computer voice from the text to speech chip.

When fully loaded, the Arduino has software that is a combination of three different programs: The arduino IDE example on button state detection, Tom Igoe,s MP3 Shield Intro from his GitHub repo, and his Emic2_demo from the same repo.

After building the box, I made sure each new part of the program was working. I had the TTS and button working, and got errors after bringing in the MP3 shield code. I had most of the setup working after I got a little help from a fellow first year student with the MP3 code. 

I kept changing the code since it was too large for the Uno, and I had to experiment with which pin to put my button into on the Arduino. Many of the pins were being used by the MP3 shield, leaving little to work with besides it, and the TTS chip.

I put the project to rest, and went to do the same on Tuesday evening. When I eft it, the button wasn’t working very well. My text wasn’t reading in order. 

The next morning, I recalled that the button code called for a resistor on the breadboard. Putting the resistor in made a world of difference. Now my text read correctly more often.

I played the text and music through a mixer and small amplifier, allowing me to control how loudly each pard played.

The project works well most of the time. My next steps are to include debounce to the button, and to change things around to allow me to put more text through without running out of space on the Arduino.

Braille on the P5 Canvas

After a semester of mostly bouncing balls, things changing color, inaccessible YouTube videos on how to code, I decided to work on a final assignment for Computational Media, AKA ICM, that would put braille on the canvas. Visual dots on a screen are still not useful to the blind, until it is printed on a laser printer, and put through a swell form machine. So my project is meant for a very specific audience: blind people who know a little something about programming, and have access to a swell form machine. In other words, I made this for me for now, and would love to have someone else use it.


I worked on the code with some help from fellow ITP first year Luming Hao. I talked about how I saw the code design and Luming offered suggestions, fixed my mistakes, and so on.

The entire code is based on some variables I declare at the top of the program. I declare dot size, dot distance, cell distance, and line distance. These determine the side of the circle that forms the dots, and everything else about the spacing.

Then I have a function that draws a single braille dot, and a function that builds on it to draw braille dots 1 through 6.

Then I have letters in an array containing the table of braille dots. A is dot 1, b is dot 2, c is 1-4, etc.

There are other functions that have to do with spacing, the space bar, and so on.

Finally, in the draw function, is the line 

braille (x, y, “”);

where x is the x coordinate start of the braille text position on the canvas, and y is the y coordinate start position of the braille on the canvas.

My code does not use grade 2 braille, and does not do capital letters. It cannot support much more than simple text. The smallest things, like quotes inside the text to be braille, can create undesired results. But for simple labeling, this program does alright.

Mounting Motors

Antonio shows the project in class.This assignment was to mount a motor to something, and mount something to the motor. I took this opportunity to fulfill a request from my mother to create a doll that holds a broom and sweeps the floor. Well, the real thing would be nice, but this was to be a funny toy.

I could not find a thing to mount the motor to, but I did manage to mount something to the motor. I have a servo on mounting brackets, and attached to the horn is a pretend broom, a real world paint brush I attached to the servo horn with fishing line.

Here I am showing it in class. 

This image requires alt text, but the alt text is currently blank. Either add alt text or mark the image as decorative.


Braille Writing Board Part II

This assignment prompted us to use more than one material.

For this exercise, I cut my previous braille writing board, shown here, and included other materials.


card board braille peg board.


The writing board is a template containing cut outs for where braille dots can form braille letters. The board is 10 spaces wide, and two lines tall. I laser cut this one on red acrylic.

I bought some fridge magnets and stainless steel balls to stick to the magnets. I’d fit the magnets between two pieces of acrylic, creating a back board for the balls.

But once I had all my materials in hand, I noticed that the magnets were not strong enough to stick to the balls.

My two pieces of acrylic are held together by zit ties, so I can take them apart and try and make the device fully operational with some stronger magnets.


Acrylic braille peg board.


We were exposed in class to a number of ways to make an enclosure. From buying something from the Container Store and modifying it to laser cutting panels and using stand-offs with them. I decided I’d use corner brackets, shown here.


Corner bracket.


I began by designing a box to hold a long breadboard for a project for another class. Midway into the design I changed my mind to use a different set of Arduino and breadboard inside the box.

My box was designed to hold three arcade-style buttons at the top, and holes for wires to come out the back.


Wires coming out of acrylic box.


Each panel has carefully placed screw holes for fastening the box together.

The hole measurement is the diameter of the screw, in millimeters, plus a little room for slack so the screw doesn’t come in too tight. The holes must each be a specified distance from the edge of the material, including room for any outer walls, plus the space on the brackets before the screw holes. 

I realized in mid design that I should also not place the edge of the hole on the panels at exactly the distances I measured. I must also include a little wiggle room between the edge of the panel and the edge of the screw hole to avoid things being too tight, and not fitting. I moved every screw hole towards the edge of the material both vertically and horizontally by half of the slack distance in the screw hole.

I feel I should give an example here for this technique to be fully understood. Here is an example not using my actual numbers.

Suppose a screw is 4 mm. in diameter, and I give it 1 mm. extra space for wiggle room. In this case, I’d move the screw hole towards the edge of the material by .5 mm. which is half of the wiggle room.

In the end, when I had acquired all of the materials and laser cut everything, the box fit together satisfyingly.


View of acrylic box, includes breadboard and buttons.bb


This assignment was to make five of something. While an abacus is only one thing, my version of one has 21 rods that hold 5 beads each. 


I decided to closely model my abacus after ones used at the school for the blind I attended in Brazil. It turns out I brought one from there last time I went, so I can go on more than just the memory of what they looked like.

This project was my first laser cut project ever. I worked on the design with a sighted person who assisted me with drawing the desired lines in Illustrator.

I had to acquire some materials before starting the design because the design would be based off of those materials. I got some 14-gage bendable wire, (the word bendable will be relevant later.) I also bought round wooden beads measuring roughly 10 mm. in diameter, and a rubber mat to place below the beads so they don’t move freely on the wire rods.

Abacus beads loose inside a bowl.


I designed, laser cut, and glued some of the pieces together, then moved to assembly 

Antonio putting beads through wire to build abacus.


Three of my panels have 21 holes each, for holding the hods in place. This means that the rods must fit as straight as possible from one panel to the next. but I had only this bendable wire. Remember the bendable wire? This made it impossible to fit the top panel over the rest of the assembly with all 21 rods inserting into their respective holes on the top panel.

The abacus did not get fully assembled, but I’ve since purchased some stainless steel straight rods to try again.

Close up of abacus inside locker.


Play-Testing Final Project

The piece you’re listening to is title The Swan. It was composed by French composer Camille Saint-Saëns in 1886 as part of the musical suite The Carnival of the Animals. A staple of the cello repertoire, this is one of the most well-known movements of the suite.

Saint-Saëns regarded The Carnival of the Animals as a piece of fun, and specified that it not be published during his lifetime, except for The Swan. He saw The bigger piece as detracting from his “serious” composer image. Carnival has since become one of Saint-Saëns’s best-known works, often played by the full string section of an orchestra. 

The most typical arrangement for this piece includes two pianos and cello: the lushly romantic cello solo (which evokes the swan elegantly gliding over the water) is played over rippling sixteenth notes in one piano and rolled chords in the other (said to represent the swan’s feet, hidden from view beneath the water, propelling it along[]).

Braille Writing Board

This week’s assignment was to make something on the laser cutter. Measuring is key to getting out of your material the shape you wanted. I understand this, and measuring things is one of my strengths, even imagined things. I have a natural sense for taking measurements of existing things and translating them into similarly sized other things that are still on the planning stages, and do not yet exist.

My laser cut project for this week had its origins months ago when I imagined falling in love with the laser cutter when becoming a student at ITP. Oh how disappointed I was in class last Thursday when Ben Light’s tip of the week was exactly not to fall in love with the thing.

I met up and started a collaboration with Emily, at ITP, around the laser cutter even before Intro to Fabrication began. I worked with her on what is now my braille writing board by drawing out cutouts for braille dot inserts on thick cardboard. We referenced the parameters for braille writing available from the Braille Authority of North America. I mentally increased the real life dimension of the dot and the spacing between dots to something more enlarged and that would be used with pegs to form braille letters on a peg board.

I had a problem with producing the pegs. Thankfully the problem was seen and detected before I went crazy on the laser cutter with material that is less than optimal for the tool. I thought I’d have pegs laser-cut from 1/4 inch wood, then glued two layers high. I knew this was not going to get much respect from Ben Light, probably for good reasons. 1/4 inch wood is about the absolute maximum we should be cutting on the 75 watts cutter, so I was really going to push it with the material.

The initial design for the braille writing board had holes 12 mm. in diameter. luckily I had just purchased wooden beads 10 mm. in diameter, which fit my board perfectly.

My first cardboard prototype had braille cell spacings not very distinguishable from the spaces between the cells. You see, no matter how good is my spacial imagination, it is still advised to prototype, and try again.

The second time through, i had better spacing. I took one perforated sheet of cardboard from the laser cutter and glued it against a flat board of the same size to create a backing so the beads can be put in place, and stay there.

This post currently has no pictures. It will be edited to include pictures of the project for illustration 

Haptics Final Experiment

One of the areas for growth in technology is in haptic feedback. Only recently have we been able to provide feedback artificially through haptic motors. These motors can be attached to sensors, and they can represent certain events in the environment. 

Some practical applications with these motors could include a proximity sensor. They could be programmed to vibrate faster when the sensor is closer to an object. If the sensor is mounted to a wearable, a blind person could be alerted via vibrations when they come closer to an object. This type of application of haptics is already existent in the Sunu Band, a commercially available product. However, the cane is already a good object avoidance tool for blind people, so the application of a haptics motor along with a motion sensor has limited commercial value. 

I personally would continue searching for how haptics and sensors can be used for blind, or deaf-blind people. It may be that the National Federation of the Blind’s own blind driver challenge car uses these types of sensors and haptic feedback for the driver. Nearby object avoidance is taken care of by the cane, but maybe I want other types of object detection, or haptics to represent data.

It is worthwhile then to learn where in the body haptic feedback is perceived best.

For my haptics final experiment, I decided to apply two ERM haptics motors with velcro to the body. I attached one to the wrist, and one to the forehead. The motors are flat and small enough that they can be sandwiched between two strips of velcro.

Velcro head band

Wrist band

I connected each motor to a breadboard by way of longer wires. The board is powered by a 9-volt battery running through a power supply board that can reduce power to 5-volts. A 100 ohm. resistor runs from the power rail on the breadboard to a small button, and the button powers the motor when pressed. The button is also wired to the ground rail on the breadboard.

Long wires are soldered to the motor to create some distance between the velcro attachments and the breadboard.

9-volt battery and power supply chip powering a breadboard with two buttons

The video below shows the system working. I clap when the wrist motor vibrates, and nod when the one on the forehead vibrates.