Main repository for dump truck API development in Spring 2017

Dependencies:   Tracker mbed MotorV2 SRF05 nRF24L01P

Fork of DUMP_TRUCK_TEST_V1 by Terrabots

Activities

This Week

If needed, please contact Milo Pan at mpan9@gatech.edu for rights and access to this repository.

DumpTruck.cpp

Committer:
Josahty
Date:
2016-11-01
Revision:
0:6942f0e2198c
Child:
1:90b640c90506

File content as of revision 0:6942f0e2198c:

#include "DumpTruck.h"
#include "stdlib.h"

Serial pc(USBTX, USBRX);

DumpTruck::DumpTruck(int truckId) : truckNumber(truckId) {
    truckNumber = truckId;
}

PwmOut DrivePin(p24);
DigitalOut DirPin(p30);
int i;


void Calibrate(){}

void DumpTruck::drive() {
    // get desired distance and speed
    distance = 0; // placeholder
    // speed = 0.5;
    // distance = setTruckDistance();
    speed = setTruckSpeed();
    // terminal confirmation of distance and speed
    pc.printf("Truck will drive a distance of %f at a speed of %f\r\n",distance,speed);
    // insert while loop here which relates to distance travelled
    while(1) {
    // if the speed is greater than zero, go forward at specified speed
    if (speed >= 0) {
    DirPin = 1;
    DrivePin = speed;
    } // else, go backwards at specified speed  
    else {
    DirPin = 0;
    DrivePin = -1 * speed;
    }
    }
    // stop motors
    // stop();
    // calibrate motors
    Calibrate();
    //
    i = 0;
}

//float DumpTruck::setTruckDistance(){
//    // terminal prompt for distance
//    pc.printf("Please enter the truck distance:");
//    // sets return value to given value
//    float input = pc.getc();
//    // returns value
//    return input;
//    }
//
float DumpTruck::setTruckSpeed(){
    
      float div = 10;
      // terminal prompt for speed
      pc.printf("Please enter the truck speed: \n");
      // sets return value to given value
      float input = pc.getc();
      while ((input<48)&&(input>57)){
          pc.printf("Fix your input sir: \r\n");
          float input = pc.getc();
          }
      input = input - 48;
      input = input * (1/div);
      // returns value
      return input;}
    
    
void DumpTruck::stop(){
    pc.printf("Truck will now stop.");
    //stop motors
    DrivePin = 0;
    }

//void DumpTruck::RotateTo() {  
//    pc.printf("Desired Angle: ");
//    DesiredPivotAngle = pc.getc();
//    float CurrentPivotAngle =  getPivotAngle();
//    Difference = DesiredPivotAngle-CurrentPivotAngle;
//    if (Difference > limit)
//    {
//        PivotSpeed = setPivotSpeed();
//        pc.printf("Rotating to %s /n", DesiredPivotAngle);
//        //Drive Motors
//        }
//    else
//    {stop()}
//    
//}    
//
//void DumpTruck::BedDown() {
//     SwitchState = bool GetBedUpperSwitch();
//     if SwitchState
//     {return 0;}
//     else
//
//     while(SwitchState == 0)
//     {
//         //driveMotor
//         }
//         calibrate();
//    }
//void DumpTruck::LowerBed() {
//    SwitchState = bool GetLowerUpperSwitch();
//     if SwitchState
//     {return 0;}
//     else
//
//     while(SwitchState == 0)
//     {
//         //driveMotor
//         }
//         calibrate();
//    }
//}
//void DumpTruck::raiseTo(int angle) {
//      pc.printf("Desired Angle: ");
//    DesiredBedAngle = pc.getc();
//    float CurrentBedAngle =  getBedAngle();
//    Difference = DesiredBedAngle-CurrentBedAngle;
//    if (Difference > limit)
//    {
//        BedSpeed = setBedSpeed();
//        pc.printf("Rotating to %s /n", DesiredBedAngle);
//        //Drive Motors
//        }
//    else
//    {stop()}
//}
//
//float DumpTruck::getPivotAngle(){
//    float input = AnalogIn(x);
//    return input
//    }
//float DumpTruck::setPivotSpeed(){
//     pc.printf("Please enter the Pivot speed /n");
//    float input = pc.getc();
//    return input;
//    }
//
//float DumpTruck::setBedSpeed(){
//    pc.printf("Please enter the Bed speed /n");
//    float input = pc.getc();
//    return input;
//    }
//float DumpTruck::getBedAngle(){
//    float input = AnalogIn(x); // data from potentiometer
//    return input;
//    }
//