Arduino, Interaction Design

Midterm: Sleep Tracker

For our Physical Computing mid term project we were tasked with developing a piece of our choosing, over the course of three weeks, that would usefully apply the fundamental principles we’d learned to date.

After exploring new sensors we’d not encountered yet in class, we decided to use a 3-axis accelerometer (ADXL335) to monitor sleep patterns, and represent sleep in a physical way (as opposed to on screen). We would use Servo motors to control wooden dowels, with their position related to the depth of sleep. The more restless the sleeper, the more the accelerometer would move, representing lighter sleep. The vice versa would also be true, representing deep sleep.

initial_circuit

Before determining the physical form, we experimented with the sensor, motors and code. The challenge was to capture movement over time, and map this to the Servo angle. We would need to monitor time since the Arduino program was started, and progress from one Servo to another as each hour passed (we used a variable to make an hour pass in just 30 seconds for demo purposes).

With the code mostly complete and proven, we began building the wooden box from plywood. We would house the Arduino and a PCB board, onto which we would migrate the circuit from the breadboards, under a shelf. The motors would go on the shelf, with dowels pointing vertically through the roof.

pcb

PCB2

wooden_box

building_the_box

Here’s a diagram of the board:

PCB_Schematic

We recognized a small design problem. On waking, you wouldn’t know the length of your sleep as the dowels would have to be in one position or another. If the seventh and eighth dowel were at 90 degrees, this could mean moderate sleep or that the program had not reached those motors yet. We added LEDs to gently uplight the currently moving dowel, so if the fifth dowel was lit you’d be in the fifth hour since the program began.

The project was mostly successful. Unfortuntately the small Servos have a tendency to vibrate or make noise, which is clearly undesirable for something that should sit quietly and stably on your night stand. We also had a lot of wires to squeeze below the shelf, we could perhaps have managed the space a little better. The project validated the concept of a physical sleep sensor, as a prototype, but it would be good – if we were to progress further – to refine the physical form.

Arduino code can be found here.

My partner on this project is Sam Wander.

Advertisements
Standard
Arduino, Processing

Project 4: Arduino + Processing

For this week’s project I worked with Sam to create an example of the Arduino communicating with Processing; using an analog controller that is affecting something in the digital world.

Our project uses a sound detector and a slide potentiometer to distort  and fade images on a laptop screen. We utilized the slide potentiometer to adjust the opacity between two images, and the sound detector to display the image on the screen.

Wiring Schematic

Wiring Schematic

Here is our project in action.

We also ran through a few tutorials that guided us through communicating with the Arduino through Processing.

 

 

Standard
Arduino, Lock Box, Servo

Project 3: Combo Lock

Our third assignment this semester is to use an Arduino to create a makeshift lock. The project is pretty open-ended, so I’ve decided to make a lock box using servo motor along with the Arduino.

An infrared sensor will trigger a servo to unlock the box.

An infrared sensor will trigger a servo to unlock the box.

The concept is simple. I will use an infrared sensor to activate the servo, unlocking the box.  After my last project which blew up my Arduino, I’m ready to redeem myself, new Arduino in hand!

It will read movement and activate the servo.

It will read movement and activate the servo.

This little guy is the motor and locking device.

This little guy is the motor and locking device.

The difficult part has been coding the infrared sensor to rotate the servo. I resorted to using code that allowed me to control and LED with a potentiometer as a starting point. This was beneficial to eventually getting my wiring working properly.

Success! Now to implement it into the box.

Success! Now to implement it into the box.

After a few hiccups, some tweaks to the code, and some food in my belly, the wiring is ready to go in the box!

Before I place the components in the box, I need to set up the locking device.

The servo will rotate, positioning itself into the makeshift lock.

The servo will rotate, positioning itself into the makeshift lock.

Using cardboard, I created make shift device that the servo can lock into. When activated, the servo will rotate into the groove of the cardboard (the locked position). A wave of a hand across the sensor will rotate the servo, unlocking the box.

I cut a rectangular hole along the side of the box for the infrared sensor.

I cut a rectangular hole along the side of the box for the infrared sensor.

It's not pretty, but it works.

It’s not pretty, but it works.

The biggest pain in the butt was not having the servo move out of place. At first I used cardboard wedged in between the inner wall of the box, and the servo, but that didn’t work. I also tried pieces of tin which didn’t work either. I eventually ended up using mounting tape to create a cushion on one side, and a piece of tine taped to the bottom of the box on the other side. This worked perfectly. The servo does not move at all!

Here is the box in action!

Standard
Art, Interaction Design, Sensing System

Rain Room by rAndom International

Interactive "Rain Room" Exhibit Allows Visitors To Control Their Environment

 

Rain Room is a hundred square meter field of falling water through which it is possible to walk, trusting that a path can be navigated, without being drenched in the process.

As you progress through The Curve, the sound of water and a suggestion of moisture fill the air, before you are confronted by this carefully choreographed downpour that responds to your movements and presence.

