fdfdf

Dependencies:   Motordriver mbed

Video of everything working: https://drive.google.com/a/usna.edu/file/d/0B6gx9qlkekGOSXVlQkN1RWpVcDg/view?usp=sharing

Updated Schematic /media/uploads/jared152/capstone_schematic.png

Revision:
13:7e7c97f73ace
Parent:
12:008016f03ca1
Child:
14:931c5abf0006
diff -r 008016f03ca1 -r 7e7c97f73ace main.cpp
--- a/main.cpp	Thu Feb 05 01:45:09 2015 +0000
+++ b/main.cpp	Thu Feb 05 03:13:46 2015 +0000
@@ -6,8 +6,8 @@
 #include "motordriver.h"  //additional library to expand capabilities of PWMOut for use with motor drivers written by 
 
 //Initialization/////////////////////////////
-Motor wheel(p26, p25, p24, 1); //flywheel (PWM, fwd, rev, brake)
-Motor drive(p23, p22, p21, 1); //drive motor (PWM, fwd, rev, brake]
+Motor wheel(p24, p26, p25, 1); //flywheel (PWM, fwd, rev, brake)
+Motor drive(p21, p23, p22, 1); //drive motor (PWM, fwd, rev, brake]
 
 
 InterruptIn forward(p15);      //remote signal to drive car forward
@@ -23,26 +23,30 @@
 DigitalOut jumpled(LED3);      // ""
 DigitalOut testled(LED4);      // ""
 
-
-int rev = 0, fwd = 0;          //flag for fwd and rev
+//Global Variables
+int jump = 0;          //flag for whether jumping or not
 int t1, t2,                    //global variables for the echo pulse. c
-    t3, t4;                    //timer within flip
-int jump = 0;                  //flag for wether or not car is jumping
+    t3, t4;                    //timer variables within flip function
+float PWM_drive = 0.0;      //initialize PWM speed for drive wheels
+
 
 //Interrupt Service Routines////////////////
 void driveforward()
 {
-    fwd = 1;
-    rev = 0;
+    fwdled = 1;
+    revled = 0;
+    drive.speed(PWM_drive);
 }
 void drivereverse()
 {
-    rev=1;
-    fwd = 0;
+    revled =1;
+    fwdled = 0;
+    drive.speed(-PWM_drive);
 }
 void stop()
 {
-    fwd = rev = 0;
+    fwdled = revled = 0;
+    drive.coast();
 }
 void startechotimer()
 {
@@ -79,15 +83,15 @@
     t3 = t.read();
     if (t3 - t4 >= 5) {          //ensures that this can only run once every six seconds
         t3 = t.read();
-        testled = 1;
+        testled = 1;            // turns on led 3 (during flip)
           
-        PWM_wheel = 1.0;  //***control law here***
-        wheel.speed(PWM_wheel);  //sets PWM for flywheel
-        wait(3);
-        wheel.stop(1.0);
+        PWM_wheel = 1.0;        //***control law here***
+        wheel.speed(PWM_wheel); //sets PWM for flywheel
+        wait(2);                //settling time
+        wheel.stop(1.0);        //regenerative braking
         
         t4 = t.read();
-        testled = 0;
+        testled = 0;            // turn off led (not flipping)
    } else 
         testled = 0;
     
@@ -100,15 +104,10 @@
 
 int main()
 {
-
-
-    float PWM_drive = 0.0;      //initialize PWM speed for drive wheels
     float range = 0.0;         // variable to hold the range sensor value
 
-    fwdled = 0;               //intializes all LEDS to off
-    revled = 0;               //
-    testled = 0;              //
-    jumpled = 0;              //
+    fwdled = revled = testled = jumpled = 0;           //intializes all LEDS to off
+
 
     forward.rise(&driveforward); // rising edge on p15 triggers interrupt to go forward
     forward.fall(&stop);         // falling edge p15 triggers a stop
@@ -129,7 +128,7 @@
     while(1) {
         PWM_drive = 1.0;  //****control law here for drive speed****
 
-        range = read_ultrasonic(20);      //read distance for average of 10 samples
+        range = read_ultrasonic(20);      //read distance for average of 20 samples
 
         if (range > 6.0) {     //when distance is greater than 6.0 cm it will do the flip function
             jumpled = 1; // lights LED 3 when in jump flag is true
@@ -137,18 +136,6 @@
         } else  {
             jumpled = 0;     // if not in jump mode led is off
         }
-
-        if(fwd) {                    //reads flags for drive/rev
-            drive.speed(PWM_drive);
-            fwdled = 1;     //led1 on
-            revled = 0;     //led2 off
-        } else if(rev) {
-            drive.speed(-PWM_drive);
-            fwdled = 0;     //led1 off
-            revled = 1;     //led2 on
-        } else {
-            drive.coast();
-            fwdled = revled = 0;
-        }
+        
     }
 }
\ No newline at end of file