Pcomp

All projects physical computing

I am proposing an interactive desktop learning tool that will teach the user how standing waves and harmonics work.  Through the utilization of two motors, a string, and two potentiometers (one for each motor) the user will be able to cycle from fast to slow to show the various stages of harmony and dissonance in a string of a given length by speeding up and slowing down those rpms.  I was initially inspired by this large scale work by Daniel Palacios

Since the depicted installation experience is on “rails” so to speak due to the program that cycles the standing waves, you can see the kids in the video want to interact with the sculpture, yet there is no way for them to do so aside from merely running around it. I thought it would be nice to make a desktop version that would remedy this and allow for the user to manipulate the waves by fluctuating the speed of each individual motor via large bakelite knobs. I would also like to provide LED feedback under the string to both highlight the waveform, and to provide feedback to the user.  I propose that there would be two settings for the LEDs, one setting would be a strobe effect, which would allow the user to see more clearly the waves in their static state; and the other would give feedback as to the speed of the motors.

 

The parts utilized would be:

  • 2 High rpm dc motors ~ $14.95 each

Motor

 

RS-550s 18v (6v – 24v) DC Motor – High Power & Torque for DIY Projects, Drills, Robots, RC Vehicles

 

  • 1 Length of String ~ Cheap: I may have to play around with what type of string to use.
  • UPDATE: Upon the advice of Ben Light, I am using 16th inch surgical tubing that I got from Canal Rubber for about a dollar a ft.

 

 

  • Acrylic ~ I have this

Motor Attachment

1 sheet of 1/8th or ¼ inch acrylic to be cut into discs to fasten the string to the motors.  I may have to experiment with this application.

UPDATE: I have used 16th inch acrylic

  • Wood ~ $154 for 20 board ft of lumber (Maple) $171 for 20 board ft (Birch)

To build the supports for the motors and the potentiometers into one desktop stand. Maybe Maple or Birch

 

Bakelite Knobs ~ $16.95 set of four

To provide the user with a nice tactile feel to attenuate the motor’s rpm

Set of 4 black round radio knobs with spun aluminum tops – vintage control knobs

$8.95

knobs stainless radio knob w rubber

Giant Bakelite knob with brass insert~$15.00

3.5"knob

 

 

Set of 5 large Bakelite radio knobs with spun aluminum inserts – 2″ diameter console knobs

final knobs

UPDATE: I purchased this knob from the Leeds Electronic Store on Etsy for $7 for 5 knobs

LED’s x 6?

Control: Arduino Uno or Mini, Toggle Switch (on/off), Toggle Switch for LED’s

 

What it will look like:

First SketchAngle Sketch

UPDATE: Project Timeline

Screen Shot 2015-11-27 at 7.05.00 PM

UPDATE: Thorough Bill of Materials

bill-of-materials for pcomp final

UPDATE: Playtesting

This is the first test with the motors on two bench power supplies with the rubber tubing as the oscillation material

UPDATE:Circuit schematic idea for the final product

20151118_143259

UPDATE: System Schematic

System diagram

Testing the pot with the lab for motor control

20151120_154659

Here is the code:

20151120_161118

Left out of the screen (int motorpin = 5)

UPDATE: CODE

Screen Shot 2015-11-30 at 1.59.10 AM

I haven’t added the code for the LED’s yet because I haven’t been able to keep the circuit from overheating yet. :/

This is a test with the same code adding the Larger 12v motor in place of the small motor, with the power separated.

The power from the arduino goes to the pot. The motor is sharing a ground with the bench power.  The bench power positive is going to the 12v motor.

 

I am concerned about the level of amperage that is needed to get the motor spinning, and what the resulting amperage will need to be to get both motors spinning. As you can see the motor is pulling up to a little over 2amps to turn the motor when it is slow, when this doubles due to the second motor being in the system it may be pulling 5 amps which is quite alot for the components I am using.

 

Here is a close up of the circuit that is being used in the video.  I am using a tip 12o transistor in the circuit along with two diodes to prevent backflow of electric into the arduino.

Wiring Code:

  • The red wires in all situations are hot (either 5v from the arduino, or up to 12v from the bench power to the motor)
  • The yellow wire is digital read (A0)
  • The orange wire is pulse width modulation to control the voltage to the motor. (5~)
  • The black wires are the ground (The motor, the bench power, and the arduino share a ground)

 

20151120_184426

