Thursday, October 4, 2012

Project: Lazier Susan

Counter Culture:


The kitchen is a unique part of every house and is a central gathering point for everyone. Whether eating a meal, doing chores, sharing stories or doing homework, the kitchen provides an inviting haven to stay. With such an inviting space comes a great door of opportunity for some ingenious inventions.

I was assigned the task of designing and prototyping a novel kitchen object with any or all of the elements I have used in previous labs.

Observation:

I began by observing my own kitchen at school as well as at home. I noticed while eating dinner with my family and asking for someone to "pass me the ____" that there was a place for improvement. While Lazy Susan's exist already, I thought it would be nice to improve the existing model. Currently, a Lazy Susan spins when the user pushes the circle in a clockwise or counter clockwise direction. But what if I could make that even easier? And make people believe that they have special powers?


The Design in my Head:

And so I began to design my Lazier Susan. It would still be a circular disk moving both directions but taking out the pushing aspect. The device would be controlled by hovering your hand over a sensor to make it go in the direction you pleased!

What's so Great About It?

Upon these thoughts I realized that this device could be used for more than just the kitchen table. If your kitchen comes with a large island, the Lazier Susan would serve as a nice piece to avoid walking to the other side. And why stop at the kitchen? This device would work very well in places like the robotics lab where many people are hovered around a counter and pieces are scattered everywhere. No more wasting time to walk to your needs, just have someone place it on the Lazier Susan and then hover over the desired direction pad and let it come to you!

The Dirty Work:

We started by getting just the breadboard and code to do what we wanted before adding the actual pieces. Using our previous knowledge of servo motors and photo resistors, we developed code to make the motor go one way when covering one photo resistor and vice versa.

Next, we took a piece of plywood and cut out a large circle. We then attached it to the servo using glue and screws and attached that to a wooden base for stability.  



Because the diameter of the circle was so large, we wanted to give it more support for weight so we decided to construct platforms with wheels so when it spun the wheels would help it turn.


We then disconnected the photo resistors from the breadboard and placed them on the platform. We made them visually more appealing by creating foamcore platforms, one on either side, so users could understand how it works.

Demo:


Problems:

At first, our design included buttons and a musical tone that played as it spun. However, the delays on the song conflicted with the delays we wanted to give the circle so we decided to take it out and improve the interaction with users by making the buttons photo resistors instead. 

The plywood we used unfortunately was not completely flat and therefore we ran into problems as it was spinning. Instead of a steady spin, the device did lots of wobbling. To fix this problem, we included the wheels to support the weight and lessen the wobbling. 

In order to keep the circle still until the photo resistor is covered, we did a "calibration" that finds the average light from the resistor when first started and then when it is given less light than the average it tells it to spin. 

Tuesday, October 2, 2012

Lab: Analog Output

Overview:

The purpose of this lab was to familiarize myself with performing analog output with motor, servos, and piezo elements.


Pulse-Width Modulation:

Pulse-Width Modulation is a technique I used in order to get analog results (a range of results i.e. 0-255) with digital means (on or off). In order to make the digital output reflect an analog output, I can change the amount of time the light is in an off and on state. For example, If the light switches on for 1.5 milliseconds and off for .5 milliseconds then back to on repeatedly, the light would shine about 75% of its brightness. If the light is on for less and off for more of the time, the light will be more dim. 

I connected a motor to the breadboard controlled by a potentiometer from the analog input side of the Arduino. When I turned the potentiometer one direction the motor would increase speed, and when I turned it the other way the speed would decrease. I also used Serial.print in my code in order to see the speed increase/decrease on the monitor.


A Single Servos:

While the motor from the last circuit helped demonstrate analog control, the motor is weak and can be stopped easily. Servos can also be used to control but because they include a small gearbox inside they give a more powerful movement and can also make it easier to control. The servo has 3 wires: signal, power, and ground.

