Observation assignment 2
Wednesday, September 26, 2007
Observation Assignment 2
This week, instead of returning to Lowe's, I decided to change my observation assignment completely. I examined and documented a set of elevators in an office building in Manhattan. This building has 41 floors and 4 elevator banks. Each elevator bank has 8 elevators. The building is a bustling one, and many of its tenant companies are staffed 24 hours a day. Accordingly, the elevators are always being used.
The elevators in this building, though, are different from others. They are called smart elevators, and they are showing up with increasing frequency in buildings in Manhattan and other big cities.
So, how are they smart?
There are no buttons!
One approaches his/her company's elevator bank and is greeted with keypads inset into the wall. There are 6 keypads. Two on either end of the bank and two in the middle. They are represented below by "X". Each elevator is labeled with a letter from A-H.

The keypads have button inputs representing all the single digits, a star icon, a dash icon and a wheelchair icon:

One enters his/her destination floor into the key pad: and is given a an elevator letter readout.

If one enters a floor, and then presses the wheelchair icon, the system sends a specific elevator, says that elevator letter outload, and gives the passenger more time to get there. Once inside, there is voice narration of the ride. An electronic voice speaks "Elevator G, doors closing, going up, 38th floor, doors opening" etc... All of the buttons are also printed with braille.
For a passenger who is not disabled, she goes to that elevator and waits. The elevator is programmed to go to that floor at this point.
When the elevator arrives, the doors open, and a little digital readout on the inside of the door lists the floors that it is going to. The passenger glances up to make sure she is in the right one. The passengers "assigned" to this elevator board and the doors close. No one enters his/her floor number once inside because the elevator is already "aware" of where the passengers are going. There are, in fact, no buttons inside at all - with the exception of emergency call and stop buttons. There is also a speaker system to communicate with personnel in case of an emergency.
Here is some documentation on what seems to be the system in place. Additionally, here's a short piece from NPR.
With regard to advantages and disadvantages of this system from a user's perspective, many of the points would fit into either category, depending on the user.
Potential advantages:
Elevators are extremely fast
Elevators are not as crowded since they only go to certain floors
Increased access for the disabled
Elevators only stop at one's floor and maybe one or two more
You typically only ride with the people you work with
Potential disadvantages:
Elevators are extremely fast (not everyone is interested in speed)
Elevators only stop at one's floor and maybe one or two more (some people like stopping on other floors)
You typically only ride with the people you work with
Occasionally there is no readout in the inside of the elevator telling you your destination - there is no way to know if you are headed in the right direction
If the elevator goes to the wrong floor (which happens) one needs to get out an re-initiate the process
If one is in a rush, there is no way to speed up the process
I hope to add some additional quantitative information this Friday after another visit to this office building.
posted by Amanda @ 9/26/2007 07:08:00 AM, ,
Lab 3
Lab 3
In Lab three, we were attempting to use analog input for the first time. The example on the class site was to start with a potentiometer and work from there. I was able to connect the potentiometer with no problem, and used the code for both analog input and output (analogRead and analogWrite).


The variable resistor that I chose to pick up was a Sonar Range Finder by Maxbotix This was one of the only variable resistors at the computer store and though it was a little pricey, I have an idea for a project that I'd like to use it for eventually, so I figured I would just get one now.

The tricky part was figuring out how to connect it to my breadboard and the appropriate wires. I used headers to solder to the available holes on the piece. Power and Ground were easy, but then there were about 5 more. AN, TX, RX, AN, PW, BW. It was a little difficult for me to interpret, but I tried with AN for analog in, and PW for analog out (pulse width actually). It would have been helpful to have the markings on the up-side of the piece, so I could see them when I worked on my board, because I had to keep taking it out and flipping it over to check my connections. My Connections worked, and I was able to generate an analog out (brighten and dim my led) from holding my hands at different distances above the sensor!




I added another Led to see if it would work and altered my program to reflect that.


