Introduction: MakeCourse at USF: Battle Bot Fandom

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (

You may recognize this fun little fight bot from the beginning of a certain animated movie staring a lovable care giving robot first made by the older brother of the character who used this bot in battle. Here is where I share how I made my own statue that rotates around. You will need the 3D printed parts, magnets, motor, stepper driver board, arduino, remote, breadboard, wiring and power source (like the 9V battery here or the cable to plug into the computer).

Step 1: Fun With CAD!

First you will want to design your parts for 3D printing. I used SolidWorks, but I am sure you could easily use AutoDesk Fusion if you are more comfortable with it. Base your dimensions on the motor you want to mount inside. I used a step motor, but if I could start over again, I would probably use a servo instead. The motor needs to fit inside the bottom ball of the body. The middle ball needs to house the cup of the spindle part which has the shaft that needs to fit on the spinning part of the motor, so measure carefully there. I also found on the grab cad website a pre-made solid-works file for the motor and the hardware I used to mount it to the inside of the ball using adhesive (since I do not recommend putting gorilla glue directly on any motor). When printing the body ball halves, be sure to print them flat side down to keep the support material on the inside of the ball, so you do not need to care what it looks like when you break it off. I was not given the choice by my printing lab, so I ended up with some ish on the outside that stayed een after the sanding process, so it is a good thing I was going for the rough look. Design the limbs as solid pieces, and when printing, do 10% infill or less to keep the weight of the items down. You will glue the "draft" part to the half sphere after printing - printing in these two pieces means you will not have to deal with support material. I printed in PLA, which resulted in a outer finish that was less than I had hoped for, but it also kept the cost down.

Unfortunately, I was not able to get the magnets strong enough to hold up the arms on their own, so I also needed to insert a wire through the neck to hold the arms up. Soon I shall have magnets strong enough, but you will want to test your magnets until you get the correct strength.

Step 2: Fun With CODE!

The electrical and computing process for this is fairly simple, we just want the statue to spin when a button is pushed. Luckily, the arduino comes with some handy code, and the remote and motor also come with code, so you just need to figure out what code your remote is giving for whatever buttons you want to use and you are on your way. I chose to turn off the LEDs when not in use in order to save on battery.

Here is the fully commented code!

MakeCourse Project Battle Bot Fandom Jes Tharaldson Fall 2018 */

#include //including steppdr motor library #include //including remote library

#define gearratio 64 //1:64 gear ratio const int stepsPerRevolution = 2048; //Arduino Kit motor is geared down. Dr Schlaf determined that 2048 steps turn the shaft one round. // instantiate a 4-wire stepper on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8,9,10,11);

int RECV_PIN = 4; //sets the reciever pin IRrecv irrecv(RECV_PIN); //instantiate a IR receiver object decode_results results; //instantiate a decode_results object. This object is separate from the IR receiver.

void setup() { Serial.begin(9600); //start serial port (for trouble shooting if needed) irrecv.enableIRIn(); // Start the receiver // set the speed at 0.15 rpm (0.15-0.2 (dep. on particular motor) seems the fastest they can go...set it higher and it stops moving, just makes noises): myStepper.setSpeed(0.15*gearratio);//the motor appears to be geared down 1/64, meaning that the speed needs to be set 64x.


void loop() { if (irrecv.decode(&results)) { //has a transmission been received? Serial.println(results.value); //If yes: interpret the received commands... if (results.value == 16769055){ //button - digitalWrite(8,HIGH); //turning all coils on digitalWrite(9,HIGH); digitalWrite(10,HIGH); digitalWrite(11,HIGH); myStepper.step(-stepsPerRevolution*2);//turns motor backward delay(2000); //leaves on for 2 seconds digitalWrite(8,LOW); //turning all coils off digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); }

if (results.value == 16754775){ //button + digitalWrite(8,HIGH); //turning all coils on digitalWrite(9,HIGH); digitalWrite(10,HIGH); digitalWrite(11,HIGH); myStepper.step(stepsPerRevolution*2);//turns motor delay(2000); //leaves on for 2 seconds digitalWrite(8,LOW); //turning all coils off digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); } irrecv.resume(); // Receive the next value } }

Step 3: Fun With FRITZING!

Here is how I set up my electronic bits and pieces, but you may likely find a more efficient way.

The 9V battery powers the arduino board, the 4 wire stepper driver board is inserted into the arduino, the IR sensor is connected to the arduino via the breadboard which is powered and grounded by the arduino.

Step 4: Fun With SANDING! Fun With PAINTING!

Since I printed using PLA, I sanded each component 6 times, wiping off completely in between, to get the finish that most resembled the bot in the movie: 60, 120, 220, 600, 800, 2000. You won't regret not skipping any steps. WEAR PROTECTIVE GEAR! You too can be stylish AND keep your lungs and eyes healthy. Only paint the face on after the sanding is complete and the parts have been wiped off.

Step 5: Check It Out!

Hopefully yours spins better than my finished product. (I still think mine looks really cool, and soon I will have magnets strong enough to hold up the arms.)

Step 6: Fun With Assembly!

To put the pieces together, the wooden pegs come in handy, but the most handy thing of all was the gorilla glue, which was strong enough to hold the crazy strong magnets in place.