I connected the Arduino to the white wire (signal) of the servo, the red wire (power) to the voltage, and the black wire (ground) to the ground. The code was a continuous loop making the servo "sweep" from side to side from 0 degrees to 180 degrees.


Music:

A piezo element allows for an output of sound. It works by creating a "click" for every pulse of current it is given. To make a song, I have to give it current at the right frequency. If you want the note A, the frequency will have to be 440 times a second. The frequency is so fast that the output of sound will run together and give you notes!

I connected my Arduino to my piezo element and gave it code that sends the correct frequencies to the piezo to create a the right tone.


Problems:

I ran into a problem while adding the potentiometer to my PWM circuit. The wiring was not correct so I checked myself by looking back at a previous lab to connect my circuit correctly. If you run into a problem with an addition to your circuit, try getting to addition to work by itself (in my case the potentiometer and an led) and then connect it to your current circuit the correct way.


Links:

For more information on analog outputs:

Monday, September 24, 2012

Lab: Analog Input

Overview:

The purpose of this lab was to practice preforming analog input with the Arduino.

Twisting:

For this circuit, I used a potentiometer connected the pins used for analog input which take a voltage (say 5 volts) and convert it to a digital number between 0 and 1023 (which is 5 volts). This is useful for a potentiometer because it allows a varying amount of resistance. I added an LED so that the varying resistance could be seen and then gave it code that make the LED blink at decreasing and increasing speeds depending on the twisting of the potentiometer.

Light:

I used photo resistors which sense the relative light for this light circuit which is useful for when I want it to be environmentally controlled. When the sensor is well lit a low value of light is produced, but when the sensor is in the dark it will produce a high value of light.

Temperature:

I used a temperature sensor made by another student which allowed me to measure temperature by an integrated circuit inside of the transistor. The Arduino takes in the values as digital values and then I used some math to convert it to degrees. I then used the debug window to output the value on the monitor!

Squeezing:

For this circuit I used a force sensitive resistor that is similar to a potentiometer used earlier except that its resistance varies with pressure instead of position. When there is no pressure the resistance is high and low when the pressure is high.

Problems:

When working with the temperature sensor, I continued to get incorrect readings. The problem was in my code. Make sure your conversions make sense mathematically or the values will be incorrect.

For more Information:

Monday, September 17, 2012

Lab: Digital Input/Output

Overview:

The purpose of this lab was to learn how to preform digital input and output with the Arduino and materials such as LEDs, motors, and buttons. 

Blinking LED:

For my first circuit, I made a simple blinking LED by delaying it while it had power and then again when it did not have power. 

I then improved upon the simple circuit by controlling the brightness of the LED like so:

8 LED Fun:

Next, I assembled a circuit that contained 8 LEDs and controlled then with code that included for loops (used to run a piece of code multiple times) and arrays (for managing a group of variables more easily) to keep the program small.

The first circuit turned all the LEDs on and then turned them all off. The code also included other fun animations such as turning on all LEDs one at a time and turning on all LEDs starting from the inside and working its way out giving an in and out effect.

This video shows the circuit doing all of the animations one after another:

Spin Motor Spin:

For this circuit, I used a transistor and a motor in my circuit which turned the motor on. I then played around with the code and made the motor accelerate and decelerate.

Button Pressing:

I added input to this circuit by included 2 small push buttons. I changed the circuit so that one button turns the LED on and the other turns it off. To make it better, I then made one button increase the brightness of the LED and the other button decrease the brightness.

State and Debouncing:

This circuit has a single push button. When you push and release the button the LED stays on until you push and release it again.

Reaction Challenge Game:

I designed and implemented a reaction challenge game that demonstrated my mastery of this lab. It involves both digital input and output. For this game, I set up a line of 7 LEDs with the one in the middle being red to indicate its importance. I also included a red LED and a green LED on the end for "win" and "lose". On the opposite end is a large push button for input.

The object of the game is for a player to push the button when the middle LED is lit. If the player does so, the green LED lights up and if not the red LED lights up. 

