I gave my final in-class presentation yesterday. It was for Personal Expression and Wearable Technologies class. I had created the usual Keynote Presentation and was all ready to roll, when I was riding the train to the village in the morning and it struck me that this would be a good opportunity to do something different. Try to out with a bang. Prep for my actual thesis presentation. I knew and I know, I am not going to make a “performance” for the thesis presentation, but I do want to perform the presentation. I can use the devices to talk about the devices. Since I am focusing my final in wearables on the Prolixus (formerly known as the FaceMask) I thought it would be a good opportunity to use the device for what it does best (besides making people feel uncomfortable). I would give my presentation through someone else. I would speak for them. My mouth. Their face. I somehow tricked Kate Hartman into agreeing to help me out. I rigged up a microphone outside the room, and gave Kate the instructions about advancing the Keynote presentation. I could hear absolutely nothing. “Working the room” though obstructed view and no sound is not an easy thing to do. I’m still not sure what the feeling was in the room. Perhaps the documentations below will help. Thanks to Preston Noon for the video and Kate Hartman for the surrogation. The whole class did some pretty amazing work. I especially enjoyed Ben Leduc-Mills’ SMS (Secret Messaging Sweatshirt), Kyveli Vezani’s work with Ziplock Bags, and Addie Wagenknecht’s dirty little secrets. Video of the Prolixus below:
I ran into Ilan on the train back to Astoria a couple nights ago and we started talking about various things: About how people in Chicago are too nice. About his inflatable for toddlers. About my thesis. As I was describing the project to him, I nervously realized that in fact, I had gotten it wrong. I would need two camera’s per mask. I couldn’t just use two wireless cams unless I wanted to split the signal pre-wireless and preemptively route it to it’s own mask. I don’t want to degrade the signal on the wireless cams any more than I have to. So. Two cams it is. Here’s a test with two. For some reason the IR LEDs are still giving me some trouble. Apparently IR light is hard to diffuse. Try it sometime. Let me know.
My head fits in a bike helmet made for an 8 year old. This is troublesome to me. Though, I guess the label does say “8+.” I’m “+.” Sure. I made an impulse buy of the bike helmet today because I needed to buy another LCD screen for my thesis, but before I could do that, I would have to test the LCD’s I already have, which was the original idea for ordering them. I started to test for differences in quality. Then I realized I would need to test the screen under basically the same circumstances as the original one is currently employed. Which means attaching it to a bike helmet and pointing at my face. So. Before I knew it, I ended up with this. Oh boy. 8+. More about networking the two helmets later.
Proof of concept, but here we go. I’ve rubber-banded the TriAxs to my Chuck Taylor’s and stole some loops from Apple’s Soundtrack files. I’ve realized that this is funner than I thought it would be. I’ll have to spend a bunch more time on the max patch to get things smoother, but, even now, it’s a pretty decent payoff for effort. I’m ordering more accelerometers. Here’s the proof of concept.
I’ve recently been working with a couple Triple Axis Accelerometer Breakout Boards – MMA7260Q – available from Sparkfun. The process of getting these TriAxs up and running on a breadboard was a cinch thanks to Tom Igoe’s tutorial and Rob Faludi pointing out that I needed to take the sleep pin high in order to get the thing functional. I necessarily moved quickly to getting the TriAxs on to perf boards with an Xbee each. These will soon be incorporated into Experimental Devices for Performance so the implementation needs to be small and robust. They’ll most likely get a good smashing around.
Working with the Xbee API has proven to be extremely reliable and low maintenance for my needs. It certainly cuts down on hardware. No external microcontrollers are used in this setup. The TriAx gives out a range of 0 to 3.3VDC (the input voltage) on each of its X, Y, and Z axis pins. I’m sending that along via the first three ADC pins on each Xbee. The example below shows a quick test with a Max patch that parses the Xbee packet and maps the values to a gridshape’s rotation (X and Y) and position (Z).
I hesitate to post the video because there will most likely be more, better, and applicable documentation soon and because…well…the original background sound was completely uninteresting so I had to liven it up, but I know there are better uses out there for Herbie Hancock‘s Rockit, especially since this demo is so very dry. I hope to do this song justice one day, but until then here it is:
And on it goes. I’ve finally integrated, albeit with gaffer’s tape, all of the components of the FaceMask on to the bike helmet. A screen covering the mouth, a small wired camera,a video Ipod, two wireless custom perf boards, and a lithium-polymer battery to power the whole thing are now held in place with gaff-tape and rubber bands.
As briefly explained in the video, the idea is to have two of these devices with one of the perf boards on the opposite helmet, and vise-versa. This way you can “slap” your mouth on to some one else’s face and they can do the same to you. The interaction is not limited to slamming your head against a hard object. It’s just what is in my thoughts at present.
This new perf board is fairly simple. I’ve built a standard 5 volt circuit for the atmega8 chip then regulated the voltage further to 3.3v for the Xbee. There’s a debugging LED on pin 13 of the atmel. The only other big thing on the board is a 3VDC DPDT relay. DPDT means double pole double throw. Basically I’m using the 6 pins as a manual video A/B switcher. The three blue terminal blocks other than the terminal block for the power, are wired to the relay. I’ve wired up two sets of two pins with signal and ground from two video sources – one from the video Ipod and one from the camera behind the screen which is pointing at the mouth. The other set of two pins is the signal and ground to the screen. I take the coil pin high to switch between contact with the two video signals.
I had a bunch of trouble after I got everything on the perf borad with the chip freaking out when the coil demagnetized, or magnetized to rapidly on and off. I thought perhaps there was some back voltage that was causing the problem so I threw a 3.3v Zener diode before and after the coil. No dice. Next I noticed my lack of any decoupling capacitors. I threw a 10uF cap before the 5v regulator, a 1uF cap after, and some on before and after the 3.3v regulator for good measure. This seems to have done the trick. I think the voltage was dropping when the relay was being fired.
The perf boards were a bitch to put together. In the course of prototyping the breadboards I also inadvertently fried three, count them three, Xbee’s simultaneously by putting an unregulated 9 volts through their cute little blue bodies. All dogs go to heaven. I’ve heard the same is true for honey bees. We can only hope this extends to Xbee’s. I’ll order $60 worth of new bee tomorrow.
The face mask has been going through different iterations lately. I’ve repositioned the camera on the back, added new IR LEDs and diffusers and am now using a lithium-polymer battery instead of a DC converter for all the power. This contrast of the image is helped by the IR LEDs, which makes the viewing angle a bit better as well. I’ve also got my Xbee circuit set up on a perf board as explained in the video and as seen in the pictures below.
Last but certainly not least is the Max patch that I’ve been working on (screen shot / .sit). Compare this new patch with what I was doing in the old version. Many thanks to Luke DuBois for the help with efficiency of parsing in Max and to Rob Faludi for help with general Xbee packet information and for letting me borow his dongle.
Next up is getting more screen for the eyes, then duplicating everything and patching them together wirelessly. Three weeks to go!