Disc Throwing Machine




Introduction: Disc Throwing Machine

About: Electrical Engineering Student of University of South Florida

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com)

Instructable for the Disc Throwing Machine. This Machine is simple in what it does but did get a little complicated during the creation of this project.

The Project holds discs and launches the discs at high speed. The discs are launched out one at a time with the use of a stepper motor and remote control. The project uses a brushless motor to spin two wheels in opposite directions to give the disc spin and forward force.

Part List:

  1. Lipo Battery
  2. Banana Plugs
  3. Drone Motor and Electronic Speed Controller (ESC)
  4. Lipo Battery Charger
  5. More ESCs
  6. Soldering Kit
  7. Electrical Tape
  8. Makecourse Coursekit

Step 1: Soldering Electronic Speed Controller and Brushless Motor

When I bought the brushless motor and ESC from amazon I didn't realize I'd have to solder it myself. Please look up a video but the basic instructions are as follows

  1. Heat up connection pin
  2. Touch Solder Wire to heated pin
  3. When enough Solder melted insert exposed wire, example shown is brushless motor.
  4. Don't forget to insulate with electrical tape, or you'll end up with the last picture

Repeat for all connections

Step 2: How to Power Arduino and Brushless Motor From Electronic Speed Controller

The ESC has a servo cable. This cable conveniently delivers power from the ESC to the arduino along with the control wire.

  1. To power the ESC we plug it into a Li-Po battery, red to red black to black
  2. The project needed a CCW rotation for it to launch discs with the 3d part so we connected the brushless motor with the wires in what looks like a jumbled up way. (To be in CW rotation switch the red and yellow wires seen from the brushless motor
  3. Using the servo cable we plug in our esc to the breadboard to power the breadboard which will power the arduino

Step 3: Arduino Code for IR Remote and Brushless Motor

#include <IRremote.h> //library found at <a href="http://makecourse.weebly.com/uploads/2/4/7/9/24790373/irremote.zip%3C/p" rel="nofollow">irremote.zip</a>
#include <Servo.h> //Using servo library to control ESC and mini motor
#define stepperpin 12  //defining pin on the arduino
int RECV_PIN = 13;  //ir sensor pin
IRrecv irrecv(RECV_PIN); //defining for the library
Servo esc; //Creating a servo class with name as esc for the electronic speed controller connected to the drone motor that powers the whole project
Servo stepper; //servo class with name stepper
decode_results results;

void setup();//drone motor specific
esc.attach(8); //Specify the esc signal pin,Here as D8
esc.writeMicroseconds(1000); //initialize the signal to 1000
//end drone motor
//start stepper and IR code
  irrecv.enableIRIn(); // Start the receiver
//end stepper and IR code
void loop()<br>{
  int i=0;
   if (irrecv.decode(&results)) {
     irrecv.resume(); // Receive the next value
 void translateIR() // takes action based on IR code received describing Car MP3 IR codes
int stepval = stepper.read();
int droneval = esc.read();
esc.writeMicroseconds(droneval); //using droneval as the signal to esc
case 0xFF22DD:
    Serial.println("Prev           ");
  case 0xFF02FD:
    Serial.println("NEXT           ");
  case 0xFFE01F:
    Serial.println(" VOL-           ");
  case 0xFFA857:
    Serial.println(" VOL+           ");
  case 0xFFC23D:
    Serial.println(" Play              "); //The command that controls the push gear
     esc.write(droneval);                   //without this command the drone motor goes to 0
    stepper.write(stepval+90);              //resets back to default position
  case 0xFF906F:
    Serial.println(" EQ              ");
     esc.write(droneval);                   //without this command the drone motor goes to 0
    Serial.print(" unknown button   ");
    Serial.println(results.value, HEX);
}void unknownRemoter(){           // code that tells arduino what to do when an undeclared button is pressed
long RED_LED_OFF = 0xFF40BF;
if (results.value == RED_LED_OFF){
      Serial.println ("Red led off");
    else if 
 (Serial.print(" still an unknown button   "));
         Serial.println(results.value, HEX);       

Step 4: Arduino Connections

From the code in previous step:

  1. Connect ESC servo controller pin to pin 8
  2. Connect receiver pin to pin 13
  3. Connect Microservo controller pin to pin 12

Step 5: Autodesk Inventor 3D Modeled Parts

This device consisted of many parts, that being:

  1. The hopper: It holds the drone motor and wheels to launch the disks. This was designed to be placed over the required box for the make course and a2mm gap was left between the box and the hopper to allow one disk at a time to be launched as CD-ROMs are 1.2mm high, and so the 2nd disc wouldn't get through.
  2. The Microservo holder was used to house the microservo that would attach to the push gear.
  3. The push gear was designed to slide under the hopper and contact with one disc as to push 1 disc out at a time.
  4. I bought RC car wheels originally. The RC car wheels came with plastic rims that were too concave in shape. I needed thick rims that would not wobble. But I still used the rubber tires from the RC car wheels.
  5. The electronic speed controller cover up was used to give the project a finished look.
  6. The top wheel axle, spacers, and caps were used to keep the wheel with the tire on in one position.

Be the First to Share


    • For the Home Contest

      For the Home Contest
    • Make It Bridge

      Make It Bridge
    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge



    5 years ago

    Looks good, this could be a fun tool to use for skeet shooting :)