There are 8 levels to the game and each level has an increased speed. The player has 3 lives and once they are used up the row of LEDs lights up the number of LEDs that matches the level the player got to.





I used many for loops and functions in this game for things like traversing through the LEDs, losing lives, and "winning" or "losing". To see the whole code that was used it can be seen here: The code

Problems:

During this lab, I encountered problems with weaker resistors or LEDs. It was important for the bulbs to be of equal brightness for aesthetic reasons so using trial and error I found LEDs that worked for me. Another way to do this would be to read the resistors and know the level you are working with.

Links:

For more information on digital input and output:

Sunday, September 16, 2012

The Design of Everyday Things


The Psychopathology of Everyday Things is a chapter in the book The Design of Everyday Things by Donald A. Norman. This chapter addresses the frustration and psychology of everyday things as well as great techniques to provide well designed products. He gives numerous examples of everyday things that work along with big design failures. Here are some important ideas I drew from Norman's first chapter:

  • Questions that users have about a device should be answered easily by the design, without the need for words or symbols or trial and error.
  • Designers should help the user by showing only the things that need to be visible on a device. The lack of visibility makes a device difficult to operate while an excess makes devices seem intimidating.
  • Affordances, the perceived and actual properties of something, give strong clues as to how it works. Use this to your advantage instead of failing the design with pictures, labels, or instructions.
  • If something happens right after an action, the user automatically believes that it is a reaction to their action. If the behavior was not caused by the action, it was poorly designed and allowed false causality.
  • If designers know how the mind works as well as how things work they can take advantage of the things people are expected to know.
  • Good design makes things visible with good mappings, natural relationships between controls and the controlled, and gives single controls single functions. What the user intends for the control to do happens and it is rational, not illogical, and consequential.
  • Bad design happens when the number of actions exceeds the number of controls because the actions do not come naturally to the user. They will be required to remember a pattern for the correct action.
  • A good designer takes time to consider the use of the device, the way that it can be abused, the errors that can be made, and the functions people will expect.
  • Technology is a paradox: The same technology that makes life easier by giving us more control and options also complicates our life by making the devices so complex that people cannot learn how to use it.
  • The paradox is no excuse. Using good design principles can make the complexities manageable to the user. 
These ideas will be very beneficial to me for the remainder of this course as well as afterward even though it was written in the 80's because the concepts of good design are still relevant today. As I continue in physical computing, I will use these ideas to create well designed devices that follow his guidelines and give the users an enjoyable experience. 

Monday, September 10, 2012

Lab: Foam Core Construction

Overview: 

In this lab, I learned how to construct a simple box made of foam core by first mastering the creation of corners (joint, lap, and larger radius) then developing a larger box.

Getting Started:

Before I began cutting the foam core, I familiarized myself with the tools and tips. 
  • The X-Acto knife is the most important tool for this lab and keeping it sharp is imperative.
  • A metal straightedge is helpful for keeping sides straight and at 90 degree angles. 
  • A large and cut proof surface keeps the knife from dulling and simplifies the work.
  • Adhesives like hot glue are important because they hold separate parts together (lap joints and folds)
  • Proper cutting techniques
    • use the whole blade instead of just the tip
    • don't cut through foam core all at once
  • Joining techniques include sharp, lap, and larger radius joints.
After understanding the basics, I began each corner the same way. I started out by using the metal straightedge and the X-Acto knife to give me straight sides and then to make the corners perfect 90 degree angles. Once complete. I was ready to start on the individual joints.
Cutting straight edges with the X-Acto knife and the straightedge.

Joint: Sharp

I cut through the straight-edged rectangle with the knife to the second sheet of paper (TO not THROUGH) and then bent the foam core back on itself to reiterate the cut. I then took the opposite end of the knife (being careful of the sharp edge) and forced a furrow along the line multiple times until the furrow is as deep as the thickness of the foam. Then I rotated the knife in the furrow to mold it into 45 degree angles.
Furrowing the foam core into a 45 degree angle. 
Using the hot glue to hold the sides together, I folded the foam into a 90 degree angle and glued along the cut line. I allowed the glue to dry before letting the foam core sit on its own. 
Holding the foam core at a 90 degree angle until the glue was dry.
The completed sharp joint.

