Augmented reality became reality when we used an awesome Japanese processing library called Nyar4psg. In order to use this library we had to run processing version 1.5 because it hasn’t been updated yet. Essentially, the library detects pixel clusters of the same color to find a black box, called the marker. On a sheet of paper, you must draw an asymmetrical shape, then take a photo of that image or scan it in. Kyle suggested this handy website http://flash.tarotaro.org/ar/MGO2.swf
We made several sizes of the marker, 8X8, 16X16, 32X32, 64X64. Those images are loaded into the processing sketch so that it can determine if the shape inside of the marker is a match. When it matches, a 3D cube appears in perspective on top of the marker.
Augmented Reality in Processing – Nyar4 Library Test from Yumeng Wang on Vimeo.
A simple, yet effective DIY tilt sensor!
Supplies:
Tin foil, small plastic cylinder, breadboard, led, 220 ohm resistor, drill w/ 1/8 in bit, wire, electric tape, marble.
Instructions:
Take the cylindrical container and drill 4 holes in the bottom, like a button. Cut two 1 foot lengths of wire. Strip about 2 – 3 inches off the ends of both wires. Thread the wire through two holes to make a U shape. Thread the other wire through the opposite available holes. Wrap a marble with tin foil and place the marble inside of the container. Cap the container. Tape the wire that comes out of the bottom, making sure to separate each wire from the other. No short circuits! Set up an LED circuit where the negative side is interrupted by the DIY tilt sensor. Finally, utilize the power of gravity and tilt that switch so the marble goes in between the two loops that were made. Watch the magic happen!
It has been a while since my last post because my phone, which was my only tool for documentation, was broken.
Basically where I left off was trying to figure out how to produce sound. There were a number of prototypes that I went through. Cardboard, paper, and finally PVC tubing. There are many examples of PVC music projects. Probably the most famous example is the blue man group’s use of PVC in their performances. PVC was the best option because it is relatively cheap (I got 10 feet for under 5 dollars from Home Depot!). PVC is strong, easily cuttable, and produces sound, all great characteristics for the project.
The length of the tube, I found out, is responsible for producing different tones. A longer pipe will produce a lower frequency vibrations which result in a lower tone and a shorter pipe will produce higher frequency vibrations which result in a higher tone. I cut three sections from my PVC pipe, each varying by about 6 inches.
After cutting the PVC pipes to size, I modified a 3D flue pipe from thingiverse user Japa: http://www.thingiverse.com/thing:35880 by sizing it to fit my 1 inch diameter PVC pipes. I also modified the mouth of the flue pipe to a diameter of 55mm to fit on the squirrel cage fan.
A squirrel cage purchased from sparkfun: https://www.sparkfun.com/products/11270 and attached to two 9V batteries produced enough pressure to create sound from the flue.
After successfully producing sound, I designed and built and enclosure separated by three sections. Section 1 contains the fans, section 2 contains the Arduino, and section 3 contains the PVC pipe.
Loading
Made a simple sound visualizer! It reacts primarily to bass. #Processing #Arduino #ChanceTheRapper
I used a sound impact sensor and a potentiometer to manipulate the processing sketch. Here is the code:
Arduino code is bellow:
int potData = A0;
int sound = 2;
int button = 4;
void setup() {
Serial.begin(57600); //higher baud rate for transfering longer strings of info
pinMode(potData, INPUT);
}
void loop() {
int potVal1 = analogRead(potData);
int soundVal2 = digitalRead(sound);
int buttonVal3 = digitalRead(button);
//concatenation happens bellow
//data format potVal1, soundVal2, buttonVal3 – this will package multiple bits of data
Serial.print(potVal1);
Serial.print(“|”); //adds a character that lets you separate different bits of data.
Serial.print(soundVal2);
Serial.print(“|”);
Serial.println(buttonVal3); //Ends the batch of data
delay(400);
}
Processing code is bellow:
import processing.serial.*;
Serial myPort; // Create object from Serial class
int val; // Data received from the serial port
void setup()
{
size(200, 200);
// I know that the first port in the serial list on my mac
// is always my FTDI adaptor, so I open Serial.list()[0].
// On Windows machines, this generally opens COM1.
// Open whatever port is the one you’re using.
String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
}
void draw()
{
if ( myPort.available() > 0) { // If data is available,
val = myPort.read(); // read it and store it in val
}
}
Bellow are a whole bunch of online resources I have found which helped me understand how flue pipes work and how to build them. Disclosure: There is allot of math involved.
http://en.wikipedia.org/wiki/Organ_flue_pipe_scaling
http://en.wikipedia.org/wiki/Flue_pipe
http://www.sci-experiments.com/organ_pipes/Organ_Pipes.html
http://www.instructables.com/id/Building-Your-Own-Homemade-Flue-Pipe/
http://ssngai-organs.blogspot.com/2011/06/cardboard-flue-pipe-schematic.html
http://www.pykett.org.uk/how_the_flue_pipe_speaks.htm
http://www.lawrencephelps.com/Documents/Articles/Beginner/pipeorgans101.html
http://www.theatreorgans.com/technical/
https://math.dartmouth.edu/archive/m5f11/public_html/proj/Griffith.pdf