Thursday, June 25, 2009

HugCoat v1.0


The Printing Press

The Telegraph

The Telephone

Television

Personal Computers and the Internet

All of these important technological advancements have at their core the concept of telepresence: the ability to extend one's presence and reach of communication across a long distance. Perhaps the most influential inventions leading to our contemporary state of ubiquitous and instantaneous long-distance communication.

We are now surrounded by innovations that extend our ability to convey information to virtually anywhere on the planet. At any moment, via social networks, blogs, my cell phone , etc, I have the ability to receive and transmit anything to just about anyone.

In the long march towards constant telepresence, technology has rarely, if ever been applied to our immediate and personal interactions in physical space, the kinds we have with fellow humans every day. Indeed, actual presence social interactions have remained fundamentally untouched by technology.

In an increasingly technologized world, it is sometimes easy to forget how to interact with humans without the comfortable distance created by technology and text-based communication.

This is the thought process that launched me into my final project: Instead of using technology exclusively to extend our presence and communication to long distances, how can we use technology to improve our immediate and physical interactions?

Often we find ourselves greeting others in passing, on the street or at social gatherings. It is proven that a large percentage of what we communicate to others is sent via body language, and our bodies convey many things that are not under our control. Is it possible for us to use technology to further control our body language and thus smooth out our daily social interactions?

The hug has become a standard greeting between friends and acquaintances in America, but things do not always go as smoothly as we would like. Often complicated questions arise in the moment right before a hug takes place. Questions about positioning, closeness, duration, etc. are common. This sort of confusion can lead to limp, unfulfilling hugs that end up as a quick and awkward sort of touch, or the opposite occurs, and, not knowing when to let go, one or both parties might hang in just a bit too long, leading to another kind of quiet awkwardness.

My project, the HugCoat, currently version 1.0, seeks to remedy this kind of awkward exchange by providing automatic protocol and tangible feedback into the situation. By alerting the user via a small vibration motor when a hug is complete, it allows one to approach a hug with confidence. It is much easier to go in for a full, hardy sort of hug when you know for a fact it will go on for an acceptably short, but still fulfilling duration.

Designed within an attractive sport coat, the HugCoat can be worn on a daily basis, as part of a regular wardrobe. It will come in handy particularly at parties and other medium to large social gatherings, where one is likely to come into contact not only with close friends, but also relatively familiar acquaintances, the kind of people with whom awkward hugs most regularly take place.

The HugCoat is particularly for those who may find that they have trouble empathizing in immediate space with others, due to personal social discomfort or as a side effect of too much technologically based communication. Certain people just have trouble pulling off proper hugs. However, the HugCoat is not limited to this demographic alone. At some point almost everyone feels confused by modern social rituals, which are often codified in a sense, but not in a direct and obvious way. Through innovations like the HugCoat, we might all be able to smooth out our social interactions, and learn to empathize with machine prescision.

Tuesday, June 16, 2009

H-Bridge Lab



After the H-Bridge lab, I'm really starting to see even more how with the Arduino and a few other components you can control just about anything you want. I'm tempted to get a few motors and sensors together to make some kind of small robot or other moving object. It looks like we're coming full circle in the class, now with the ability to use motors to actually change and control physical space. The only difficult part of the lab for me was getting the H-Bridge to stay in my breadboard. The legs were a little too springy and didn't want to straddle the center piece. I ended up holding it in while I tested the motor.
I went on to assemble the gearbox that comes in the lab kit, and hook it up to a motor and the circuit. The decrease in speed/increase in torque is immediately apparent on the 1:60 gearing.

Thursday, June 11, 2009

High Current Loads Lab



For this lab I used the small DC motor and 12v power supply that came with the lab kit. Now that I am aware of ways to use higher current devices concurrently with the Arduino, I'm inspired to think of ways to use the Arduino to more directly affect physical space, The only problem is now I have to figure out how to connect motors to other things to make something interesting.

Serial Duplex Lab

The serial duplex lab was extremely helpful for getting familliar with the intricacies of serial communication. For the lab I used a potentiometer and a photocell as my analog inputs. I plan on using multiple analog inputs in my final project, so the example programs here will give me a great start with formatting, sending and retrieving serial data. I also hope to use some of the stuff I learned from the lab to make our midterm project run more smoothly, because Clare and I ran into some issues there with serial communication.

Thursday, June 4, 2009

I completed the analog graphing lab, which graphically charts the analog signal from Arduino using processing. It's clear how useful this example program can be if you wanted to test a large number of analog sensors. Both graphing and printing the value coming from Arduino gives an excellent idea of how a sensor reacts to physical interactions. It's also just weirdly relaxing to twist the potentiometer back and forth and watch that blue wave move up and down. Call me crazy.

The midterm project that Clare and I are working on is also coming along nicely. I am setting up the basic game code in processing. From there, it should be pretty easy to get Arduino feeding in data from flex sensors for control.