So, in my mission to get some sort of 'Love-o-meter' going, I wanted to work with the code first. I decided that I would want a set of the leds to light up as something got closer to the sensor. I wanted to have different levels represented by different colors, but not necessarily different brightnesses of lights. So, I decided to go back to digital output, telling different lights to turn on at different stages of proximity. With two leds, it worked and one went on as i held my hand over the senor and when i removed it, it went off. Initially, I had neglected to add a resistor to ground, so the pins were quite flickery, but adding one really seemed to smooth things out (220 ohm).
I wanted to add a third Led, for more levels, so I added a blue one into the mix. Unfortunately, I'm brand new to programming, so I wrote the code out in what I know must be a bulky way, and in many iterations. It looked like this:
int finderPin = 0; // Analog input from rangefinder
int finderValue = 0; // value read from the finder
int redLedPin = 2;
int yellowLedPin = 3;
int blueLedPin = 4;
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
pinMode(redLedPin, OUTPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(blueLedPin, OUTPUT);
}
void loop() {
// read the rangefinder value
finderValue = analogRead(finderPin);
if (finderValue <= 100) {
digitalWrite(redLedPin, HIGH);
digitalWrite(yellowLedPin, HIGH);
digitalWrite(blueLedPin, HIGH);
}
if (finderValue > 100 && finderValue < 120) {
digitalWrite(yellowLedPin, HIGH);
digitalWrite(redLedPin, LOW);
digitalWrite(blueLedPin, LOW);
}
if (finderValue >= 120 && finderValue <=220) {
digitalWrite(blueLedPin, HIGH);
digitalWrite(redLedPin, LOW);
digitalWrite(yellowLedPin, LOW);
}
if (finderValue > 220) {
digitalWrite(yellowLedPin, LOW);
digitalWrite(redLedPin, LOW);
digitalWrite(blueLedPin, LOW);
}
// print finder value back to the debugger pane
Serial.println(finderValue);
}
I worked on different parts of it for quite a long time, but eventually it worked and the three were working depending on the distance of my hand from the rangefinder. The yellow led, which was represented by the middle range distance, though, seemed to always be on. I tried to work on it for quite a long time, changing the scaling, the ranges on the pins. This had varying degrees of success. In the case there seem to be a few variables and I wasn't quite sure what would actually improve the consistency. Also, having never used this kind of sensor, I don't really know what the norm would be in terms of range distance and sensitivity. I switched out my superbrights for regular Leds and added one more to each color. I added the additional leds in series and did not program them from the board.

So my questions for the week would be:
Is it okay to have extra leds on the board in serial - is there a better way to do this?
How to improve/simplify my code?
How to get a more consistent reading from my finder?
posted by Amanda @ 9/26/2007 05:55:00 AM, ,
Misc.
Sunday, September 23, 2007
To be truly beautiful, wondrous, and pleasurable, the product has to fulfill a useful function, work well, and be usable and understandable. From Emotion & Design: Attractive things work better
posted by Amanda @ 9/23/2007 11:19:00 PM, ,
Assignments
In class three we covered analog input to the arduino, went over people's assignments from last week and discussed our observation assignments. I am going to be changing the system that I observe for this week - will post some images shortly. In addition to this week's lab and observation assignment, we are to read Emotion & Design: Attractive things work better by D. A. Norman.
posted by Amanda @ 9/23/2007 10:56:00 AM, ,
Observation assignment
Saturday, September 22, 2007
Observation Assignment 1
I observed a woman using a self checkout machine at Lowe's Home Improvement store on Long Island. There were about 12 checkout lanes with registers and 2 self checkout stations with a salesperson stationed near by. The salesperson was there, ostensibly, to help in case there were any problems, but she had her own register as well.
The woman that I was observing approached the checkout station with a basket of items in her hand. She placed the basket down on the platform provided (on the left side of the machine). To initialize the system, she touched the screen directly in front of her. The machine told her to scan the first item. It did not specify exactly how to do this - one would need to know what a bar code looks like, where it would typically be found, and how to scan it, etc... The woman did know these things and scanned her first item..a tube of kitchen grout.
The screen read out the price (as a line item) and the SKU. She placed it in the bag. Within a few seconds a “skip bagging” button appeared on-screen with a message asking if she wanted to skip bagging of the item? She ignored it (as she had already scanned and bagged the item) and continued to scan the next several items in her basket. For each new item she had to look at the package and find the barcode. If the item were packaged in plastic, she had to stretch the plastic out in order for the machine to be able to read the sku. For each item, she attempted the scanning process two or three times before it would actually take. Additionally, after almost every item, she was asked if she would like to skip bagging, even though she had already bagged the item. After a handful of products were successfully scanned, she had a difficult time with one. She was holding something small that was bagged in plastic, and the machine wasn't able to pick it up. She seemed to become a little frustrated and tried over and over to get it to scan. After about the 6th attempt, the machine did read the barcode, but read it twice. Now two line items for $3.99 appeared in her tally though she was only buying one. Unable to cancel the item through the interface, she needed to then get the attention of the woman working nearby who was assigned to help the self checkout customers. Only she would be able to delete the extra item from the list. Luckily for her, the woman had a friend with her who agreed to go over and speak with the woman.
The employee was engaged with helping another customer, so there was about a two minute delay. The woman's friend came back to the self checkout and they stood there staring at the screen and waiting for help to arrive. At this point, they had lost complete control over the situation - not only were they not able to proceed, but they also weren't aware of whether or not help was actually on its way. Then they saw an item being deleted from their tally - the employee had remote access from her station and was deleting the duplicate item. However, it wasn't the correct item - she had deleted a separate product which at a price of $15.00 instead. The customer and her friend looked over at the employee (who was about 20 feet away) and then the employee yelled over to them to ask if she had deleted the incorrect one. She asked them to wait for a minute until she finished helping another customer and then “fixed” the problem. She went on to delete the duplicate item for $3.99 and then told the customers that they would have to re-scan the $15.00 item (seems that she wasn't able to add it again from her remote location). They had to go fishing through their bags to find it, take it out, re-scan it and re-bag. And then, of course, they received the bagging error message. They finished scanning the rest of their items, selected the 'finished' button, swiped their credit card, signed and received a receipt - all automatically.
The system looked almost exactly like this, though i'm not sure whether it was an IBM machine.