This is the complete picture of both circuits for both motors on two arduinos. This is not ideal, but I wanted to have a fail-safe in case there were problems with the two circuits existing on one breadboard and one arduino.

20151123_155451

 

Regrettably, I don’t have any documentation of what happened next but I do have this:

20151127_193750

I migrated the circuits over to one arduino with two breadboards, but there was something wrong with one of the breadboards that was causing a short circuit and led to a couple of changes. I changed from a tip120 transistor to a MOSFET transistor in an effort to make a more robust circuit because the current load was making the tip120 too hot. (or at least that is what I thought until the breadboard for one of the circuits started to burn up where the transistor was plugged in, which has led me to believe that the breadboard may have had a short)

You can see in the video that the amp load is 3+ amps and that is when the motors are already running.  It approaches 5 amps when the motors are getting started.

I have begun to start cleaning up the wiring so it is easier for me to see where things are going since I have migrated both circuits over to one breadboard with heat-sinks on the MOSFET transistors.  I haven’t tried to test this configuration out yet but I am hopeful that this will carry the current loads that I need for the motors to work at top speed.  This weekend I will test this new configuration and try to add an on/off toggle switch to the circuit to give myself an easier way to turn it off on the board.  I also need to start thinking about how to add the LEDs into this picture.

Wiring Code:

  • The red wires in all situations are hot (either 5v from the arduino, or up to 12v from the bench power to the motor)
  • The yellow wire is digital read (A0 and A1 top to bottom)
  • The blue wire is pulse width modulation to control the voltage to the motor. (3~ and 5~)
  • The black wires are the ground (The motor, the bench power, and the arduino share a ground)

20151123_230213

I am concerned given the experimentation with the motor that the only thing that will be visible with the speeding up and slowing down of the motors is the amplitude of the oscillation.  This is not what I was trying to achieve.  The only time the system will display any turbulence, which was the desired result, is when you shorten the length of the rubber hose by placing your hand in it’s rotation.  This is not ideal.  You can however witness the standing wave beginning to pull apart when the motor’s speed is slowed, but it is not as extreme as I had hoped so you can really see the difference between harmonics and dissonance.  C’est la vie for now.

UPDATE:

I tried the new configuration and everything is working somewhat nominally.  I found out that I have been running Mega potentiometers instead of 10k or 5k or 1k potentiometers, which may be the source of my amperage woes.  Also, everything I said about the system not displaying any turbulence has changed as you can see in this new video.  I am not exactly sure why, maybe the rubber is stretching out and making it easier for the turbulence to take place.  Since I changed the potentiometers to 5k potentiometers I am getting more voltage to the circuit as well (not reflected in the video).  It seems like the circuit is happier.  I stumbled across this while watching the bench power when I turned the pots down to the lower setting (closer to 0 in the pwm). The voltage was going up along with the amperage, also the MOSFET transistors were getting hotter due to the heavier amount of work the motors were doing at the slower speeds.  So I have swapped out the pots to 5k pots and the amp load on the circuit is lighter and allows for more voltage to the motors, not sure why, but I have my guesses.

Tomorrow, I will add the on/off switch and add a barrel jack for power to the motors so I can get off of the bench power.  I also need to do the amperage math on adding LEDs and an additional switch to the system to see what type power supply I will need for the final product.

I began the work of the on and off switch and ran into continued problems with the MOSFET transistors I was using.  They are also getting too hot.

I have updated the system with solid state relays

52246-IMG_5533

Here is how I am going to wire it up (sort of), the load is obviously the motors.  I am running the voltage positive from the power supply to the positive on the motors.  I am running the negative back to the load on the switch and then to ground on the circuit board.  The control equipment is the arduino, from the pwm pins back to ground on the circuit board.  Effectively this is wired the same way that the transistors are wired.  The relays are acting as a MOSFET transistor switch,  sending pulses to the relay allowing voltage to pass to the motor which allow the motors speed to be controlled.

ac-ssr

This solution is working with no added heat. This is great news.

Now that the circuit is working the way it should, I am adding the leds and their on off switch.


20151206_221359

This is the code that I am going to use.

int switchPin = 2;              // switch is connected to pin 2
int led1Pin = 12;
int led2Pin = 11;
int led3Pin = 10;
int led4Pin = 9;
int led5Pin = 8;
int led6Pin = 7;

int val;                        // variable for reading the pin status
int val2;                       // variable for reading the delayed status
int buttonState;                // variable to hold the button state

int lightMode = 0;              // What mode is the light in?

