As computing becomes more ubiquitous in our objects, designers need to be more aware of how to design meaningful interactions into electronically enhanced objects. At the University of Washington, a class of junior Interaction Design majors is exploring this question. These pages chronicle their efforts.
Showing posts with label Albert Lui. Show all posts
Showing posts with label Albert Lui. Show all posts

Friday, June 13, 2014

Capstone Enclosure | Anjelica Harlow + Albert Lui

You would thinking making a box would be easy. The details are actually deceptively meticulous. 

We already knew what our project enclosure would look like because we worked it out together on paper. At first we thought about buying premade pots from the store but in the end we decided against it because we believed it might have been hard to modify it to suit our needs (placement of the moisture sensors, Arduino board, wiring). Therefore, we decided to create our own design instead. 

The planter is the shape of a box. There's a space below it that houses all the electrical components - we call this the base. The base has a circular cutout to accommodate the PIR motion sensor.



The planter is actually made up of two boxes, one larger (outer) and the other smaller (inner). The inner box holds the soil and moisture sensor probes. It is isolated from the rest of the build to prevent any moisture from making contact with the electronics.



The inner box and base are made up of white opaque acrylic. We felt that this really imbued our project with a touch of modern design. The outer box is made out of a translucent acrylic to allow the LED light to shine through. We bought all our plastic material from TAPs plastics in downtown.

When cutting the sheets of plastic to make pieces for the box, we messed up a lot! We thought we made perfect measurements but we ended up cutting some pieces too short and some too long. We also had to make sure to account for the thickness of the plastic, the placement of the holes for the LEDs, and the size of the PIR sensor cutout. As the deadline grew near, John and Taylor were both absent from the shop (it was actually supposed to be closed) the day we needed them the most. This really stressed us out, but since we had extra plastic, we were able to get by by enlisting the help of some ID students.



Capstone Homemade Moisture Sensors! | Anjelica Harlow + Albert Lui

We are very proud of the fact that instead of buying every sensor we needed for our project, we worked together and made our very own moisture sensor! Granted it wasn't the most difficult thing to build, we still think we can be proud of hand making a sensor from scratch!

To do this we followed a tutorial we found on Instructables here.


I found two nails laying around the house and brought them to class. Next, we would need some kind of wire to attach to these nails. We went down to the shop and asked Taylor for some wire. He cut off a length of thick black cable and then striped it to reveal a few multi-colored cables inside. He lent us a fancy wire stripper that grabs hold of the cable sleeve with one clamp while striping it with the other - an insanely awesome tool. 

We went back to our classroom and proceeded to strip the multi-colored cables to reveal a bunch of skinny copper wires. Angelica took 3 of these wires and braided them together to give them some thickness (she's an expert at braiding hair and was able to do this with extreme speed and consistency). By doing this twice, we had our 2 copper wires! 

The next step was the cover the bare wire up with something so it didn't end up touching other components and messing things up. We were actually able to pull the original multi-colored cable sleeves back up onto our braided wires. We added some electrical tape for safe measure.

Finally, we wrapped these below the heads of the nails and added some gorilla tape to hold them in place to complete our moisture sensors.





Close-up showing the braided wires.

Where the moisture sensors are located within the planter box.

The code was extremely simple to get moisture readings. I guess it works by detecting how much electricity is going into the analog pin that the moisture sensor is plugged into on the Arduino board. If there's more moisture (water conducts electricity), the electricity will flow better from one nail to the other. If we touched the two nails together, the reading would spike into the thousands. We checked the readings by doing an analog read on the pin and using Serial.println to see the values in the Serial Monitor.

One problem we would run into in the future is the rusting of the nails. I should have used galvanized nails like the tutorial suggested. 

Capstone Speaker Shield Madness | Anjelica Harlow + Albert Lui

One super ‘fail’ we had happened when we got our hands on a new shield for our Arduino board. We purchased a MP3 Player Shield from Sparkfun (https://www.sparkfun.com/products/10628) to use for our project’s audio output because we needed a way to get the planter to talk to people who passed by.


At first we simply hooked up a speaker Dominic let us borrow directly to the Arduino. We were able to get it to play a tone, but we knew if we wanted to play multiple recorded phrases, we would need to go for a shield.

When the shield arrived, we were so excited to get it working that we made a crazy oblivious mistake.

First we stuck the headers into the shield and stacked them on top of our Arduino. We hooked everything up and plugged in some earphones into the shield's sound output. We tried running the test code that is provided with the shield, but kept getting error messages. The error messages were not helpful at all in helping us identify what was wrong.

We spent hours trying to figure out why it wasn't working. We were convinced the problem was the SD card. We browsed forums, comments, and help pages but couldn't find out what was going on. Dominic came over and took a look at things and at first, we still couldn't figure out what was going on. I asked Dominic to look at the physical board setup and asked him why the shield was so unstable on the Arduino board. I'm pretty sure at that point, Dominic had a mental facepalm. We didn't solder the headers onto the shield!!!


To our defense, this was our first time ever setting up a shield. In addition, no where in the instructions did it say to solder the headers onto the shield before using. This might be "obvious" for some people, but I still think it would be beneficial to include this (along with some soldering instructions) in the documentation.

This was a great learning experience. I'm used to coding stuff up and over the years I've learned how to debug code quite well. However, when you're doing physical prototyping stuff like this, you have to understand that you must debug the physical stuff as well as the code. You can spend hours staring at your code only to find that the problem was a loose wire.

Project Concept | Anjelica Harlow + Albert Lui

Hello there. This is a short blog post about our project's concept. 
If you wish to see the functional diagram instead, please click on the following link: 
http://tangibleinteractionuw.blogspot.com/2014/05/leds-would-bring-awareness-to-plants.html

In class, Dominic told us to come up with a 'concept of situation' that consists of 3 different parts:

1) Information on the situation
2) The change and response description
3) Inputs & outputs (if you get to it)