Personal commentary:
I've always disliked the use of self checkout systems as well as systems in which the customer swipes his or her own credit card and then signs for it. This is not my feeling about purchasing environments in which there is no cashier though (metrocard machines, stamp machines, gas pumps, etc...). This is primarily because I've had several bad experiences at Ikea. In choosing to observe this environment, I was hoping to come away with a changed heart, but I can't say that I did. The cashier lines at Lowe's weren't long and moved much more quickly than the self service lines. The customers encountered several errors and walked away frustrated and somewhat embarrassed (in case it wasn't clear, I was the friend who was helping). I also don't understand how credit card security can be maintained and shoplifting can be prevented. If one doesn't put something on the bagging scale, there is no one present to know that you are carrying an extra item out of the store. Ironically, the machine concerns itself with items that you scan and then don't bag (which theoretically shouldn't matter since you're paying for them anyway).
Here are a few articles I checked out afterwards:
From Kiosk Marketplace
From Storefront Backtalk
From eWeek
posted by Amanda @ 9/22/2007 09:50:00 AM, ,
Lab 2
Wednesday, September 19, 2007
Lab 2
This week in class, we were introduced to the microcontroller. We will be using the Arduino microcontroller and development environment, which is based on processing. The first part of the lab was to download the software and the drivers that would allow us access to the correct ports. We then set up our breadboards and linked the two together via a USB a-to-b that also supplies the board with 5 Volts of power. In order to upload the program to the Arduino, one needs to hold the reset button and upload directly from the program (after verifying and compiling). Initially I was under the impression that the reset button needed to be held down until the confirmation was received, but that didn't seem to work - I received an error message in the Arduino program. After realizing that i didn't need to hold it down, it seemed to upload fine.
I put together my circuit connecting the power and ground bus to power and ground on the arduino, and added two LEDs and two 220ohm resistors in series (I've been identifying my resistors using the resistulator widget by Nicholas Zambetti). I added a swtich and then linked up to digital pins 3 and 4 of the arduino to get the LEDs to light up. The result was that one lit up, and then when the switched was pressed, the other lit up and so on.


Later, I experimented a little bit with the code and adding three more LEDs. Two of them were powered by the circuit itself (in series from the two original LEDs) and the third was attached to digital pin 5 on the Arduino. The result was similar to the original circuit and program in that one lit up and then the other four lit up, and they alternated this way.


I then swapped the switch with a potentiometer to see what that would do. I guessed that the potentiometer would just act as a switch, and when the knob was turned enough, the lights would change (potentiometer as digital). Setting up a kind of threshold system instead of an analog interaction. That's what happened:

posted by Amanda @ 9/19/2007 07:43:00 PM, ,
Lab 1
Tuesday, September 11, 2007
Lab 1
Our first week's assignment for PComp was to do the electronics lab. The lab was broken up into five parts and I managed to complete four of the five - with one (the potentiometer) that I will complete tomorrow.
Step1: Voltage, and the breadboard lab
At first, I was following the images in the directions too literally. I didn't notice that power and ground were running down the sides of my breadboard differently than they were on screen. So it did it incorrectly:

After realizing that I had the setup backwards, I was able to run the wires correctly and to measure the voltage:
For this piece I added a switch and an LED to the circuit.
Voila
I added two LEDs at first, in series, and utilized my switch to connect the circuit. Even after playing around with different configurations, I couldn't get three LEDs to light up in the series circuit. Removing one and have two function in series seemed to work, though I'm not entirely sure why. Maybe there wasn't enough power for three? I was a little confused because Kim, sitting next to me in the shop got her's to work.


Step 4: Components in Parallel
Step 5: The potentiometer
It works!
posted by Amanda @ 9/11/2007 10:57:00 PM, ,
The beginning
Saturday, September 8, 2007
The Beginning
What exactly *is* interactivity? That is the question that we have been presented with our first week at ITP. It is also the name of the first chapter of Chris Crawford's The Art of Interactive Design: A Euphonious and Illuminating Guide to Building Successful Software. Our Physical Computing textbook references Chris Crawford's definition of interaction as "an iterative process of listening, thinking, and speaking between two or more actors." The book (Dan O'Sullivan and Tom Igoe's Physical Computing: Sensing and Controlling the Physical World with Computers) goes on to say that: "Most physical computing projects (and most computer applications in general) can be broked down into these same three stages: listening, thinking, and speaking-or, in computer terms: input, processing, and output." This really resonated with me when I first read it, as I think that process really speaks to how we live in the world, and how we interact with everyone and everything in it. Kim also commented earlier, as she was checking out the book, that it really speaks to how our bodies work as well. It's interesting to see the parallels between computer applications and biological mechanisms.
posted by Amanda @ 9/08/2007 01:48:00 PM, ,
Testing! Physcomp
posted by Amanda @ 9/06/2007 11:29:00 PM, ,