Tuesday, June 2, 2009

Analog Output!

Completed the analog output lab using a photo cell to control the servo. It's amazing how varied the values are when using different analog sensors. When I was messing around with a flex sensor, my values fell in a tiny range between about 1017 to 1023. With the photocell, the values coming in were between 1 and 67, give or take. This was indoors on a cloudy day, so I imagine the values can shift quite a bit. I can see the importance of a calibration period at the start of a program in order to account for different light conditions.

Thursday, May 28, 2009

Analog input lab


After doing the lab using the potentiometer, I tried hooking up a flex sensor to the circuit using the same code, to see if I could use the flex input to dim and brighten the LED. Testing the flex senor, I found the input that I read from it to be very small in range, from about 1017 to 1023, with occaisional very small outliers like 10 or 107. Because of the tiny range, bending the flex sensor made no visible difference in the output of the LED. I decided to try and just make the flex sensor turn the LED on and off. Because of the erratic nature of the flex sensor readings, I decided to use a for loop to generate an average of many readings in each program loop. The for loop takes 30 readings and finds the mean average, and the program then either powers the LED or not, depending on weather or not there is a discernable bend in the sensor.
Here's the code I ended up with:
int flexPin = 0;
int flexValue = 0;
int led = 9;
int flexSum = 0;
int flexAverage = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
flexSum = 0;
for(int j = 0; j < flexvalue =" analogRead(flexPin);" flexsum =" flexSum" flexaverage =" flexSum/30;">

Tuesday, May 26, 2009

Zombie Threat Indicator

Decided to have a little fun with the circuit from lab three. I had a board game running around, with zombies and little men with shotguns as playing pieces. I attached foil to the bases of the game pieces in place of the switch. Now, when the zombie and human game pieces touch, the yellow LED switches off and the red LED switches on, obviously to indicate the imminent threat of zombie infection.

Lab 3


After getting help in class and completing lab 2 (I think my voltage regulator was backwards originally), I have now completed lab three as well. Having a bit of a background in computer science, I was astonished by how simple it is to program the Arduino. Granted I am no master yet, but since digital input and output is the primary use of the device, it seems like it's only a matter of expanding the existing syntax and adapting it to different input and output components and devices. The one part of the lab I am unsure about is the use of the 10k Ohm resistor . Is this an example of a pull-down resistor? Being able to measure voltage using the multimeter during this lab greatly improved my understanding of how components affect voltage within a circuit. I am currently brainstorming how one would use an Arduino with a large number of LED's or other components in a circuit, especially if one wanted to access these components independently.

Thursday, May 21, 2009

First Labs or, The Joy of Discovery

I walked into the NYU computer store today and decided to buy all my own stuff, so I would be able to work on labs at home given my busy schedule which doesn't always align with lab hours. Excited to try it out, I ran home, unpacked a tool kit, a supplementary tool kit, and Lab Kit 1. For the first lab, merely setting up the breadboard with a voltage regulator, everything seemed peachy. I clipped and stripped the wires and set up yhr breadboard as illustrated:

Starting Lab 2, I picked up my handy Multimeter to measure the voltage across components. This is where things started to go downhill. I wasn't sure of exactly the best method for measuring voltage "across a component". I lined up the black wire of the multimeter with an exposed bit from a black "ground" wire on my breadboard. I did the same for red. I got a reading around 14.80. Based on the lab instructions I should have had a reading of 0.5 from power to ground, due to my 5 volt regulator. Puzzled, I placed the multimeter needles on either side of the regulator, and a blue spark came out. I'm relatively certain this wasn't supposed to happen. I replaced the regulator with a fresh one, and pressed on despite the descrepancy.

I took a big, shiny red button out of the lab kit, stripped two lengths of green wire and soldered them to the underside. It looked pretty peachy, until I tried to bend the wires and get them into the breadboard, and one of them snapped. I think I may have been using the supplied wire stripper improperly. Still undaunted, I remembered my supplemental tool kit came with a desoldering pump!

I held my iron to the snapped bit of soldered-in wire, and attempted the pump operation several times, without success. At this point the button seemed to come apart of its own accord. My own uninformed theory is that the soldering iron was on it for too long, and the heat disagreed with the metal bits in the button.

I picked a smaller, much less impressive looking button from the kit, and managed to get two wires on it without a problem, although they looked dangerously close to eachother, based on the proximity of the button's contact points.

I put together the rest of the circuit, using what the internet led me to believe was a 220-Ohm resistor (red, red, brown, silver). Looking at all my wires and components in the right places, with a smile on my face, I plugged the thing in and hit the button!

And nothing happened. The cherry red LED refused to light. I noticed that I had sort of melted the two wires leading to the button together. I also realized that I have no idea what I am doing.

However, I believe that the learning process is the process of failing less and less miserably as time goes on, and I plan on spending much of the day in the lab tomorrow doing just that.