fdfdf
Dependencies: Motordriver mbed
Video of everything working: https://drive.google.com/a/usna.edu/file/d/0B6gx9qlkekGOSXVlQkN1RWpVcDg/view?usp=sharing
Updated Schematic
Diff: main.cpp
- Revision:
- 5:77b574b21fcc
- Parent:
- 4:335d5a21f9f7
- Child:
- 6:d03601aced9b
diff -r 335d5a21f9f7 -r 77b574b21fcc main.cpp --- a/main.cpp Wed Feb 04 00:20:43 2015 +0000 +++ b/main.cpp Wed Feb 04 04:29:36 2015 +0000 @@ -3,7 +3,7 @@ /////////////////////////////////////////////////// #include "mbed.h" -#include "motordriver.h" +#include "motordriver.h" //additional library to expand capabilities of PWMOut for use with motor drivers //Initialization// Motor drive(p26, p25, p24, 1); //drive motor (PWM, fwd, rev, brake @@ -12,13 +12,15 @@ InterruptIn forward(p15); //remote signal to drive car forward InterruptIn reverse(p16); //signal to drive car in reverse InterruptIn echo(p29); //interrupt for range echo pulse + DigitalOut trigger(p30); //Dout fo the trigger Timer t; //initializes timer DigitalOut fwdled(LED1); //for testing interrupts, etc DigitalOut revled(LED2); // "" -DigitalOut jumpled(LED3); +DigitalOut jumpled(LED3); // "" +DigitalOut testled(LED4); // "" int rev = 0, fwd = 0; //flag for fwd and rev @@ -41,28 +43,28 @@ fwd = rev = 0; } void startechotimer() -{ +{ t1 = t.read_us(); } void endechotimer() { - t2 = t.read_us(); + t2 = t.read_us(); } //Functions void trigger_pulse() //trigger pulse for range sensor { trigger = 1; - wait(.000001); - trigger = 0; + wait(.00002); + trigger = 0; } void distance() { float dist; - dist = (t2-t1)/58.0; ///*****convert delay to distance in cm here***** + dist = (t2-t1)/58.0; //converts time to distance in cm - if (dist > 4.0) + if (dist < 6.0) jump = 1; else jump = 0; @@ -81,9 +83,14 @@ int main() { + float PWM_drive = 0.0; //initialize PWM speed for drive wheels + fwdled = 0; + revled = 0; + testled = 0; + jumpled = 0; forward.rise(&driveforward); // rising edge on p15 triggers interrupt to go forward forward.fall(&stop); // falling edge p15 triggers a stop @@ -102,7 +109,8 @@ PWM_drive = 0.50; //***control law here for drive speed trigger_pulse(); //send trigger pulse - wait(.005); + wait(.1); + distance(); if (jump) {