Source Code. Projects. Nerd Stuff. Art Stuff.

Jellyschool Production


Posted on December 5th, by amoeboar in classes, pcomp. No Comments

The concept for this project can be found in an earlier blog post. It features a sound-to-light color organ circuit, an LED daisy-chain and force-sensing resistor circuit, Max-based logic and sound created with Ableton Live.

The color organ circuit is adapted from Aaron Cake’s 3 Channel Spectrum Analyzer. It uses a quad op amp (operational amplifier) and a dual op amp that serves as a digital ground. When a signal is passed into the circuit, it is amplified by each of the op amp outputs. Depending on the capacitor and resistance values, certain frequencies of the signal are amplified. Generally, smaller capacitor values create “pulses” with smaller wavelengths, yielding higher frequencies.

 

Operational Amplifiers

What is an op amp? How do I use an op amp?

An op amp takes two inputs, and as they change, the output changes accordingly. It takes the difference between the input voltages and amplifies it. From wikipedia: “An op-amp produces an output voltage that is typically hundreds of thousands of times larger than the voltage difference between its input terminals”

The inputs e+ (non-inverting) and e- (inverting). The output is S. In an ideal op amp (which doesn’t exist), when e+ is 1 and e- is 0, S goes to negative infinity. In practical examples, e+ and e- might be anywhere between 0 and 1 (or higher in analog cases). When the inputs are reversed, the output would go high. Finding the difference bewtween two two paired, complementary wires is called differential input, something headphones do to reduce noise. The op-amp always wants both inputs to be the same value. If not, the output will go high or low depending on which of the two inputs is greater. In many electronics applications, we tie the inverting input to the output. This creates feedback, so that the op amp is moving as fast as possible to stabilize both inputs by bringing their values closer together.

More information can be found here.

 

Digital ground

The color organ circuit uses a quad op amp (eight inputs with four outputs) to amplify the signal and a dual op amp as a digital ground. In a high speed design in which digital and analog parts are sharing the same ground, logic gates that are continuously switching really fast will generate a lot of high frequency noise. To reduce or eliminate this noise, we implement a digital ground as a complement to the common analog ground. In some circuits this isn’t an issue, but in this case, we literally need to “hear” the frequencies in order to signal the LEDs properly. The digital ground serves as a “reference” to the real ground, and by keeping the two grounds separate except for a single point of reference we can control ground loops of current and minimize noise between the two.

Collin Cunningham modified Aaron’s circuit by swapping the Bar Graph ICs for LEDs. The schematic for this design can be found here.

 

Building the Circuit
I’m using the TLC5940 chip for controlling my LEDs which has an easy-to-use Arduino library written for it. Writing PWM control to the LEDs is as simple as writing tlc.set(channel, value). Nesting these within for loops allows you to fade up and down the channels all along the pins, and you can daisy-chain the chips together to string many LEDs in sequence.

I set it up in my code so that when a certain analog value goes above the threshhold (when the FSR is touched), it lights the LEDs within a certain channel range (ie: blue lights for channels 0-15, white for channels 16-31, and pink for channels 32-47). Once pressed, the values are sent to Max which translates serial to MIDI data, and triggers sounds within Ableton. The analog op-amp circuit works automatically to ensure that the right lights are lit according to frequency range.

tlc_setup

Combining these two circuits will serve as the basis for the functionality of this design. In the final iteration, the square FSRs will be replaced with FSR rings which will be hidden under the silicone blobs.

jellyschool_circuit

The sound in the video is very quiet, but you’ll get a sense of how the lights are triggered:

[gn_media url="http://www.youtube.com/watch?v=PrIT4Qx8cag&feature=youtu.be" width="600" height="400"]

Creating the LED base that the jellyfish will sit on:
fab_lights

constructed_blobs

The TLC allows for some nice PWM control of the LEDs, writing to the channels directly with the library allows us to get a fade over all the channels:
[gn_media url="http://www.youtube.com/watch?v=YY-HEtJ2gV0&feature=youtu.be" width="600" height="400"]

The next step was to transfer the breadboarded circuit to a hard circuit (breadboards tend to be fickle and electrically noisy).

hard_circuit

 

Molding Process

First Iteration

    Mold: tupperware
    Material: ArtMolds SkinRite10 Silicone
    Pros: Easy mixing, high strength
    Cons: Too firm, too opaque, expensive

 

Second Iteration


    Mold: glass bowls
    Material: Smooth On Dragon Skin10 Silicone
    Pros: Easy mixing, high strength
    Cons: Still too firm, still too opaque
    Lesson Learned: Consider your bowls when making a mold! Mold stuck.

 

Third Iteration


elastack_withwax

    Mold: glass bowls
    Material: Elastack Synthetic Rubber
    Pros: Meltable, reusable, correct consistency, highly transparent
    Cons: Sticky, a little too transparent (but wax tintable)

 

Preparing the Installation

The Layout of the Jellyfish:
jellyschool_display

Sanniti tests the responsiveness, some more work remains in getting the sensitivity right.
[gn_media url="http://www.youtube.com/watch?v=lF--717XXYg&feature=youtu.be" width="600" height="400"]





Leave a Reply