top of page

Creating Goldberg machines

Writer's picture: Valentina NenkovaValentina Nenkova

Example 1 - Rube Goldberg

Reuben Garrett Lucius Goldberg, known best as Rube Goldberg, was an American cartoonist, sculptor, author, engineer, and inventor. Goldberg is best known for his popular cartoons depicting complicated gadgets performing simple tasks in direct, convoluted ways.

Rube Goldberg machine is intentionally designed to perform a simple task in an indirect and over complicated fashion. Often, these machines consist of series of simple devices that are linked together to produce a domino effect, in which each device triggers the next one, and the original goal is achieved only after many steps.


Example 2 - Honda The Cog

Honda - The Cog is a great example of how the Goldberg machine works into the modern world. It fits perfectly of how the machine is suppose to be represented and shows what the input and the output is. The only thing with this is that there is a bit more editing than the actual machine working, but then again in the 21st century.. what do we expect?


Experiment

Today we were suppose to create one of those machines working and connect them all together. Me and Czerina were working today on how to create a spinner for 4 and a half hours!!! It was such a long day, we tried different codes, different ways of making and connecting the wires and then we ended up looking for help from Emma and even then.. the code ended up being wrong somehow when it was literally copied and pasted and even though I had checked how well the wires were connected I still kept finding small mistakes that were connected wrong. I need to make sure I keep reminding myself that everything has to be checked specifically and be very very very picky about the small things, because if those small things are incorrect it will not work!


The link;

https://thecustomizewindows.com/2017/05/arduino-servo-motor-control-servo-pushbutton/


The code;

#include <Servo.h>

const int servoPin = 8; // Servo pin

const int buttonPin = 9; // Pushbutton pin

int buttonState = 0;

int directionState = 0;

Servo myservo;

int pos = 0;

void setup() {

myservo.attach(8);

pinMode(buttonPin, INPUT);

}


void loop(){

buttonState = digitalRead(buttonPin);

if (directionState == 0){

if (buttonState == HIGH) {

directionState = 1;

for(pos = 0; pos < 360; pos += 1)

{

myservo.write(pos);

delay(0); // waits 15ms to reach the position

}

}


} else if (directionState == 1) {

if (buttonState == HIGH) {

directionState = 0;

for (pos = 180; pos>=1; pos -=1)

{

myservo.write(pos);

delay(0);

}

}

}

}

11 views0 comments

Recent Posts

See All

コメント


bottom of page