To alert the user of their goal being reached, and to aid with feedback in the setup process, each GLANCE is equipped with subtle LED backlighting. The big challenge with LED’s is diffusing the light in an elegant way. I chose 1/4 inch frosted acrylic to aid in the diffusion, but still needed to place several LED’s around the interior to create a more even glow.
I am mostly happy with the result, but I know I could do better with smaller or more LED’s.
The LED’s pulse slowly when GLANCE is being configured, and when the user reaches their goal.
To attach the backplate to the wood I used threaded inserts, 4-40 machine screws, and my trusted friend with drill bits, Kina. The inserts are hammered into a hole in the wood, and contain screw threads on the inside so that the screw can be loosened and tightened over and over again without stripping the screw. I was a bit weary about using them at first, but they turned out to be an absolute necessity!
Kina taught me a trick to make the hole the perfect depth — measure the exact depth with calipers, then place a piece of tape on the drill bit at that location. Then, you have a visual, consistent cue to let you know how deep to drill! Genius!
First we drilled holes the width of the screw into the plastic. Then, we needed to counter sync the screws into the acrylic so that the acrylic could lay flush on the wall. The counter sync drill bit did a great job but we had to go very slowly so that the acrylic didn’t crack. A quick pre-drill for the picture-holder nails and all the pieces were in place!
The finish of GLANCE is a big deal. How, as a first time wood-worker could I make something look classy? At the recommendation of Ben Light, I looked into Tung oil and Danish Oil. If found that Danish oil gave me a nice color, and some varieties even came with stain in them.
Because my two GLANCE objects were made of two types of wood, I decided to try one in a natural shade and one in a dark shade.
The process was much easier than regular stain – you just paint it on, let it sit and wipe it off later according to the directions. I tested the finish first on the scraps of wood from the original cut.
I was impressed with the consistency of the finish even though It had not been a perfectly even application.
Then, after drying for a few days, I tested the acrylic paint on top, and a layer of polyurethane. I decided that they polyurethane looked too shiny, so I decided against it. I may investigate the matte finish polyurethane in the future.
The track and backplate needed to be cut out of acrylic.
This was difficult because the nature of the wood causes it to warp a bit after cutting. I let the wood sit for 3 days, then scanned the piece on front and back to custom fit the opening and the backplate. I had to be sure that the plastic fit snug with the wood but also that the track be a perfect circle for the motor mounted at a central point.
I then traced the scan in illustrator and cut a test out of paper before taking it to AMS to have it cut. This method worked nicely and was way more accurate than measuring any other way.
I used Tumult Hype to prototype the interaction of my wireframe. I will ask the testers to set up a Glance with a FitBit that shows your step count.
Click on the image to play:
I have had success getting my daily step count from my FitBit to display on my motorized slide potentiometer, (circuit below) but then I ran into a problem: My FitBit was out of battery, and showed only “0” steps for the day. (I lost my charger– ugh! everything should be USB compatible without a stupid dongle charger!)
Anyway, I realized that I needed another way to control my device for testing purposes and to demonstrate its function, so I don’t have to do jumping jacks throughout my thesis presentation to show it change.
I decided to create another webpage that could communicate with the slider as if it were the FitBit. I could run the server that looks for FitBit on my laptop, or I could run this new one for testing purposes and not need to change the code on my Arduino.
On this page, moving the slider would set the same value as the FitBit (“steps”).
The trouble I had, and have been having, is understanding the difference between data types when sending data between code languages, across the internet, or from API’s. This is a really hard thing for me to grasp. In this case, I mashed up the “Express Basics” and “JS Client Thermostat” examples from Tom Igoe’s network examples. I discovered that after receiving the value of the slider (example “14” above) on the YUN, it was in Ascii.
So, I would need to convert the value to a string on the server:
(My first try is still commented out)
And then convert it back into a number on the Arduino side:
Ok, so this seems to be working! OMG so happy! Thanks to Tom for helping me understand what needed to be done.