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
Serial.begin(9600); 
//end drone motor
//start stepper and IR code
pinMode(RECV_PIN, INPUT);
  irrecv.enableIRIn(); // Start the receiver
  stepper.attach(stepperpin);
  Serial.begin(9600);
}
//end stepper and IR code
void loop()<br>{
  int i=0;
   if (irrecv.decode(&results)) {
   translateIR();
     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
switch(results.value){
case 0xFF22DD:
    Serial.println("Prev           ");
    esc.write(72);
    Serial.print(droneval);
    break;
  case 0xFF02FD:
    Serial.println("NEXT           ");
    esc.write(90);
    Serial.print(droneval);
    break;
  case 0xFFE01F:
    Serial.println(" VOL-           ");
    esc.write(droneval-1);
    Serial.print(droneval);
    break;
  case 0xFFA857:
    Serial.println(" VOL+           ");
    esc.write(droneval+1);
    Serial.print(droneval);
    break;
   
  case 0xFFC23D:
    Serial.println(" Play              "); //The command that controls the push gear
    stepper.write(stepval-90);
     esc.write(droneval);                   //without this command the drone motor goes to 0
    delay(1000);
    stepper.write(stepval+90);              //resets back to default position
    break;
  case 0xFF906F:
    Serial.println(" EQ              ");
    stepper.write(90);
     esc.write(droneval);                   //without this command the drone motor goes to 0
    delay(1000);
    break;
    
  default:
    Serial.print(" unknown button   ");
    Serial.println(results.value, HEX);
     
  }
  delay(500);
 
}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");
      digitalWrite(12,LOW);     
    } 
    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.