The Useless Machine was not created by me, it can be found in Make Magazine and in numerous Instructables and DIY articles online. A useless machine, sometimes known as a "useless box", is a device which has a function but no direct purpose.It may be intended to make a philosophical point, as an amusing engineering "hack", or as an intellectual joke.Devices which have no function or which malfunction are not considered to be "useless machines". The Arduino is always ON, this is why I added a switch for the battery to save some power when the machine is not in use. Reply. I built mine, maybe not perfect, but still much personal :) 1. It just sits there tempting the user to switch it “on”. It is so simple but brings a smile to the face of everyone that tries! More Buying Choices $20.79 (2 new offers) Loprt Wooden Useless Box Leave Me Alone Box Most Useless Machine Don't Touch Tiger Toy … Scotch Packing Tape Heavy Duty Shipping Tape, 1.88" x 35m, 1 Roll with Dispenser . By building the kit yourself only you will know the secret of how it works. This item is no longer for sale. exactly what I need! The Useless Machine is a gizmo that turns itself off when you switch it on. really nice :) any video? Note that the dc motor speed is controlled by pin 11, Direction by pin 13, and brakes on pin 8, these are considered channel B on the arduino motor shield. I am showing them below as separated just for clarity, hopefully! BEAM Solar Powered Pummer (Heart Shaped PCB), Digital Measuring Roller Using Microbit & Tinkercad, Pocket Dice! An Arduino motor shield, this will also be handy for other projects (or you can design an H-bridge yourself, search it out) 2. Useless machine bundle; Ultimate in self-defeating; 39300 Black acrylic ''Useless Box'' construction set ; Metal hinges; Comes with ''crack warrantee'' Ages: 12+ The MostUseless Machine Kit turns itself off when you turn it on. I decided to make this useless machine as a gift for my little nephew. Useless Box Kit; 7. If you are looking for an original gift or a fun birthday present this is what you are looking for. I would like to add some color to the arms but didn't have time for those. It just sits there tempting the user to switch it “on”. Make Magazine's amiable editor-in-chief, Mark Frauenfelder demonstrated The Useless Machine on the Colbert Report! note that in step 9, I provided another version of the code that picks random moves instead of sequential. milnepe 29 Apr 2016. I think you are right though: in the final stage it would've looked great! Is it magic? $22.95 $ 22. Turns itself off, with 15 different movement effects. Thanks. Thanks to our 427 backers and 173 customers on Amazon who believe in our project. I have been wanting to … You can find the updated code below, also note that I've made the machine picks the moves randomly, this can be changed back to sequential by simply setting boolean randomize = false; Thanks ALL for your great suggestions!The code (Better to download the file attached to this step instead of copy/paste from below): #include Servo doorServo; Servo handServo; unsigned long TimerA,TimerB; //timer for the movement detection routine int switch_pin = 2; //set switch on pin 2 //motor variables int motorThrottle=11; int motorDirection = 13; int motorBrake=8; //Distance Variables int motionPin = 3; //motion sensor pin on analog 0 int lastDist = 0; //to remember last distance int currentDist = 0; int thresh = 200; //Threshold for Movement (set it such that you get the desired sensetivity of motion detection) int pos = 0; int selectedMove = 0; //move selector int Testmove = 0; //test mode: set to move number to test only one selected move //(set to Zero to run normally i.e: roundrobbin on all moves) boolean randomize = true; // if true, the box will do movers randomly, if set to false then the moves will be done sequencially from 1 to 10 void setup() { Serial.begin(9600); pinMode(switch_pin, INPUT); doorServo.attach(9); //set door servo on Pin 9 pwm handServo.attach(10); //set hand servo on Pin 10 pwm doorServo.write(80); //set door to hiding position handServo.write(0); //set hand to hiding position //Setup Channel B, since Channel A is reserved by door and hand servos and can't ber used at same time pinMode(motorDirection, OUTPUT); //Initiates Motor Channel B pin pinMode(motorBrake, OUTPUT); //Initiates Brake Channel B pin } void loop() { //if the switch is on, then move door and hand to switch it off... if(digitalRead(switch_pin) == HIGH) { if (Testmove == 0) { if(randomize == false) { if (selectedMove > 10) { selectedMove = 0; //when all moves are played, repeat the moves from beginning } } else { selectedMove = random(11); } } else { selectedMove = Testmove; } Serial.println(selectedMove); if (selectedMove == 0) { switchoff(); } else if (selectedMove == 1) { switchoff(); } else if (selectedMove == 2) { switchoffbitaraddod(); } else if (selectedMove == 3) { crazydoor(); } else if (selectedMove == 4) { crazyslow(); } else if (selectedMove == 5) { m7anika7anika(); } else if (selectedMove == 6) { m3alla2(); } else if (selectedMove == 7) { switchoff(); } else if (selectedMove == 8) { matrix(); } else if (selectedMove == 9) { sneak(); } else if (selectedMove == 10) { zee7(); } if (Testmove == 0 && randomize == false) { selectedMove++; //switch to next move if not in test mode } } } // Library of moves // basic move void switchoff() { //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 129; pos = 4) { handServo.write(pos); delay(15); } //hiding hand for(pos = 129; pos>=0; pos-=4) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } } // move 3: open and wait, then move hand and wait, then switch of and hide void switchoffbitaraddod() { //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } delay(800); //Moving hand for(pos = 0; pos < 100; pos = 4) { handServo.write(pos); delay(15); } delay(1000); for(pos = 100; pos < 129; pos = 4) { handServo.write(pos); delay(15); } //hiding hand for(pos = 129; pos>=0; pos-=5) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } } //move 4: open door then close it many times, wait, then quickly reoprn a nd switch off and hide. Make all the connections seen in the schematic step, and try to put all inside the box similar to what's shown above: Above is how I put the DC motor gear box (taken from a cheap RC car), also showing the batter and switch placement. The box base, the box lid and the internal mechanisms which consist of a cam assembly and the mounting brackets. An SPTT or SPST switch for the trigger (basically, any switch that suits you!) But how? http://9x20lathe.blogspot.com/2010/01/components-and-schematic-for-useless.html, WordPress on Godaddy can’t send email to its own domain, Using Microsoft SQL Server With Node-Red and MQTT, Programming a Replacement Keyless Entry Remote, How to terminate RJ45 connectors on Cat5 Ethernet cable, Keyless entry remote programming for 1998-2006 GM, Chevrolet, GMC, Launch Node-Red On Startup With a Batch File, X10 Control Using Arduino, Modbus, and ScadaBR. I special make these to order. 6 years ago The useless machine is a simple box with a switch and motor, when you turn on the switch the lid opens and the arm swings out and turns off the machine and then retracts. Mag iCreatum All-in-One 3D Printer. if you are not using the shield, then you can directly connect the battery to the power barrel on the main arduino board. 4.2 out of 5 stars 3. When they do, the machine somehow, some way, turns itself off; … The Useless Can is a DIY kit with 52 parts that you assemble without soldering to create a fun mechanism. Hope you enjoy! Game Toy Wooden Tricky Useless Box Diy Kit Creative Adult; 9. I am happy to finally finish this project, it took a couple of hours to build. We used Baltic Birch for this instructable. I am using only one now. Here is a helpful site that has a schematic for how to wire the device. I wish you can redo the video while having the dragon directly facing the camera (top-view), I feel this will be hilarious, so see the tongue sneaking out! !!! Thought 1: Using an Arduino for this is just ridiculous overkill Thought 2: After watching the video-Using an Arduino for this is just pure genius! Report comment. Thanks for your updates to the project. on Introduction. milnepe 29 Apr 2016. Some jumper wiresOptional: In case you want to design a move that includes moving the box around (like last move in the video), then you can get: 1. CAD $26.86 - 47.02 / Piece; Free shipping; Add to Cart Chat; Find Similar. where pin 13 for direction, pin 11 for speed and pin 8 for brakes control. Consumed 5 tubes of Cyanoacrylat glue (aka strong fast-acting adhesives) Here it is: A 22 x 14 x 14 cm box. Find answers in product info, Q&As, reviews There was a problem completing your request. Useless Box,Mini Funny Toy Creative Gifts Useless Box DIY Parts Kit, Leave Me Alone Machine Fully Assembled Funny Toys as Gift and for Stress-Release Perfect for Home & Office Desk. … For the hardware debounce: 1. :)) really well done man, so happy to see your bombbox alive! Contribute to jasoncoon/useless development by creating an account on GitHub. 6 9 0. I am already planning to use an interrupt on the switch, instead of the current simple HIGH/LOW detection, and coupling it with sleep mode. Arduino Most Useless Machine Ever Project: I wanted to get into Arduino projects and introduce my sons to robotics using Arduino. Did you make this project? I had a lot of fun making it and he really liked it. My version is based on Arduino, you may think it is an overkill, but given the flexibility it gave me, I think it is worth it. So many useless machines are built, why building another one? For reference, below are the min/max values I used for each servo as you will see them occurring in the code:The door: 80 hiding, 155 fully openThe hand: 0 hiding, 129 pushing on switchHere is the code (Better to download the file attached to this step instead of copy/paste from below):#include Servo doorServo; Servo handServo; int switch_pin = 2; //set switch on pin 2 //motor variables int motorThrottle=11; int motorDirection = 13; int motorBrake=8; int pos = 0; int selectedMove = 0; //move selector int Testmove = 0; //test mode: set to move number to test only one selected move //(set to Zero to run normally i.e: roundrobbin on amm moves) void setup() { Serial.begin(9600); pinMode(switch_pin, INPUT); doorServo.attach(9); //set door servo on Pin 9 pwm handServo.attach(10); //set hand servo on Pin 10 pwm doorServo.write(80); //set door to hiding position handServo.write(0); //set hand to hiding position //Setup Channel B, (since Channel A is reserved by door and hand servos and can't ber used at same time) pinMode(motorDirection, OUTPUT); //Initiates Motor Channel B pin pinMode(motorBrake, OUTPUT); //Initiates Brake Channel B pin } void loop() { if (Testmove != 0) { selectedMove = Testmove; } //if the switch is on, then move door and hand to switch it off... if(digitalRead(switch_pin) == HIGH) { if (selectedMove > 10) { selectedMove = 0; } //when all moves are played, repeat the moves from beginning // below are all the "Moves" i designed so far, each is a function that is written below in the code, execuse the names, abit strange? Apr 17, 2020 - This useless box has an attitude. InnoTechnix is raising funds for Useless Machine in a Can - Fun Kit for Everyone on Kickstarter! Here is a link to some Make and Make Magazine posts: http://makeprojects.com/Project/The+Most+Useless+Machine/91/1. void crazydoor() { //Moving door for(pos = 80; pos < 125; pos = 3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 125; pos>=80; pos-=5) { doorServo.write(pos); delay(15); } //Moving door for(pos = 80; pos < 110; pos = 3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 110; pos>=80; pos-=15) { doorServo.write(pos); delay(15); } delay(700); //Moving door for(pos = 80; pos < 125; pos = 3) { doorServo.write(pos); delay(15); } delay(700); //hiding door for(pos = 125; pos>=80; pos-=5) { doorServo.write(pos); delay(15); } //----of switch of----// //Moving door for(pos = 80; pos < 155; pos = 8) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 129; pos = 3) { handServo.write(pos); delay(15); } //hiding hand for(pos = 129; pos>=0; pos-=3) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=15) { doorServo.write(pos); delay(15); } } // move 5: open door, then move hand very slowly forward and back to hiding very slowly, then quickly close door void crazyslow() { //Moving door for(pos = 80; pos < 155; pos = 1) { doorServo.write(pos); delay(30); } //Moving hand for(pos = 0; pos < 129; pos = 1) { handServo.write(pos); delay(30); } //hiding hand for(pos = 129; pos>=0; pos-=1) { handServo.write(pos); delay(30); } //hiding door for(pos = 155; pos>=125; pos-=1) { doorServo.write(pos); delay(30); } delay(100); for(pos = 125; pos>=80; pos-=4) { doorServo.write(pos); delay(15); } } //move 6: void m7anika7anika() { //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 70; pos = 1) { handServo.write(pos); delay(15); } delay(800); //hiding door for(pos = 155; pos>=130; pos-=3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 130; pos < 155; pos =3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=130; pos-=3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 130; pos < 155; pos =3) { doorServo.write(pos); delay(15); } handServo.write(40); delay(1000); //Moving hand for(pos = 40; pos < 129; pos = 4) { handServo.write(pos); delay(15); } //hiding hand for(pos = 129; pos>=0; pos-=4) { handServo.write(pos); delay(15); } for(pos = 120; pos>=80; pos -= 1) { doorServo.write(pos); delay(15); } } void m3alla2(){ //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 127; pos = 4) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=130; pos-=3) { doorServo.write(pos); delay(15); } delay(2000); for(pos = 130; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } for(pos = 155; pos>=140; pos-=3) { doorServo.write(pos); delay(15); } for(pos = 140; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } delay(500); //hiding hand for(pos = 127; pos>=0; pos-=4) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } } void matrix() { //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 80; pos = 4) { handServo.write(pos); delay(15); } for(pos = 80; pos < 129; pos = 1) { handServo.write(pos); delay(30); } delay(300); for(pos = 129; pos>=0; pos-=4) { handServo.write(pos); delay(10); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } } void sneak() { //Moving door for(pos = 80; pos < 130; pos = 1) { doorServo.write(pos); delay(30); } delay(2000); //Moving hand for(pos = 0; pos < 40; pos = 1) { handServo.write(pos); delay(30); } delay(500); for(pos = 130; pos < 155; pos = 4) { doorServo.write(pos); delay(15); } delay(100); for(pos = 40; pos < 90; pos = 4) { handServo.write(pos); delay(15); } delay(500); //hiding hand for(pos = 90; pos>=70; pos-=4) { handServo.write(pos); delay(15); } delay(100); for(pos = 70; pos < 90; pos = 4) { handServo.write(pos); delay(15); } delay(100); for(pos = 90; pos>=70; pos-=4) { handServo.write(pos); delay(15); } delay(100); for(pos = 70; pos < 129; pos = 4) { handServo.write(pos); delay(15); } for(pos = 129; pos>=0; pos-=4) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } } //this move will open the door and wait for movement, if detected near the switch, //the box will move first to the Right, and then to the Left, and finally the hand moves and turns off the switch void zee7() { //open door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } delay(1200); //wait to stabilize sensor readings after opening the door // set the timer and read the sensor // wait for movement that exceeds threshold or if timer expires (5 sec), lastDist= analogRead(motionPin); TimerA= millis(); while(millis()-TimerA <= 5000) { currentDist = analogRead(motionPin); //Does the current distance deviate from the last distance by more than the threshold? Thanks for posting. CDN$ 30.49 CDN$ 30. All Product Information Customer Q&A's Customer Reviews Your question might be answered by sellers, … The code is heavily commented, I hope I didn't overdo it! This Useless Machine is just a pretext to build something using scavenged parts. I also the dramatization and the music :p just can't stop myself to suggest 3 small modifications if i may:)? Arduino Powered Useless Machine Follow article. $16.66 Next page. hard job fixing the servos and design the hand. I've seen many online, but couldn't find a kit, so I set out to build one. FREE Shipping. 10mF electrolytic capacitor 2. Shop our selection of microcontrollers, 3D printers, robotics hardware, crafts projects, and kits for makers and DIY enthusiasts of all ages. A cheap RC car so you can take its DC motor and gear box Furthermore, still in the "optional" section, I've built a hardware de-bounce circuit to have a clean trigger when the switch is toggled on/off. Fantastic job! This tutorial will guide you to make a useless box machine at home simply. Here is a video of everything put all together. Hahah Thank you for the compliments :) I actually wanted to do much more to it but because of the time crunch I couldn't fit in a lot of the details i wanted to. Arduino Controlled Moody Useless Machine. Ultimate Magic LEAVE ME ALONE Useless Box Kit Machine Science Kit DIY Version Assembled Kit Geek Gift, dandys. DIY And Crafts. on Introduction, My useless machine with arduino and riachis code! Link Hat Tip Comment. Build from the parts of an old printer, this project spotted by Ladyada takes the useless machine to a whole new level. Arduino Powered Useless Machine; Arduino Powered Useless Machine Follow article. It has a variety of … You will end up with the pieces shown in the attached images. So you need to devise your own values according to your box and servo placement. kids; robots; toys; 5,448 views; 1 comment; 1 respect; Components and supplies . A useless machine that flips down a switch. 7 years ago … Useless Box DIY Kit Useless Machine Birthday Gift Toy Geek; 6. Great work man! Hehehe. There are essentially 3 sub-assemblies that will make up your Useless machine. A push button to reset the Arduino in case you want to restart the moves/code from top. The useless machine is the second video in the above posting. The code for the useless box is very simple. - it would be great to put the machine in standing position, i know that this will make lose the help of gravity to close the door, but a simple solution is to put 2 rubber bands attached to the inside of the door on one side and to the inner side of the box for the other end, this will make the door close when the door servo is closing...check my build steps,you will see the rubber band in Step 6... - also what about painting the hands in black, it will be more sneaky and slick ! I tried to give this version a character, as I always felt there is somebody "thinking inside the box", so here I tried, I hope I succeeded to give "her" a life! I made my first Arduino project based on this instructable: a useless dragon! 5. So on to the next project! void crazydoor() { //Moving door for(pos = 80; pos < 125; pos = 3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 125; pos>=80; pos-=5) { doorServo.write(pos); delay(15); } //Moving door for(pos = 80; pos < 110; pos = 3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 110; pos>=80; pos-=15) { doorServo.write(pos); delay(15); } delay(700); //Moving door for(pos = 80; pos < 125; pos = 3) { doorServo.write(pos); delay(15); } delay(700); //hiding door for(pos = 125; pos>=80; pos-=5) { doorServo.write(pos); delay(15); } //----of switch of----// //Moving door for(pos = 80; pos < 155; pos = 8) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 129; pos = 3) { handServo.write(pos); delay(15); } //hiding hand for(pos = 129; pos>=0; pos-=3) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=15) { doorServo.write(pos); delay(15); } } // move 5: open door, then move hand very slowly forward and back to hiding very slowly, then quickly close door void crazyslow() { //Moving door for(pos = 80; pos < 155; pos = 1) { doorServo.write(pos); delay(30); } //Moving hand for(pos = 0; pos < 129; pos = 1) { handServo.write(pos); delay(30); } //hiding hand for(pos = 129; pos>=0; pos-=1) { handServo.write(pos); delay(30); } //hiding door for(pos = 155; pos>=125; pos-=1) { doorServo.write(pos); delay(30); } delay(100); for(pos = 125; pos>=80; pos-=4) { doorServo.write(pos); delay(15); } } //move 6: void m7anika7anika() { //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 70; pos = 1) { handServo.write(pos); delay(15); } delay(800); //hiding door for(pos = 155; pos>=130; pos-=3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 130; pos < 155; pos =3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=130; pos-=3) { doorServo.write(pos); delay(15); } //hiding door for(pos = 130; pos < 155; pos =3) { doorServo.write(pos); delay(15); } handServo.write(40); delay(1000); //Moving hand for(pos = 40; pos < 129; pos = 4) { handServo.write(pos); delay(15); } //hiding hand for(pos = 129; pos>=0; pos-=4) { handServo.write(pos); delay(15); } for(pos = 120; pos>=80; pos -= 1) { doorServo.write(pos); delay(15); } } void m3alla2(){ //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 127; pos = 4) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=130; pos-=3) { doorServo.write(pos); delay(15); } delay(2000); for(pos = 130; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } for(pos = 155; pos>=140; pos-=3) { doorServo.write(pos); delay(15); } for(pos = 140; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } delay(500); //hiding hand for(pos = 127; pos>=0; pos-=4) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } } void matrix() { //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } //Moving hand for(pos = 0; pos < 80; pos = 4) { handServo.write(pos); delay(15); } for(pos = 80; pos < 129; pos = 1) { handServo.write(pos); delay(30); } delay(300); for(pos = 129; pos>=0; pos-=4) { handServo.write(pos); delay(10); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } } void sneak() { //Moving door for(pos = 80; pos < 130; pos = 1) { doorServo.write(pos); delay(30); } delay(2000); //Moving hand for(pos = 0; pos < 40; pos = 1) { handServo.write(pos); delay(30); } delay(500); for(pos = 130; pos < 155; pos = 4) { doorServo.write(pos); delay(15); } delay(100); for(pos = 40; pos < 90; pos = 4) { handServo.write(pos); delay(15); } delay(500); //hiding hand for(pos = 90; pos>=70; pos-=4) { handServo.write(pos); delay(15); } delay(100); for(pos = 70; pos < 90; pos = 4) { handServo.write(pos); delay(15); } delay(100); for(pos = 90; pos>=70; pos-=4) { handServo.write(pos); delay(15); } delay(100); for(pos = 70; pos < 129; pos = 4) { handServo.write(pos); delay(15); } for(pos = 129; pos>=0; pos-=4) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } } void zee7() { //Moving door for(pos = 80; pos < 155; pos = 3) { doorServo.write(pos); delay(15); } delay(2000); //forward @ half speed to the left digitalWrite(motorDirection, LOW); //Establishes RIGHT direction of Channel B digitalWrite(motorBrake, LOW); //Disengage the Brake for Channel B analogWrite(motorThrottle, 100); //Spins the motor on Channel B at full speed delay(300); digitalWrite(motorBrake, HIGH); //Eengage the Brake for Channel B delay(2000); //backward @ half speed to the right digitalWrite(motorDirection, HIGH); //Establishes LEFT direction of Channel B digitalWrite(motorBrake, LOW); //Disengage the Brake for Channel B analogWrite(motorThrottle, 100); //Spins the motor on Channel B at half speed delay(300); digitalWrite(motorBrake, HIGH); //Eengage the Brake for Channel B delay(1000); //Moving hand for(pos = 0; pos < 129; pos = 4) { handServo.write(pos); delay(15); } //hiding hand for(pos = 129; pos>=0; pos-=4) { handServo.write(pos); delay(15); } //hiding door for(pos = 155; pos>=80; pos-=3) { doorServo.write(pos); delay(15); } }, I've got a proximity sensor today (GP2Y0A21), so now I can use it to move the machine if the user approaches the toggle switch :) For this additional step, I am assuming you've already built the wheels to allow movement (see optional step 8).