Project tutorial
Useless Box

Useless Box

A machine that turns off the knob that you've just switched on- a ruthless battle between human and robot.

  • 19,233 views
  • 3 comments
  • 8 respects

Components and supplies

Necessary tools and machines

laptop
wire stripper
voltmeter

Apps and online services

About this project

Fascinated by this humorous anthropomorphic idea on instructables that left me philosophizing deeply about the essence of art, I decided to make this a project after witnessing many ruthless battles between human and robot on youtube. 


How does it work?

The Arduino "listens" to the state of the switch and actuates the servo when the switch is activated.


In the OFF state, the Arduino sends the servo to the reset position. When a user flips the switch to ON, the Arduino sends a signal to the servo and actuates a finger to push the switch to the OFF state.


Instructions

1. Program the Arduino.

2. Make the schematics using 9v battery, wires, breadboard, 10 ohm resistor, Arduino, and a switch.

3. Launch Arduino.

4. Make a box with cardboard. [I made it large enough to house the breadboard.]

5. Create servo housing and the finger. [Here, I used a rectangular cardboard with a hole as housing for servo motor and dental floss to secure the bind of the finger and servo motor. The finger is made with multiple layers of S-shaped cardboard.]

6. Test the angle of movements and adjust numbers in the program. Make sure there is enough force for the finger to push the switch off.

7. Wire and attach power supply

8. Test the Most Useless Machine Ever and voila!

Note: 

Move the Arduino to the side so when the finger rotates, it does not get in the way.

Attach the 9V power supply to the Arduino. Remember to detach the battery when not in use or else it will drain your battery.

Code

Arduino IDE codeC/C++
Download the Arduino IDE for your computer and run it.

Connect the Arduino UNO to the Mac using USB cable. For more info, check out: http://arduino.cc/en/Guide/MacOSX

Below is the code I copied from Instructables to program the Arduino. He modified the "Sweep" code by Barragan.
He also randomized the speed when the finger retreats into the box to make it more interesting. I made slight adjustments to the range.
// Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.

#include <Servo.h>

const int  buttonPin = 2;
int buttonState = 0;

Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created
int pos;        // variable to store the servo position
long timeDelay;

void setup()
{
  pinMode(buttonPin, INPUT);
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop()
{
  buttonState = digitalRead(buttonPin);  
                            // Read the button position
  if (buttonState == HIGH) {
     for(pos = myservo.read(); pos >=20; pos -= 1) { 
                            // goes from 90 degrees to 20 degrees in 1 step                                   
       myservo.write(pos);  // tell servo to go to position in variable 'ONpos'
       timeDelay = random(15, 30);
       delay(15);           // randomize wait time for the servo to reach the position
     }
  }
  else {
     timeDelay = random(1, 4);
     for(pos = myservo.read(); pos <=90; pos += timeDelay) {
                            // goes from 20 degrees to 90 degrees in 1 step                            
       myservo.write(pos);  // tell servo to go to position in variable 'OFFpos'                
       delay(15);           // randomize wait time for the servo to reach the position
     }
  }
}

Schematics

Schematics
Using the breadboard to figure out the angle of the servo before soldering the wires is highly recommended. To adjust the programming to get the right angle of the servo hinge and the switch took a lot of trial and errors.
Screen%20shot%202015 10 01%20at%204.10.47%20pm

Comments

Add projectSign up / Login