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.

Revision:
0:6942f0e2198c
Child:
1:90b640c90506
diff -r 000000000000 -r 6942f0e2198c DumpTruck.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DumpTruck.cpp	Tue Nov 01 20:13:57 2016 +0000
@@ -0,0 +1,153 @@
+#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;
+//    }
+//    
+