Human Motion Project

My original idea is to make a walking robot or a dancing robot with two servo motors as its legs. Also, I would have two knobs that control the movement of each leg. The whole setup was not hard to make. However, it turned out much more difficult than I imagined.

My robot cannot stand the imbalance

The balance was a big problem. When one leg moves, the other leg tends to wobble, making it impossible for the robot to move forward. I then tried to walk forward with only one leg moving at a time. It is impossible to move forward without shifting the centre of gravity by adjusting the other leg. Therefore, I reglued the sticks to the sides of the paper cups and made them more stable. The following is the code I used:

#include <Servo.h>

Servo myservoL; // create servo object to control a servo
Servo myservoR;

int potpinL = A5; // analog pin used to connect the potentiometer
int potpinR = A3;
int valL; // variable to read the value from the analog pin
int valR;

void setup() {
myservoL.attach(9);
myservoR.attach(11);

}

void loop() {
valL = analogRead(potpinL); // reads the value of the potentiometer (value between 0 and 1023)
valL = map(valL, 0, 1023, 0, 90); // scale it to use it with the servo (value between 0 and 180)
valR = analogRead(potpinR);
valR = map(valR, 0, 1023, 0, 90);

myservoL.write(valL); // sets the servo position according to the scaled value
delay(15);
myservoR.write(valR);
delay(15); // waits for the servo to get there
}

Human Motion Project

For this project, I wanted to make something funny that related to human motion. I was heavily inspired by Ivory’s Stupid Pet Trick in which she had various human expressions made on a potted plant.

Originally, I wanted to make 2 eyeballs pop out of a face but I sadly could not get that circuit to work properly.

Instead, I went for a kissy, smoochy face. The idea is that it is blowing kisses at the viewer. It was made using a large solenoid.

The code simply used the “Blink” profile that is given in the RedBoard.

Hand Waver

My understanding of this assignment was to create an object that moved in a way that evoked human movement. For my the the primary interesting aspect of human movement is that it is usually far more complex that a machine that would be designed to cover an equivalent task. Mathematically this would be that the human body has many more degrees of freedom than would be necessary for any single activity. With my machine, my primary goal was to recreate this smooth level of motion by having multiple axes of rotation. I chose to use hand waving, as I could make the point of having multiple axes of rotation without needing to work on it for weeks. By looking at my own hand wave I noticed that there were two primary axes of rotation, at the wrist and elbow. The axes are offset by only a few degrees, but if only one axes is used the motion looks far less human. Therefore, I cut out a basic arm shape in a piece of wood, attached to a servo at either end. The ends of the “arm” were not parallel, the angle being about what I measured on myself when waving. One end was fixed to a base, and the other to a cutout of a hand. The hand was also angled a bit so that it was not vertical to the base, not at the odd angle the arm was at. I then added some simple code so that the arm and hand would turn in sync in opposite directions to create the basic motion, where the hand always faces the same point at every moment in a wave. The final thing I could have done to make the motion look particularly human would have been to cover the arm in “skin” so that the rotation of the wrist appeared continuous over the length of the arm, as it does in a human arm for the same reason. However, I realized that the motion I had was not too far off, and the quality of work I would be able to do for this would be atrocious.

 

I though I had a video of the arm in motion, but instead I took a series of rapid photos, so I will include one of these in this post and add a video if I take one later. 

This is the simple code I mentioned.  various values could be modified to produce different waves, but this set actually produced remarkably smooth results.

#include <Servo.h>
Servo hand;
Servo arm;
int handPos=90;
int armPos=130;
boolean forward;
const int handRate=1;
const int armRate=1;
const int handMax=140;
const int handMin=80;
void setup() {
  Serial.begin(9600);
  hand.attach(5);
  arm.attach(3);
  arm.write(armPos);
  hand.write(handPos);
  delay(100);
}

void loop() {
  if(forward){
    handPos+=handRate;
    armPos-=armRate;
  }
  else{
    handPos-=handRate;
    armPos+=armRate;
  }
  hand.write(handPos);
  arm.write(armPos);
  delay(25);
  if(forward && handPos>=handMax){
    forward=false;
  }
  if(!forward && handPos<=handMin){
    forward=true;
  }
}

 

Making Interactive Art: Set the Stage, Then Shut Up and Listen

