Arduinolin

Arduinolin is a project designed to investigate the evolution of material possessions based on electronic trends by taking a traditional object and recreating a new object which is not only a modern, electrified version of the former but also extends the object using the capabilities of digital media.arduinolin

Overview

I decided upon a violin as my “traditional object” of choice, mainly because I thought it would be reasonable to use a stringed object as the ability to reprogram the touch sensors on the gloves to play different pitches when activated supports my concept. I immediately researched the evolution the violin and the electronic violin, which is all documented in this previous blog post.

Inspiration

The concept was inspired by a conversation I had with my father one night. I was on the phone with him and he was talking about an app he had just purchased for his iPhone. What caught my attention was that he had actually paid over $3.oo for it – I am not in the habit of downloading an application unless it is free. That set me thinking, how many apps have you purchased? How much money have you spent on virtual material? Is it worth it? How will very highly valued items which gain value as they age be transferred into the electronic world, and will that transfer ever be successful?

There is also an ecological argument accompanying the evolutionary argument which entails comparing the carbon footprint of apps and actual instruments, and how this could all eventually be handled by a single piece of technology.

Technical Aspects

The bulk of the work in this project was in figuring out how I was going to wire touch sensitive capacitors and make them individually interactive to the human touch. I had considered going with something like a pressure sensor which would return a different value depending where on the strip pressure was applied but turned this down in favor of using materials which could easily be translated onto conductive fabric for the purpose of making the final product wearable. In retrospect, I greatly regret not pursuing the first option, which would have made for a much smoother transition between instruments and a greater degree of musicality.

Additionally, I was unsure of how I was going to wire everything together onto the glove. The palm of the hand alone features twenty four wires, all interwoven into the glove itself using conductive thread. In the end I did use jumper cables to transfer data from the individual pins to the glove, then touched the end of the jumper cable to the thread. From there, all the Arduino does is loop through each pin then for each pin loop through each note in an array and if the pin corresponds to the note, play the note. I also have some “fun” touchpads at the moment which loop through a series of notes.

Critical Reflection

There are many existing versions of this project ranging in degrees of professionalism from those hobbyist who work out of the garage to commercially marketed products (typically designed to help one learn an instrument). I see that there are few limits to the extent to which I could improve upon my project, at least in theory. However, there are two things I would like to improve upon more than anything else.

Firstly, I am greatly irritated by the fact that although I have two gloves, the left hand representing the violin and the right hand representing the bow, the right hand does not actually need to do anything for the violin to work. Although in principle placing an accelerometer on the right glove would not be difficult, convincing the accelerometer to communicate with the arduino might have been something of a challenge perhaps involving a wireless shield.

Secondly, I am not impressed by the sound quality at all. I understand that it is very possible to synthesize sounds using MaxMSP which would be a far more rewarding result than the current buzzes provided by the Piezo element. It would be also be very rewarding to have a proper headphone jack to output the audio. I enjoy the personal experience my current edition supplies, but would certainly enhance this wherever possible. (Sticking a Piezo buzzer in one’s hat does not necessarily result in the best audio.)

Kristinophone

Initially, I wanted to create a fairly traditional violin, where only the strings were essentially electronics. During the project discussion, however, it was pointed out to me that this had already been done — several times over. I was advised to make an instrument which was truly my own, and I have now done so:

Electric Violin Photo

Here are some electronic violins I considered using as a starting point.

Unfortunately, CMU students are overacheivers and someone got here first:   942745_513514998723665_1692590458_n They didn’t have LED lights in their acrylic violin, but it was too close to emulate.

 

Here was my first mockup. (You know how most people do drafts in their sketchbook? I couldn’t close mine after this one.)1474426_717771071574164_1198692958_n

 

Ta-dah! IMG_8966IMG_8983

 

This is my project to date. Thanks!

 

Looking Outwards + Final Project Sketches

Looking Outwards:
1. The Kinetic Chandelier

I personally found this chandelier quite endearing; the way it follows you around reminds me of something that just wants a hug. In fact, I see this less as a chandelier and more of an ecosystem within and of itself. Arguably, this could belong underwater as well. This chandelier also boasts a utilitarian feature: the light is always pointing towards you, so say goodbye to shifting around awkwardly while reading, trying to catch the light!

2.  D.O.R.T.H.E.