Here are the components used to bring this beautiful concept to life:

  • Water
  • Injection moulded tiles
  • Solenoid valves
  • Pressure regulators
  • Custom software
  • 3D tracking camerasS
  • teel beams
  • Water management system
  • Grated floor (100 sqrm)

 

Standard
Arduino, FAIL, Switch

Project 2: Arduino Implementation

This week’s assignment included an Arduino, which is a micro-controller. It’s basically a small computer that executes a “simple” programming language. It’s mainly used to control various types of electronics.

Since my previous project (LED Umbrella) was dismantled, I decided to wire a cracker box with 8 LEDs, and have them dim on and off using the Arduino & a Pot (Potentiometer).

The goal: Wire 8 LEDs to dim using an Arduino & Potentiometer (Pot)

The goal: Wire 8 LEDs to dim using an Arduino & Potentiometer (Pot)

I successfully completed the provided tutorials with no problems. The Arduino was working great, and all the code and wiring was executing as planned.

Early test with the Pot worked just fine.

Early test with the Pot worked just fine.

I completed the main tutorial, which included dimming and LED. Again, no problems. It all worked on the first attempt.

I successfully connected 8 LEDs to dim using the Arduino & Pot.

I successfully connected 2 LEDs to dim using the Arduino & Pot.

I even added a second LED, but why stop there. I successfully wired 6 more LEDs in addition to the 2 shown above. It wasn’t very difficult. I implemented the same wiring scheme that I used for my LED Umbrella.

Similar to my LED Umbrella, I wired 2 LEDs to a 1k Ohm resistor.

Similar to my LED Umbrella, I wired 2 LEDs to a 1k Ohm resistor.

Here are the LEDs that I planned to implement in the dim schematic.

This is where things began to mess up. Something is off.

This is where things began to mess up. Something is off.

Testing a row of LEDs didn’t work out as planned. I can’t figure out why the LEDs did not receive power. The wired LEDs and resistor maintains the same circuit as in the bread board phase. I began experimenting with different inputs, including connecting my row of LEDs directly to the Arduino.

After tinkering with the wiring, something began to burn.

After tinkering with the wiring, something began to burn.

I forgot to mention that I switched from USB power to 9v power. I changed my input on the Arduino from 5v (USB power) to Vin (9v power). It was at this point where I began to smell something burning. I immediately disconnected power, and realized that the Potentiometer was kaput. I resorted back to my initial bread board schematic, and a 9v power source. My LED was lighted, but the Potentiometer no longer responded.

It was also at this point that I realized the Arduino was no longer being recognized by my computer. I am unable to upload any code to it. The USB port on may laptop is working fine. I also tested the USB cable, which is also working fine. When I attempted to connect my Arduino to a classmates laptop, it was not recognized.

I am now Arduino-less. Attempts to find a solution online failed. I re-installed the Arduino software, but no good. It looks like I’ll have to purchase a new Arduino.

 

Standard
Homemade Switch, LED Ligthing

Project 1: Object with Home Made Switch

Image

Although it’s nothing new, an illuminated umbrella sounds quite cool to me. So why not make one? For my first Physical Computing project I will be wiring 8 LED lights to the inner frame of a $6 umbrella that I purchased at Home Depot. When the umbrella opens, the LED lights will turn on using a switch created by using a piece of tin. When the tin makes contact with the umbrella frame, the circuit will have continuity, illuminating the LEDs.

Image

Each set of LEDs will require its own resistor.

A sketch of my circuit schematic showing a switch, two separate rows of LEDs, each with its respective resistor.

Image

My schematic works resulting in only minor LED losses.

After a few mishaps; out of place wires, a shorted LED (may it rest in peace), and more wrong wiring, I have continuity!

The circuit:

  • (1) 9v battery as my power source
  • (8) 3.3v Blue LED lights
  • (4) 1k Ohm resistors
  • Scrap piece of tin (conductor)
  • Booze to keep my stress at bay
Image

Soldering is very fun. Although I did struggle a bit because I lack a steady hand. That’s probably why I suck at Operation.

Since my circuit will involve a lot of wire to run along the frame and back to the power source, I will solder the bits together to make sure there are no gaps in the circuit. Tape seemed to cumbersome to use, and melting stuff together is cool.

Image

Measuring the length of the leg made it easier to calculate placement and the amount of wire needed.

After soldering 4 separate strings of LED lights and testing them, I aligned and taped them to the umbrella frame using electric tape.

Image

The LEDs are taped to the frame.

9v battery taped to the umbrella handle

A 9v battery taped to the umbrella handle.

007

Tin attached to the umbrella stem will make contact with a second piece of tin completing the connection.

008

The second half of the switch that will complete the circuit once contact is made.

Success! After many attempts, a few tweaks, and a little help from a classmate, my LED lighted umbrella is up and operational.

011

Let there be light.

Standard