This article made me think about how we often present our projects in class. What if, instead telling others the purpose and how they are supposed to interact with the project, we simply let them interact, and then expand on their experience after? I resonated with the author’s claim how making interactive work can be difficult because we are taught that a work of art is a work of expression, it’s a statement. To “set up the stage” and let it be, or to suggest intentions without giving the interpretations, appears liberating, scary and un-doable all at the same time. I haven’t really made the shift of considering interactive media to be like a performance where the audience completes the work. This article made me more aware of how I perceive interactive media as an art form, and how I should perhaps begin to perceive it another way.

Physical Computing’s Greatest Hits (and misses)

I found it interesting how the author claimed that even though an idea has done before, it doesn’t mean you should give up on it. As someone who is new to physical computing, I try to avoid doing ideas that have already been executed because of the lack of originality it presents. But the author presented many creative ways of fulfilling the ideas that have already been done. He provided a creative account of physical computing instruments and discussed the advantages and disadvantages about them, which I found to be extremely useful and beneficial.

Doll Spin

I don’t know where exactly the idea of a spinning doll came from, but my guess is from those jewelry boxes with the spinning ballerina and the music.

My project was extremely simple this time, I accidentally used a servo instead of a DC motor. Though, if I spent time fixing it I’m sure that I could make it work just as well with a DC motor.

The doll I bought from Daiso. I made the skirt (poorly) using extra fabric and hot glue. Below is the coding:

I used an online example and tweaked it in order to fit my continuous servo. The original code would make it turn 180 back and forth.

Here is a picture of the final product:

Physical Computing ‘s Greatest Hit’s and Misses – Response

This article was an good list of inspiring installations that I will definitely return to when thinking about my final project. I found particularly interesting the pixel installations. Perhaps this is because I tend to appreciate the more aesthetic projects rather than amusing or creative ones.

I think it introduced some interesting concepts such as the gloves, it was interesting to see how “simple” coding can create fun and interactive installations.

I don’t really have much to say about this article. I think overall it was interesting to read and it linked some ideas to really amazing examples.

Making Interactive Art: Set the Stage, Then Shut Up and Listen – Response

I enjoyed this article, not only because it was short, but because it reminded me of something that Aaron said in the beginning of the semester that is crucial to IM. During the first lesson he said (I’m paraphrasing here) “I consider myself first and foremost an artist”. This stuck to me and this article is able to communicate a crucial part of being an artist: being able to have your work interpreted. In the sciences and other courses such as engineering, one is often forced to conform to the idea of right and wrong and thus the flexible aspect of IM attracted me.

The fact that one should not prescribe a meaning, a way that an audience should interact and what kind of experience one should get from the project is critical. If one were to prescribe the way in which to interact with an installation, the installation becomes less of an interactive piece, rather it becomes an exhibition.

Lottery Box

For my stupid pet trick, I wanted to create something that would be kind of dumb, but like a game to play with. After struggling foreverrrrrrrr to come up with an idea, I decided to start from the opposite route. I began by messing around with a few different codes and circuits. One of the circuits and codes I created was a random number generator. That made me think of a dice and the applications that could have in real life.

I began thinking of board games and how that could be a used. I then was thinking about just how random the blinking lights were, and guessing which one would come next was near impossible. Then, it struck me that a lottery would be the perfect setup to use this!

I decided to make a lottery box. The way it worked was that a press of a button would trigger the lights to randomize and see if it matched up with the number drawn. I then had to go back into the code and add in the ‘if’ statement for the button. However, I was not able to make the button so that one click would trigger the motion, rather, the button had to stay consistently down in order to work. This was due to the amount of delays in the code.

I ended up laser printing the sides of the box out of cardboard and hot glueing them together. As for the lights, I soldered wires of the right length on to them, as well as the button. I then simply painted the boxand printed out a few instructions toadd to the game so that it made more sense, and voila. 

High-five!

For this week’s project, I was brainstorming the possible human motions that I could create using a motor. (Also, I didn’t use a DC motor for my final project because I thought that using a servo counted as using a motor oops).

While brainstorming, everytime me and a friend would come up with an idea, we would high-five each other. The ideas would end up not working, mainly due to technical reasons and because I would then look back and be like “nah I don’t like it anymore”. After a while, it hit me that a high-five would be a great human motion, used in everyday life, that could easily be replicated.

I simply cut out a hand shape from styrofoam, glued it onto a cardboard piece, and attached it to a servo that was then attached to wood for stability.

As for the coding, all I did was adjust the angle of the servo’s movement so that it would go back and forth consistently.

Looking back, it would’ve been really cool to add some sort of button, like a photocell, that would detect when someone was moving in for a high-five, and then trigger the movement.