While this particular piece is also somewhat endearing, I like the idea behind the typewriter. If this were on a computer running a program in your background it would be less artistic but adhere more to the idea of one’s life having a soundtrack. (I always imagine mine does.) If my computer were able to sense and generate music based on my mood, I would be extremely impressed. Granted, the majority of the work done here is in the hardware which would be difficult to transfer to a computer, but it is possible to completely transfer the program to only software. I think I’m seeing a trope here — I like the idea of a machine being able to read one’s emotions. (Although perhaps not in the style of Marvin from the Hitchhiker’s Guide to the Galaxy). It really gives these machines a life force of their own.

 

3. Touch Vision Interface

Not a novel idea, I know. With that being said, the idea of being able to hide in a corner and control some piece if technology (in particular, with the goal of surprising someone — can you imagine an augmented haunted house with controls like these?) appeals to me. This kind of technology is already implemented in Razzy’s down on South Craig in a similar fashion — one choose what song to play over the speakers from from one’s own phone. A touch interface like this, however, gives that extra degree of control that makes the experience a little more special.

My Project Sketches/Ideas

1. An Electric Violin

This violin would be feature pressure pads on the neck where each of the four strings would normally be situated. I realize there should be a second set of pressure sensors just below the fingerboard to emulate a bow, but am at present unsure as to how these two would interact with one another. One thing is for sure: If I am to implement this project, I will have to switch to using a Teensy.

Violin body would have to be lasercut, and potentially layered (depending on the thickness the lasercutter can deal with). Fancy futuristic body shape. Electric Violin Photo20131120_140732 20131120_140726

20131120_143024

I think perhaps it would be more “realistic” to use the cord which changes resistances as it stretches. Granted, it would have to start off fairly taught. There also needs to be an output device somewhere.

Additionally, would it not be awesome to make the body/bow from acrylic and insert lights?

Second Idea Coming Soon! 

I guess a second project (also music-related) would be to have a piano with pressure sensors under say, a certain octave of notes. When pressed, lights on the piano would light up in different ways.

Get Out of My Space!

[vimeo 79357294]

by Chloe and Kristina,

with many thanks to Michelle Ma for acting for us 🙂

The following is out Fritzing diagram: 

 

Clearly the epitome of style, this personal space sensor is all you’ll ever need to let those people who’ve been in your bubble too long it’s time for them to go — or at least to take a step back.

Screen Shot 2013-11-14 at 2.30.19 PM

 We used: the Pico Buzzer from our Arduino Kits, the 7-segment display provided for the assignment, and an arbitrary InfraRed sensor in order to sense the distance between a person and the machine.

The following images are excerpts from our planning:

20131114_155939 20131114_155928

And here is our code:



#include <Wire.h> // Enable this line if using Arduino Uno, Mega, etc.
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"

int irReader = 2;
int irVal = 0;
int buzzerPin = 9;
int songLength = 8;
int frequencies[] = {
330,262,330,440,330,262,330,440};
int tempo = 150;
int lastCountDownTime = 0;
boolean play = false;
int displayNum = 10;

void playBuzzer(boolean play){
if (play == true){
int i,tempo;
for ( i = 0; i < 2; i++){
tone(buzzerPin,frequencies[i],tempo);
delay(tempo);
}
}
while(true){
}
}

Adafruit_7segment matrix = Adafruit_7segment();
int myNum;
void setup() {
pinMode(buzzerPin,OUTPUT);
myNum = 10;
Serial.begin(9600);
Serial.println("7 Segment Backpack Test");
matrix.begin(0x70);

}

void loop() {
play = false;
int now = millis();
irVal = analogRead(irReader);
Serial.println(irVal);

if (irVal > 250){
int elapsed = now-lastCountDownTime;
if (elapsed >= 1000)
{
myNum = (myNum + 1)%11;
int displayNum = 10-myNum;
lastCountDownTime = now;
matrix.print(displayNum, DEC);
matrix.println(displayNum);
matrix.writeDisplay();
if (displayNum == 0) {
if (irVal > 250){
//play = true;
displayNum = 0;
//playBuzzer(play);
tone(buzzerPin,1000,tempo);
delay(200);
tone(buzzerPin,1000,tempo);
delay(200);
tone(buzzerPin,1000,tempo);

}
else
{
play = false;
playBuzzer(play);
}
}

}
play = false;
}
else
{
myNum = -1;
}

}

 

 

Arduino Shield!

The first shield I found allows one to play relatively high-quality audio. In principle I mention this merely because I believe it might make for a nice feature in any kind of installation and is potentially one of the more useful shields out there. Don’t get me wrong: GPS shields seem like all kinds of useful. I just feel that audio is a larger part of our everyday lives.

And, of course, it comes with it’s own snazzy potentiometer.

audio audio2