int motorpin1 = 3;
int motorpin2 = 5;

void setup() {
Serial.begin(9600);           // Set up serial communication at 9600bps
buttonState = digitalRead(switchPin);   // read the initial state

pinMode(switchPin, INPUT);    // Set the switch pin as input

pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
pinMode(led5Pin, OUTPUT);
pinMode(led6Pin, OUTPUT);

pinMode(motorpin1, OUTPUT);   //Motor 1
pinMode(motorpin2, OUTPUT);   //Motor 2

}

void loop() {

int pot1 = analogRead(A0);
int pot2 = analogRead(A1);
int potvalue1 = map(pot1, 0, 1023, 0, 255);
int potvalue2 = map(pot2, 0, 1023, 0, 255);
analogWrite(motorpin1, potvalue1);
analogWrite(motorpin2, potvalue2);

Serial.println( potvalue2);
delay(10);

val = digitalRead(switchPin);      // read input value and store it in val
// If then statement that defines toggle
// switch state for strobe leds
if (val == 1) {

digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
digitalWrite(led5Pin, HIGH);
digitalWrite(led6Pin, HIGH);
delay(15);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
delay(35);
}
else if (val == 0) {
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
}
Serial.println(val);
}

Nothing left to do but fabricate the platform for everything to go on.

I will post more on that process tomorrow.

 

Here is the thing working.  Albeit with a pot acting up.  I removed it and I am getting ok results. I am also leaving out the led’s for now, until I can figure out how to add them to the system in a clean way (fabrication wise).

This is the control box.  I picked it up from the container store.  I have ideas for something better but that will have to come later.  Also I am having a problem with one of the pots (likely due to soldering) so I am leaving it off for now.20151214_112852

The semi finished product.

20151214_112838

So we were paired up with another classmate to do the pcomp midterm, so much for my plans to overlap my cooking with sound midterm with my pcomp midterm.  C’est la vie.  Anyway Serena is pretty cool and she is great at P5.js so that is going to be a huge benefit to me, since I am not.

We decided that we would make an abstract jellyfish to manipulate with a photo sensor for our project.  Here’s a little sketch of what we are trying to create with a little pseudo code to describe the interaction

20151019_130304

As a response to the challenge to consider how the user would interact with the jellyfish we are going to use a photosensor and put it in a clear acrylic enclosure.  The user will be able to wave their hand over the box and interact with the jellyfish, without touching of course (they might get stung).

 

Here is what the illustrator file is going to look like.

Mid term Template

There will be two of these laser cut from acrylic with the arduino and the breadboard sandwiched in between, using standoffs will provide the height necessary to put the boards in between.

While working on the serial side of things I was having problems with the sensor outputting data.  I ended up figuring out it was my wiring on the board.  I was wired to the rx and tx of the arduino, among other things, thanks Aaron.

UPDATE: As you can see in the video, there was a logistical problem that caused me to have to check out an arduino micro from the ER and use a larger breadboard (the only one I have left), my uno and small breadboard are tied up with my Cooking with Sound Midterm and Serena and I have different schedules which is making it difficult to meet in person.  Not to worry though, we have been communicating by email and text to be able to stay in front of the midterm and on track with Serena who has been working diligently on the P5.js code for the jelly fish.   I also needed to make a new illustrator file for the enclosure to accommodate the changes in accessories.

 

Mid term Template2 long

This will have to accommodate just the breadboard and a micro which will reside on the breadboard, so no worries.

Nothing left to do but cut the acrylic and add the breadboard to it.  I will get to that tomorrow.  Serena has gotten the arduino and the P5 sketch talking properly today and we will be done hopefully with about 24 hours to spare.  Yay!

1O7A9843-1024x576

In the end the project was successful, the girl in the video testing it even said “Oh its a jellyfish!”

There were some aesthetic things that could have been straightened out, but over all I was pleased with the response we got from the class.

Today I learned a valuable lesson in logistics in the city. Time flies in New York, not because things move fast here, but rather because it takes forever to get anything done.  New York is like a time murdering ninja, it sneaks up on you and kills all of your time. With transit time and the locations of the things I generally need being spread out just enough to eat up my time coupled with the hidden minutes standing on the subway platform waiting for the train or at crosswalks waiting for traffic lights to change, time just really just runs away from you.  In a New York minute as they say.

