Thursday, April 30, 2015

Installation Project documentation!


Here is a blog post detailing the process of making this installation:

The original concept here was to build an environment for meditation, and I was enamored with the idea of a box for quite some time. I spent a lot of hours in my basement prototyping joints that I didn't end up using, but it was definitely a valuable experience in terms of refining a process! This is a glue up I did of the joinery that I will use eventually to make the box:


After some friendly prodding from Eric, Takumi, Kevin, co. I was convinced that a box is NOT an interactive art installation, and that I should build the interactive, functional part of it first. So, I worked with my test rig from last project (the old trusty guitar amp) and found a few sheets of metal that I really liked the sound of, and that I could glue a magnet to in a place of actuation. From there, building a reliable and simple mounting solution was the next step. I tried a few ideas, but the sturdiest and best sounding was simply a 2x4 with the end recessed for the magnet. Here's a prototype in action:

One of the stupid little bugs of this project was not having the right size of screws! But I fixed this with a whole saw. It also keeps the screw out of the way for when I finally but these in a larger structure.


The next (daunting) step was finally conquering the amplifier question. One of the problems I had with the last project was dealing with the complicated "mute" and "standby" pins on the LM1876. It also had a pretty fussy power supply window of operation. For this project, I opted for the simpler, one channel LM1875. I was able to assemble the circuit below, which is basically just running the signal through the amplifier with a few filters. I also have capacitors used to bias the power supply into true -12v, 0v, 12v submission. This is done with a large and small cap (1000uF and 0.1uF) in between -V/+V and GND,  respectively. 


Once this was done, I made nicer versions of the mounts and reduced the noise with some rubber stoppers. The final systems came out really nicely, with the perfect alignment between magnets and a good amount of structural integrity. Also, some sanding and nice stain. Polycrilic is to come!


Not pictured here is the journey of creation I took with the meditation object (aka pokey pyramid). This was a super important part of the interaction so I dedicated a lot of time and thought into how it should feel and look. I ended up cutting a design on the band saw out of sheet metal, bending it into shape, and texturing it with weld material. Then I sandblasted it, used gun blue to get a darker finish and waxed it to seal the metal from oxidization.


Tuesday, April 28, 2015

Wireless Arduino-To-Arduino Communication

For my project, one of the arduinos needed to freely rotate, so I couldn't just run a wire from one to the other. So, I started looking at different wireless modules and found this post on stackexchange really helpful in explaining the differences between all of them. In my case, I could have gone with the XBee, the Nordic nRF24L01, or a barebones radio transmitter and a receiver. The latter might have been too unreliable due to interference, and the XBee was a bit expensive (also I had heard they were hard to configure.) So, I ended up going with this nRF24L01 breakout from Sparkfun, and I'm really glad I did. (You can even get them way cheaper on amazon if you're fine with an on-chip antenna).

The first step is connecting to your arduino. To figure out which pins to use, read the Connections section here. I used the muli-purpose IO pins (11, 12, & 13) for one arduino and the ICSP pins for the other; either works fine. Also, the library I used defaults to pins 7 and 8 for CSN and CE, respectively, but you can change these to whatever you want. I used 8 and 9.

Speaking of libraries, here it is. I like this one better than some of the alternatives because it seems like the interface is as simple as possible, while still using the nordic's auto-retransmit and auto-acknowledge features to ensure your packet always gets where it needs to go. The first link in the github readme gives some example code, which is more or less exactly what I used. To see specifically what I did, check out my code on github here.

Monday, April 27, 2015

Hiding the Menu Bar

Here is a quick post about something I found very useful for this project.

Since I'm displaying video feeds on my laptop screen, I needed a way to hide the menu bar.

The way to do that is very simple...
Just create two message objects as shown in the photo.  Then click on them to hide/unhide the menu bar.

UPDATE:  You can do the same with mouse cursors!

Sunday, April 26, 2015

Jitter Journey - Detecting Movement


My project mainly consists of Jitter, so I'm going to make some blog posts about what I did with it.

For the interaction, I wanted Max to detect motion and use the motion data to manipulate sound and visual.  Luckily, somebody made a patcher that fulfilled my need.

Hold Still is a patcher that uses frame-differencing to detect movement.  This simple and straightforward patcher uses video sensing to control sound synthesis.  

Hold Still is #32 in the Jitter Recipes. Download the patch here
You can read more specific details about how it works on that link.

I mapped the movement values to groove~ object to manipulate a glitch audio file.  The amplitude of the outputted sound is then mapped to jit.sprinkle object to manipulate the video feed.  

I also used Hold Still patcher to sense if a person is looking into the peephole or not.  I set the threshold very low in order to detect slight eye movement.

It looks like Isaac is using Hold Still for his project as well!

Very useful.












Thursday, April 23, 2015

I apologize for the vertical camera footage, but progress has been made! Here I am having the program draw a red dot where I push-- calibration is still a little off, and I'm honestly not totally sure what I did to make this work (I had been trying so many things for the last 10 hours, and it just started working, with some combination of those things) woohoo!

Tuesday, April 21, 2015


This is more or less a proof of concept for the users' interface, as well as a demonstration of state change while users interact (or don't!) with her. Along with the two pushbuttons, the LCD object in Max will likely be the only interface that the users will have. I'm probably going to display LCD on a separate monitor next to the fish tank. This allows me to position my computer more conveniently to hook things up, and it frees up a lot of space for the buttons.

Monday, April 20, 2015

      

 Projection mapped in Processing and depth sensing, trying to combine the two now!