Joint: Lap

Starting again with the straight-edged rectangle, this time I cut the foam core all the way through to give my two separate pieces. I laid one piece flat on the table and placed the other perpendicularly and flush on top of it. With my knife, I made soft slits where the vertical edge met the horizontal surface. This gave me a line of equal thickness as the width of the foam core. I then followed the lines with a deeper cut to the opposite side but not through it. I "flicked" off the edge of the cut side with a flat head screwdriver being careful not to break the back paper (just taking off the top layer and the foam inside). I ran the hot glue gun on the edge with no foam and then pressed my second piece directly on to the flap perpendicularly from the first piece creating a 90 degree angle. 
The first piece after cutting the edge to equal the width and flicking off the top and middle layer.
Completed lap joint.
Completed lap joint (you can see how the two separate pieces are joined perpendicularly to one another)

Joint: Larger Radius

This joint is a little more intricate than the others. Starting with the same straight-edged rectangle, I worked from the center of the piece and cut out 1/8" strips of foam, going about halfway through and removing the top layer of paper CAREFULLY leaving the foam attached. Then I bent the foam closed going past the intended angle. If you are not satisfied with your angle, you can cut out more slits in the foam until you get a good angle. I then hot glued over the notches and set my desired angle. 
Cutting the small slits in the foam board. 
Completed larger radius joint. 

Simple Box:

With all the joint practice, it was then time to put my knowledge to work and create a box starting out with two squares and one longer rectangle of foam core. Starting out at one end of the rectangle I measured three inches from the edge, and using my straightedge I cut a deep slit. I used the techniques from the sharp joint and made the first joint. I then measured five inches from the new edge and created another sharp joint. I continued the three inches and five inches once more until I had a cube shape with some excess overlap. I cut the excess off with a knife and made a lap joint to hold the two unattached edges together. I then measured the openings of the box on both sides and cut the measurements out on the two square pieces. I then made lap joints from these pieces and hot glued one to its appropriate side. With the last opening I also did a lap joint; however, I did not glue the pieces together! Instead I just made very exact measurements so that the pieces fit together tightly, but were still able to be taken apart when needed. This is important so that I can use the box to hold the breadboard or whatever else needs to be inside. 
Creating the sharp joints for the three corners.
First joint completed.
Second joint completed. 
Four joints completed!
After assembling the two sides!
All in a day's work in the lab!

Problems:

When working on the larger radius joint, I found it difficult to only remove the top paper layer and accidentally removed some foam. This was difficult because the paper was pre-laminated and therefore very attached to the foam. Use patience when removing this section because you do not want gaps in your joint. 

Helpful Links:

For more information about foam core construction:

Sunday, September 9, 2012

Imaginary Expressive Object




I came up with an imaginary expressive object called a Toilet Paper/Paper Towel Wall Storage. Having this device is convenient for everyone because it gives a nice storage place for the paper saving counter and cabinet space, and it makes sure you know when you need more; before it's too late!

This device specifically is for anything cylinder shaped that needs storage, but specifically toilet paper for the bathroom and paper towels in the kitchen. You can open the device from the wall and fill the bin up with your rolls. As a roll becomes empty, all you have to do is take the empty roll off and the device will take a new roll from the storage and bring it to the front. When there is one roll left inside the wall, the device will show a yellow light letting you know that you need to restock. When it is completely empty, the light shines red. When there is plenty in storage, the green light stays on.

The device could either be made to feel when the roll is empty and refill itself, or it there could be a way for you to push a button and it would then get a new roll. The device would be pretty simple and self explanatory because people can easily associate green with good (or full), yellow with warning (getting low), and red with danger (empty).

This device could be necessary because will uncluttered the home (or at least help!). It also serves as a helpful reminder for when you need to go to the store for more.