I started today off pretty well finishing up on some ICM work that I wanted to get done while I was at work. Like a normal Tuesday  I get off with just enough time to walk over to the applications class, which ends about 6:30pm.  I started to walk back to the ITP floor and begin work on my pcomp lab that involves serial connection to motors.  A lab that I need to complete my cooking with sound midterm.

I got all the way to my locker and remembered that I need to go to tinkersphere to buy the motors that I am going to use for that project which I need to do the pomp lab.  I have tried several times this week to get over to tinkersphere to buy these and never seem to get there when they are open this coupled with general forgetfulness is another problem (LISTS in MY FUTURE).  I am not used to doing things this way.   Ben Light said a couple of weeks ago, “It’s like you’re cooking in someone else’s kitchen.”  An analogy that he meant for the floor shop, but I have begun to realize it is the city as a whole for me.  Thirty minutes wasted going up to the floor and I am on my way to tinkersphere.

It takes about 20 minutes to walk to tinkersphere and on the walk I look up the hours for tinker sphere to double check since  I have somehow missed them last two times I have tried to go there (Sunday : Closed, Monday, class until 9pm so again Closed).  I have a little more than an hour to get there and buy the supplies (oh yeah… I haven’t eaten since noon, gotta pick up some food on the way back).

Once there, I received lots of helpful information from the girl who was working about the motors I intended to use, and she recommended for my purposes that I use a particular servo instead since it would likely provide the rpm I am looking for. (Retool the illustrator template to accommodate servos instead of motors … good thing I haven’t cut that acrylic yet)  I picked up two of those and several other items that I needed for other projects, and  9v batteries that I will need to power the servos independently of the arduino that will run the project.  At the checkout counter, I looked at the battery holders and thought to myself, “ the school has these so I will save a little money.”  A decision I would later pay for.

All checked out, I remembered that I needed to go to Micheal’s to see if they had felt balls that I could use for ringers in the project and I looked them up on the old Google Maps and realized that it is about 40 minutes away from where I am.  I walk to the subway and head up to Micheal’s and go in to take a look to see if they have what I need.  Took a look at pom poms, the type that are used for craft projects, and they did not look like they would work. So I picked up some wood beads and some felt and I will make them myself. I grabbed a few other things I needed from there and with that I checked out and headed back to the school 25 minutes away.

Once there, 10pm, I start going through the stuff I bought and began pulling out the pcomp toolbox to begin working on the lab.  Oh yeah… one more thing… I need to get those battery holders off the supply shelf. NOPE.  There aren’t any left and tinkersphere is now closed.  I have a battery connector for my arduino that came in my kit but I don’t want to sacrifice it to do this lab as I will need that part later for the project itself to power the board itself.

So I spend about 30 to 45 more minutes trying to see if there was a way for me to pull something together, but I was so deflated, that nothing was coming to me.  So I decided to write a blog post to remind myself:

In the future:

Make a list of materials early, this list will inform the list of places that you need to go so you can make another list to schedule the time to go there.

Order the materials online, its cheaper in TIME, money, and you never have to wait on the subway platform wishing you could be working on the project so you can go home and sleep.

Again… DO NOT RELY ON THE SUPPLIES AT THE SCHOOL it will burn you every time.

Here’s to spending tomorrow afternoon doing the pcomp lab that should have been done today.

Cheers

For my cooking with sound midterm I wanted to do something with additive synthesis and phase shifting oscillators.  Due to the criteria of the project I need to make a sound by analog means.  I have the idea of using singing bowls and motors in a enclosure to try to kill several birds with one stone so to speak.

 

So here is the plan…

Plans for Cooking WIth Sound Project

I will make a mount for the bowls and the motors to exist in, along with a design element of the ohm symbol.

Fab lab laser cutting project… check.

Then, I will make an enclosure with a false wall to house the wiring and breadboard for the motors and LEDs.

Fab Lab enclosures … check.

P-Comp Analog Serial communication … check. (I will update with pictures of the lab that I will be using to do the serial communication with the motors later this week)

Then hopefully the motors will spin felt balls on strings in the singing bowls and make a phase-shifting dual oscillator.

Fingers crossed, Cooking with Sound MidTerm … check.

 

Here is my laser cutting template …

Template for Cooking with sound Project long.psd

I have already made a test run of this in cardboard,

20151005_182822

and had to make adjustments due to not having the specs of the motor mount measurements and the size of the bowls I will have access to.

This template is the template adjusted for the correct motor spindle and motor mount tolerances.  I will likely update this version again when I can get my hands on both of the singing bowls later this week.