Aand it comes with its own headphone jack! Who needs an iPod or a phone which plays music when you have one of these?

Of all the shields available, particularly those on adafruit, there was one which clearly stood out to all of us: the touchscreen.
touchscreen shield
Never mind that this is currently the hottest peice of technology on the market — although those people in the technical field are even looking beyond the realm of the 3D printer and touch screen technology is nothing new it remains an attractive feature. My reasons for appreciating this particular touchscreen also include that you can display full color pictures: touchscreen shield as photoframe It may not be the greatest piece of display technology ever invented, but this image combined with technology could serve a multitude of purposes. For example, it could serve as a low-end tablet alternative for running simple applications which might, for example, have an autistic child touching and dragging facial expressions and their descriptions. You could far more easily invite people to play with your installation without any fear of having them knock it over or restart your project or delete your code…. It is not worry free, it is simply less worrisome.

The third piece of technology which stood out to me was also a display of sorts. display 2

Now I realize that the most exciting-looking feature of this pretty little display is the fact that it too, features a range of colors… I chose this simply because I think having a display or any sort makes a device much more communicable. Why is it that all of our computers today run off of a Graphical User Interface? Because it is so much easier to understand. If an Arduino had just a tiny little screen it would feel much easier to communicate with, especially if it were set up for some kind of project and something stopped running or ran out of looping space and were to pop up on the Arduino, whoever was running the show would know what the problem was without finding someone to put in their username and password in order to revive their laptop and find out what the problem was that way…. given that this project was plugged in to a laptop, anyway.

display

One other exciting little feature about this is that it only uses two pins. There is another cheaper version ($~12 rather than $~23) but this uses more pins. In the name if efficacity and saving space, I hereby nominate this version.

(Additionally, you could also have this display something like, “I am an important piece of software as well as hardware! Please do not unplug me! To avoid further disasters. I feel like I was influenced by Professor Momeni’s “Do not unplug” policy for the Art Fab…)

 

 

Looking Outwards: Physical Hardware

So I have this camera, less than a centimeter tall…

camera

Namely,this little thing, which captured 640 x 480 video. Image the possibilities! For less than $10, one could essentially hide the controller for a Box2D application, for example. It goes without saying that this one is completely awesome.

…and this box which recognizes your voice…

As a follow up, I would also like to nominate this voice recognition software:

vrs

Firstly, it is available in multiple languages. I always thought it would be awesome to have a software which could translate a conversation between two people in real time. Although I realize one could not do that with this particular device, which only comes with one particular language at a time, it leaves the door open for thought. Second, one can potentially image having characters controlled by a particular individual’s voice. For example, a very high voice might control a skinny, small character whereas a very low voice might control a much larger creature. (Interactive ecosystem, perhaps?)

…and the capability to use it all underwater!

LED H2O button

This little button may not look like much at first glance, but an underwater LED glowing button is definitely a step up from your average on/off switch. Coupled with some underwater housing, this could be used to create an underwater projection or a smoke projection without compromising your equipment and easily being able to see how to turn your machine on and off. For the little inexpensive piece of technology this is, I feel it would be worth it.

Augmented Projection

So, I knew where I wanted to do my projection: The underground. There are some fantastic-looking lamps around which I wanted to project different objects to interact with them. For example:  underground projection Underground -- SketchThese were two ideas I had. The first I was going to model using the box2D physics library to make things fall on top of/jump off the top of the lamps, and also potentially have one of the lamps as an attractor. The second I was going to model using springs, where the lamps would act as “anchors” and would radiate these lightening-like Van der Graff machine-like patterns. (Much spookier and season appropriate.)

So I started working on that. Here is the test projection I made in my dorm: test projection

This is only the first idea. It actually worked really quite well. Note that in this version I had not yet added the lower boundary which was the top of the sofas at the Underground just underneath the lamps. (I forgot about that until I got there.) Also note that in this version I am projecting the lamps onto the wall just so I can tell where they go.

Of course, the project I made was about 1m x 0.6m. The wall was considerably larger (and proportioned differently) — and the projectior failed utterly to project any kind of image at all. So I tried changing the location… which essentially meant everything I had done was invalid. i.e., not square.

So… here is a quick video where I just get one of the examples to work with another alternative surrounding I was thinking of trying to work with, since the first one didn’t work out:

Assignment 7 — Snow Fears a Lantern

So, an ecosystem:

I initially wanted something far more complex than this. I had wanted the viewer/user to be the creature and carry a lantern,. Of course, all we see is the lantern. The snow is meant to me repulsed by the lantern, as though it were frightened of it. I also wanted little glowing creatures to be attracted to the lantern and perhaps small woodland animals to fear the lantern and run away, but c’est la vie… there is only so much I can deal with.

Here is a video of my result. (I apologize for the low quality — my screengrabbing software can only deal with so much.) The first half shows one version where as soon as the lantern is lit the snow is repelled, the second half shows another version where it stops snowing completely when the lantern is lit (although those particles already formed off screen continue to fall until they die and are removed from the system.)

Perhaps it would be more interesting if I added an additional streetlamp… that would not be difficult.

https://www.youtube.com/watch?v=YIVixYb8zCY

(Snow is an ecosystem, is it not? Uuugh..)

Kristina — Screen cut

[EDIT]

Since my last lasercut screen design proved to be an abysmal failure… here is the follow up.

http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-0031.pdf
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-0060.pdf
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-0300.pdf
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-0383.pdf
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-0415.pdf
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-0784.pdf
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-0791.pdf
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-2213.pdf
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/frame-2654.pdf

Although it turns out there is in fact a way to flatten images like the first one I produced in Rhino 3D… I would be beyond pleased if that worked, but until then… I will lasercut one from the above selection as soon as I can figure out how to find/book/use the lasercutter.

This design is extremely simple, made by a series of small circles attracted to a central circle. In this way, I hope to see the most light come through at the center of the design.

 

 
http://cmuems.com/2013/a/wp-content/uploads/sites/2/2013/10/Kristina-LaserScreen-copy.pdf

Here is my final version of my PDF — save for having to tweak some things to get it to laser cut. The idea behind having just the barest most minimalistic way is that snow itself is minimalistic/white. Additionally, I wanted something which wouldn’t completely delete Os and Ds on the laser cutter.

Laser-cut screen (in Progress)

I wanted to incorporate two factors into my screen: first, text. I know this may look slightly bizarre after having been laser cut — Ds and Os will be simply cut from the screen — but I do not feel this is disadvantageous. There are some beautiful examples in the codelab for design students on the level below EMS which to me feel typographic rather than incomplete. The second was some kind of setup such that there was more text towards the top. This is because the most light would shine through the screen at the top in this setup, which would be much more visually balanced. I also wanted some of the words, like “rain” to show vertically rather than horizontally.
[pictures would be helpful — pending]

To implement this I decided to try to use the mutual repulsion spring system we were shown as this would be an opportunity to use a particle system without having to pack but I could still use (reverse) gravity to draw the text upwards towards the top of the screen. I’m still having trouble getting it to work, though, as text() does not work in quite the same way as ellipse(), particularly when one is trying to retreive words from an array…

(If anyone could shed some light on this, it would be great…)

In the mean time, here is my code:

ArrayList myWords;

void setup() {
myWords = new ArrayList();
//*
//* for (int i = 0; i < 10; i++) { //* float rx = random(width); //* float ry = random(height); //* //myWords.add(); //* myWords += randomWord; //* } // } void draw(){ background(255); float gravityForcex = -0.005; float gravityForcey = 0; float mutualRepulsionAmount = 1.0; for (int i = 0; i< 20; i++) { words nextWord = myWords.get(i); float wx = nextWord.wx; float wy = nextWord.wy; if (mousePressed) { nextWord.addForce (gravityForcex, gravityForcey); } //this part I essentially copied... I just couldn't think of a better way to do it... but I worked through the whole thing. for (int j=0; j 1.0) {

float componentInX = dx/dh;
float componentInY = dy/dh;
float proportionToDistanceSquared = 1.0/(dh*dh);

float repulsionForcex = mutualRepulsionAmount * componentInX * proportionToDistanceSquared;
float repulsionForcey = mutualRepulsionAmount * componentInY * proportionToDistanceSquared;

nextWord.addForce( repulsionForcex, repulsionForcey);
nextWord.addForce(-repulsionForcex, -repulsionForcey);
}
}
}

for (int i=0; i<50; i++) {
myWords.get(i).update(); //update
}

for (int i=0; i<50; i++) {
myWords.get(i).render(); // reeendering!!
}
}

// this is my other tab...
class words {
float wx;
float wy;
float vx;
float vy;
float mass;

words(float x, float y) {
wx = x;
wy = y;
vx = 0;
vy = 0;
mass = 1.0;
}

void addForce(float fx, float fy) {
float ax = fx/mass;
float ay = fy/mass;
vx+=ax;
vy += ay;
}

void update() {
wx +=vx;
wy += vy;
if (wx