He used an example of a table jumping into a pool to save drowning children.
The situation is kids playing in the swimming pool. The change is detecting that a kid is drowning, and the response is the table jumping into the pool.


Angelica and I met up and came up with many ideas. 

We settled on this one:
1) A plant in soil is residing within a 'smart' planter pot. That basically sums up the situation.
2) A person walks in front of the plant/pot is the change happens. It's interesting to note that another type of change happens within this system (the moisture of the soil goes up or down). The planter will respond by speaking to the person. In addition, of the moisture is within an ideal range, the planter will respond by lighting up.
3) Inputs: Person walking (motion), soil moisture
Outputs: Speech, light




Our other ideas included voice controlled blinds, spinning/glowing drink coasters, a talking fireplace mantle, and a smart library bookshelf system.

Friday, April 25, 2014

Arduino Sensor Experiment | Anjelica Harlow + Albert Lui

Hi there. This is Albert and Angelica, we are now officially a group. I'm leaving for Toronto soon and wont be in class on next week so I figured I would get this out of the way as soon as possible. Pretty simple, I'm using a momentary push button as my 'sensor.'
Whenever the button is pressed down, the red LED lights up. I actually had to build my circuit with a resistor. Our textbook never really tells us why this is necessary and how the circuit actually works. I understand the code completely, but I don't quite understand the electronics. I have a few questions I'm hoping to ask Dominic in person.

Pressing the momentary button down to light up the red LED.

/*
Turns on an LED when the momentary switch is held down.
 */

int led = 13;
int button = 7;
int val = 0;

void setup() {              
  // initialize then digital pins as input/output for the LED an switch
  pinMode(led, OUTPUT);
  pinMode(button, INPUT);
}


void loop() {
  val = digitalRead(button);
  if (val == HIGH) { //switch is pressed
    digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  } else {
    digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  }
}

Thursday, April 24, 2014

Arduino Fibonacci Sequence LED | Albert Lui + Anjelica Harlow

Hi. This is Albert and Angelica. Here is the code for making an LED blink the Fibonacci Sequence. No fancy code or mathematical equations for this one. It basically treats the first Fibonacci number as if it were the beginning of a fencepost problem and solves it as a single unique case. It's true that performing the if/else check every single time the void loop is run seems to be redundant, but in reality, a single conditional statement test should have a negligible effect on the time complexity of the entire program. Variables are used to remember what values are in the n-1 and n-2 spots of the sequence and updated after blinking the LED.

/*
  A simple program that blinks an LED a number of times in accordance with the Fibonacci Sequence (1, 1, 2, 3, 5, 8, 13, 21 . . .)
  There are 3 second delays between each Fibonacci number.
 */

int led = 13;
int nMinus1 = 0; // keeps track of the previous number
int nMinus2 = 0; // keeps track of the number before the previous
int blinks = 0; // number of times to blink the LED


void setup() {              
  pinMode(led, OUTPUT);  
}

void loop() {
  // Takes care of the first case like a classic fencepost problem
  if (nMinus1 == 0) {
    digitalWrite(led, HIGH);
    delay(200);            
    digitalWrite(led, LOW);
    delay(200);
    nMinus1 = 1;
  } else {  
    blinks = nMinus1 + nMinus2;
    for (int x = 0; x < blinks; x++) {
      digitalWrite(led, HIGH);
      delay(300);            
      digitalWrite(led, LOW);  
      delay(300);            
    }
  nMinus2 = nMinus1;
  nMinus1 = blinks;
  }
  delay(3000);
}

Tuesday, April 22, 2014

Knolled Object | Blood Pressure Monitor | Albert Lui

I knolled an oldschool blood pressure monitor that I bought for 10$ at Value Village. I actually gained a deeper appreciation for this kind of tinkering exercise because I learned a lot from it. Simply from taking it apart, I learned about what the different components probably do and how they relate to each other.

For inputs, I have switches, buttons, and I guess also my pulse creating variations in the air pressure going into the device.
 

For outputs, I have the digital LCD screen and the little record printer.

I basically pieced together this thing like an information puzzle. 12 must have been the device that pumps air into the cuff because it's connected to it via air tubes/hoses. The cuff tube is also connected to 9, which must be the component that somehow measures my heart rate/blood pressure by detecting air pressure. I also figured that the printer is run by a single motor which dispenses the paper (must be a special kind of paper that gets marked when heated like receipts because I found no ink whatsoever- I actually verified this by running the tip of a hot glue gun against it).

Knolled object diagram.

Connections diagram.