20151009_215912 20151009_215919

Progress on the stand for the bowls.

 

It looks like I am going to need rubber feet since the bowl makes contact with whatever surface the stand is resting on.

Also there was a fair amount of cardboard prototyping to get the servo motor opening right, but a little tinkering in both directions and it is finally right.

More pics to come tomorrow.

UPDATE:

 

It took me a while to get back to this since I have been so busy with prepping for midterms but I have some videos to show the “finished” product of this project.

I will post some proper photos of this later this week.

While in the city looking for devices that are interactive I noticed the buttons on light poles that are supposed to trigger signal lights for crosswalks.  My assumptions were completely wrong about how these buttons are used, or rather not used by the public.

 

Crosswalk

I found anecdotally that these buttons are rarely if ever used, and if used they are pounded on like a dammit doll. Not like the kind gentleman in the photo gently pressing as if pressing the Pillsbury Dough-boy’s tummy.

No, people if they did use them they pounded on the buttons like their life depended on it.  This generally took the longest amount of time.

But most people never even approached the button much less looked at the crosswalk sign and took mere seconds to decide if they were crossing yet or not.  They simple glanced quickly at the traffic light above the intersection and then down the street to see if cars were coming.  If there was no cars, they disregard the signs and quickly cross the road. Many people just looked at the person ahead of them or across the street from them to see if they were going and did whatever they did.

(This video was not filmed at the location I studied at 23rd Street and Fifth Avenue but you can get the idea of what is happening)

It is either a failure of the technology satisfy the needs of the population using it, i.e. no direct feedback that leads the public to think of the buttons as placebo buttons, or it is a failure of the enforcement of jaywalking laws or both.

Now I am not advocating for cops standing around harassing people for crossing the street, I mean people do have places to go, but much like elevators without a light in the button it seems like nothing is being done when the button is pressed.  Crawford would call this a lack of feedback in the interaction.

 

 

I began working on the week 3 lab for Pcomp today.  Pretty straight forward stuff, it would seem.  The problems began when I bought a longer breadboard from a 2nd year student, thanks Stream, (no sarcasm intended the fault was all mine.)

 

0000179_full-size-solderless-breadboard-clear

 

I spent about 3 hours trying different combinations of wiring examples and set ups, from the labs to the arduino examples.  I could not get power to a LED!

So I began trouble shooting from the end that I knew had power, the board.   I worked from component to component to find the problem.  It just did not make sense.  Until Druv said, “Hey does that break in the breadboard mean that power stops there?”

Sure enough.  I put a jumper cable over the break in the middle of the board and shazam there was power to the entire board.

It took about half an hour to finish the lab after that.

 

Use your multi-meters boys and girls.

 

 

 

Make a flashlight:

 

I found this pretty cool flashlight diy video and tried to adapt it to my needs…

Video

 

I made my flashlight with one light to save space withing the body of the light and to save on voltage for my led.

I first had to learn how to solder, which was sort of a trick.  But I made the contact leads too long on the light string which gave me problems later.  I also changed the type of switch to a tiny toggle switch that is only on while depressed, to mimic a little thumb light I used to have and still miss.  This change, however minor,  was  going to end up being a tricky situation to contend  with as well.

The switch I used was really small so there was not much to solder to once the leads were put through the end cap of the light.  Moon, (a resident), gave me some advice about working with such a small connection which turned out to be very useful indeed.  The result of the long leads coming from the LED was to unpin the leads from the battery every time I attempted to close the light, but with a little tinkering and a lot of patience I was able to get it closed with the light working.

 

I really found out some of the strengths and weaknesses of the fabrication lab in this project.  Buy your own tools if at all possible, and keep a good stock of your own tools in a sizable toolbox. Don’t count on something being there for use even if the shop usually has it. Buy your own supplies if at all possible, and keep those supplies in your own toolbox.  Anyway, here are some photos of the materials and the process.

Circuit template

Simple Circuit (turns out this is wrong…this is a short circuit, it needs a resistor)

Single Diode Schematic W Resist

Circuit with a resistor and a LED

Triple Diode Schematic Parallel W Resist

Circuit with a resistor and three LEDs in parallel

Triple Diode Schematic Series W Resist

Circuit with a series of LEDs and a resistor

 

I made all of these listed in the schematic. I am still trying to work out how to document this in the best possible way.  I am sure with practice I am going to figure out a clear and concise way to show this work. Until then this is what I have.