Introduction: Saladuino ($14 Chef)

Hey everyone!

We're two high school students and here is the first one of many guides we will be posting about robots we made to make our everyday lives easier and more exciting. This simple and cheap robot can make salads, although for demostration purposes we have it only making a really simple salad made of spinach and ranch; you can easily tweak the codes to add other ingredients as well, such as croutons. We spent $15 total on the parts.... if you have some arduino parts left over or dc motors you can salvage RC car you can push the price down even further.

Supplies

1 Arduino Uno

2. 8 12" Male/Male wires

3. 1 blade or lightweight knife, 3-4" blade ideal.

4. I scoop. 1/8 cup size. A measuring cup works.

5. 1 cork with 1" diameter, and 1 cork with .75" diameter

6. 4 pairs of wooden/bamboo chopsticks - 1 pair 3", 2 pairs 4", 1 pair 5-6"

7.10 rubber bands.

8. 1 12"x12"x1" wooden board

9. 4 DC motors, 3-4.5v

10. I .5"-1" .4"/1cm screm

Step 1: Build the Base

Take a drill and create 3 holes in the shape of a triangle, each hole as wide as a chopstick, in the middle of the board. Make these holes as deep as the board is thick.

Step 2: Assemble the Base Motor.

Get your 2 3" chopstick pieces, 1 motor, and 2 rubber bands. Place the chopstick pieces against sides of the motor vertically, aligning them to have an equal spacing apart. Then, use your rubber bands to tie the chopsticks to the motor; make sure that the motor is pointing upwards. Plant the ends of your chopstick in the 3 holes you drilled in your board. Then, stick your 1" diameter cork to the motor shaft - make sure it's on tight!

Step 3: Building the Middle Arm

Take your drill and cut two holes at the opposite sides of the cork's top, these holes should be .75"-1" deep. Use a pair of 6" chopsticks and fill in these holes. Next, take your screw and place it over the shaft of one of the other dc motors. Hot glue it into place. Place this motor at the top and between the 6" chopsticks, make sure the shaft facing right. Leave .4" away from the end of the chopstick. Then secure this motor to the 6" chopstick pieces with 2 rubber bands.

Take the .75" diameter cork and split it into thirds. Then, take these cork and drill ridges along the parallel horizontal sides of the cork... they should be deep enough that another chopstick can rest inside smugly. Put one of these corks in-between the 2 4" chopsticks, .4" away from the end, and use two rubber bands to secure them together. Then, take the cork and chop stock and stick the screw of the last motor into this cork.

Take another third of the .75" cork and place it in between in 4" chopsticks. Secure near the end of the chopstick with rubber bands.

Step 4: Assembly and End Piece

For the end piece, first gouge out the inner section of the handle of the measuring cup, with a knife, soldering iron, etc. Then, break off 80% of your knife's handle. Place into hollowed space of the cup handle the knife's remaining handle space. Make sure the cup is facing upwards and the knife is upwards as well. Use two rubber bands and some tape to secure this together.

Take your last third of the .75" cork and place it into the middle of this combined knife and cup, vertically. Use tape to secure it to the knife/cup.

Step 5: Building the Upper Arm

Then, stick the shaft of another dc motor into the last cork mentioned in "Building the middle arm". Get the last pair of 4" chopsticks and use rubber bands to secure the motor to this rubber band. Take the motor with the cork and knife/scoop attached to and use rubber bands to fasten it to the other end of the 4" chopsticks.

Step 6: Arduino and Code

Get your female/females and attach them to ports 1-8 in the Arduino and with the corresponding motor parts. Make sure the Arduino is plugged into a power supply such as a laptop.

Use the following code for this arduino:

int motorPin1 = 1;
int motorPin2 = 2; int motorPin3 = 3; int motorPin4 = 4; int motorPin5 = 5; int motorPin6 = 6; int motorPin7 = 7; int motorPin8 = 8;

void setup() {

pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); pinMode(motorPin5, OUTPUT); pinMode(motorPin6, OUTPUT); pinMode(motorPin7, OUTPUT); pinMode(motorPin8, OUTPUT); }

void loop() { //chop spinach and bring blade back up rotateRightM2(50, 500); rotateRightM3(50, 500); rotateRightM4(150, 250); rotateLeftM3(50, 500); rotateLeftM4(150, 250); rotateLeftM2(50, 500);

//shift assembly towards dressing rotateLeftFullM4(1000);

//pick up dressing and scoop up rotateRightM2(50, 750); rotateRightM3(50, 750); rotateRightM4(150, 400); rotateLeftM3(50, 750); rotateLeftM4(150, 400); rotateLeftM2(50, 750);

//rotate back to lettuce pile rotateRightFullM4(1000);

//drop dressing and lift back to initial position rotateRightM2(50, 1000); rotateRightM3(50, 1000); rotateRightM4(150, 500); rotateLeftM3(50, 1000); rotateLeftM4(150, 500); rotateRightM2(50, 1000);

}

void rotateLeftM1(int speedOfRotate, int length) { analogWrite(motorPin1, speedOfRotate); digitalWrite(motorPin2, LOW); delay(length); //waits digitalWrite(motorPin1, LOW); }

void rotateRightM1(int speedOfRotate, int length) { analogWrite(motorPin2, speedOfRotate); digitalWrite(motorPin1, LOW); delay(length); //waits digitalWrite(motorPin2, LOW); }

void rotateLeftM2(int speedOfRotate, int length) { analogWrite(motorPin3, speedOfRotate); digitalWrite(motorPin4, LOW); delay(length); //waits digitalWrite(motorPin3, LOW); }

void rotateRightM2(int speedOfRotate, int length) { analogWrite(motorPin4, speedOfRotate); digitalWrite(motorPin3, LOW); delay(length); //waits digitalWrite(motorPin4, LOW); }

void rotateLeftM3(int speedOfRotate, int length) { analogWrite(motorPin5, speedOfRotate); digitalWrite(motorPin6, LOW); delay(length); //waits digitalWrite(motorPin5, LOW); }

void rotateRightM3(int speedOfRotate, int length) { analogWrite(motorPin6, speedOfRotate); digitalWrite(motorPin5, LOW); delay(length); //waits digitalWrite(motorPin6, LOW); }

void rotateLeftFullM4(int length) { digitalWrite(motorPin7, HIGH); digitalWrite(motorPin8, LOW); delay(length); //waits digitalWrite(motorPin7, LOW); }

void rotateRightFullM4(int length) { digitalWrite(motorPin8, HIGH); digitalWrite(motorPin7, LOW); delay(length); //waits digitalWrite(motorPin8, LOW);

Step 7: Enjoy!

The robots done! You can easily tweak it to add some more cook stuff. In these photos we have it first cutting spinach up, then scooping up some ranch and adding it to the spinach.

Arduino Contest 2019

Participated in the
Arduino Contest 2019