Friday, March 9, 2007

The code!

Here's the Arduino code for the wall:

http://wawi.mine.nu/walloflight/walloflight.pde

More pics

Here's a link to my flickr set on the wall.

Prattner

To program our WallOfLight we made a little program to speed things up for us. Prattner (from Patterner) as it's called lets us click in patterns in a 5x5 grid and then generate C-code that we simply cut-paste into our Arduino code. Then it's just to upload it, and we have a new splash screen.

Project done, how?

Our WallOfLight is finally done, and we had a great presentation this thuesday. Most of the functions worked as we had planned except for some interaction aspects.

The last weeks have been late night and hard work (mostly electronics and wires for my part). I really enjoyed working with Henrik, Gunnar and Kaspar, we made a great team since everyone had their own areas of expertise, but we all still could contribute to each others tasks in constructive ways.

The WOL required lots of cables (around 80m) and to route them all in a nice way took some time. You can see on this picture, the white and purple cables that control each light. They're nicely routed in busses (did those when we still had a few days to deadline). The cables to the buttons were not as nicely routed as you'll see in the next photo (blue cables). That's because we did them the night before =)

One "major hack" that we had to work out was to correct an error we've made with the speed-potentiometer. Those are supposed to be connected with three wires, +5V, output and Ground so you get a voltage-divider. We'll we forgot to connect the ground cable, and since we already had mounted the potentiometer, we couldn't put the thirds wire on it. So we had a variable resistor only at the two cables. To solution: connect an external resistor between the ground and one of the potentiometer wires. This way we got the voltage divider back, but we couldn't go all the way down to 0V. That was easily fixed with little hacking in the software and we were back in business!

Some word about the button polling circuit. Since we would use at least 25 buttons for our project, we had to build some logics to handle these. So I did some schematics that use multiplexers and a serial shift register to select one of 32 individual lines. These are then connected to each of the buttons of the 25 boxes. The rest of the 32 lines can be used for other buttons if needed. The circuit lets us use the same three lines we had for the light circuit. And since that circuit has an Enable-line, it lets us poll buttons without disturbing the shift registers for the lights. With these, we ended up using 7 outputs and 3 inputs of the Arduino. 1 input for the button feedback and two for the scroll-wheel-pulses which I'll explain in my next post. Anyways, here's a couple of pictures of the button circuit, during testing and at work.


Friday, March 2, 2007

Wednesday, February 21, 2007

Project progress

It's been a while since I wrote in my journal, so here it comes.

Last week has been dedicated to project work on our wall of light project (working name). We found an EXPEDIT 5x5 bookshelf on Blocket for a good price. It's standing at the lab right now just waiting to be pimped. The interaction ideas are getting more and more developed as we discuss them, so we're all on track on what we want to do.

My job so far has been to get some electronics working, so I did some schematics an we went to ELFA for some shopping for shift-registers and other logics. The circuit for the pixel control is now done and it's running just fine with the Arduino. Yesterdays work was to get the scroll knob to work, which sound easier than it actually was. After a few different approaches with interrupts and timing, we finally go it working (just minor bugs right now).

Next steps are to start building rigs in each pixel for the touchable surfaces, choose lights and to build a circuit for the 25+ buttons. We'll begin by just building one of the pixels and try different approaches on the design there. Hopefully we'll get it working.

Friday, February 9, 2007

Arduino

Unfortunately i missed todays lecture on the Arduino :( But I managed to read a lot about it on the Arduino page and in their own specs. Everything seems to be like processing and that I'm familiar with, great! Simple IDE and an easy but capable set of functions to use when writing the program.

I even put together a shopping cart on Elfa with the components needed to build one on a breadboard, it's quite cheap so I'll probably build one on my own. Seems like a nice thing to have at home for experimentation.

Tuesday, February 6, 2007

The Basic Stamp

Todays lecture was all about the Basic Stamp and what it is built from and what it can do.

I've seen this microcontroller around before and I've read some about it on the nets, so many of the things was familiar to me. But since I've never used one before, it was interesting to see one irl =)

After some hours of introduction and viewing of sample code, we got to do our own "hack-cable". That's basically a serial cable that connect to the Basic Stamps pins and allows you to program it. Everything went well and I got to solder some...always fun! Unfortunately I had to leave early for a lecture on another course, so I missed the last part of the board building, but I trust my project mates made it all work.

From the introduction we got on the Basic Stamp and mainly on the aspect of it being able to run without a PC attached, I feel that this is a much better hardware to use when doing prototypes or home projects. The Phidgets are fine as an introduction, but they simply get bulky and hard to manage physically when you get a couple of devices hooked up. With the stamp, you just build your own circuit on a small breadboard or use a PCB, and incorporate the sensors as they are without any extra USB controllers and others. Neat!

A note on our project ideas also: we had a meeting today and did some more brainstorming. We'll be heading out to Cine4 tomorrow to get some inspiration and spawn more ideas. Then dinner!

Monday, February 5, 2007

Haptics

Eva-Lotta Sallnäs and Jonas Moll gave us some insight on the field of Haptics. We got some information on different types of devices that let the user get sensory feedback from a virtual or distant environment. Very interesting indeed.

After the presentation we went on downstairs to the lab and got to test some of the different applications developed. Applications where two persons could move blocks around in a 3d world by pulling, pushing and grabbing the blocks. The most interesting part was how you could help each other by showing grabbing hold of the other stylus in the virtual world. As we heard in the presentation, this is a really good way to aid blind people with various tasks. The other application that involved finding a vein on a hand and trying to put a needle in it. Not as easy as it sounds. The feedback in this application really surprised med, you could feel the skin and the textures on it quite realistically.

Playing with Phidgets

Second lecture and we got to put our hands on some Phidgets.

Fun stuff! They are really easy to set up and work with using Java or .NET libraries, you get all the classes needed to control the different boards and sensors just with a few lines of code. It's really convenient to have all the low level hardware stuff out of the way when getting started with physical input.

New course

So I just started this new course on Physical Computing at KTH. It caught my attention instantly when I heard about it from a friend and read the course outline. Here's a little retrospect on what we've done so far since I've been a bit slow on putting up my blog on this...so typical me.

We had the first lecture about three weeks ago. We started out with looking at some physical computing projects from MIT and choosing a few we found interesting. We then had small presentations on what we've read and seen on these project, just to get an insight on what's to come and what physical computing is about.

The first lecture also gave me a chance to get to know a few of the other students taking the course, and to discuss our projects we're supposed to do later on. I already knew a few of the students from earlier courses so we naturally formed our groups after that.