fdfdf
Dependencies: Motordriver mbed
Video of everything working: https://drive.google.com/a/usna.edu/file/d/0B6gx9qlkekGOSXVlQkN1RWpVcDg/view?usp=sharing
Updated Schematic
main.cpp@1:f102ace95c79, 2015-02-03 (annotated)
- Committer:
- jared152
- Date:
- Tue Feb 03 16:37:35 2015 +0000
- Revision:
- 1:f102ace95c79
- Parent:
- 0:e3a927f789f0
- Child:
- 2:72f9b88d0e7c
updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jared152 | 0:e3a927f789f0 | 1 | // Jared Wilkins, Katie MacVarish, Grant LaTerza // |
jared152 | 0:e3a927f789f0 | 2 | // Capstone Project Code // |
jared152 | 0:e3a927f789f0 | 3 | /////////////////////////////////////////////////// |
jared152 | 0:e3a927f789f0 | 4 | |
jared152 | 0:e3a927f789f0 | 5 | #include "mbed.h" |
jared152 | 0:e3a927f789f0 | 6 | #include "motordriver.h" |
jared152 | 0:e3a927f789f0 | 7 | |
jared152 | 0:e3a927f789f0 | 8 | ////////Initialization///////////////////// |
jared152 | 0:e3a927f789f0 | 9 | Motor drive(p26, p25, p24, 1); //drive motor (PWM, fwd, rev, brake |
jared152 | 0:e3a927f789f0 | 10 | Motor wheel(p23, p22, p21, 1); //flywheel (PWM, fwd, rev, brake) |
jared152 | 0:e3a927f789f0 | 11 | InterruptIn forward(p15); //remote signal to drive car forward |
jared152 | 0:e3a927f789f0 | 12 | InterruptIn reverse(p16); //signal to drive car in reverse |
jared152 | 1:f102ace95c79 | 13 | DigitalOut fwdled(LED1); //for testing interrupts, etc |
jared152 | 1:f102ace95c79 | 14 | DigitalOut revled(LED2); // "" |
jared152 | 0:e3a927f789f0 | 15 | |
jared152 | 1:f102ace95c79 | 16 | int rev = 0, fwd = 0; //flag for fwd and rev |
jared152 | 1:f102ace95c79 | 17 | |
jared152 | 0:e3a927f789f0 | 18 | |
jared152 | 0:e3a927f789f0 | 19 | ///////Interrupt Service Routines//////////// |
jared152 | 0:e3a927f789f0 | 20 | void driveforward() |
jared152 | 0:e3a927f789f0 | 21 | { |
jared152 | 0:e3a927f789f0 | 22 | fwd = 1; |
jared152 | 1:f102ace95c79 | 23 | rev = 0; |
jared152 | 0:e3a927f789f0 | 24 | } |
jared152 | 0:e3a927f789f0 | 25 | void drivereverse() |
jared152 | 0:e3a927f789f0 | 26 | { |
jared152 | 0:e3a927f789f0 | 27 | rev=1; |
jared152 | 1:f102ace95c79 | 28 | fwd = 0; |
jared152 | 0:e3a927f789f0 | 29 | } |
jared152 | 0:e3a927f789f0 | 30 | void stop() |
jared152 | 0:e3a927f789f0 | 31 | { |
jared152 | 0:e3a927f789f0 | 32 | fwd = rev = 0; |
jared152 | 0:e3a927f789f0 | 33 | } |
jared152 | 0:e3a927f789f0 | 34 | ///////////////////////////////////////////// |
jared152 | 0:e3a927f789f0 | 35 | |
jared152 | 0:e3a927f789f0 | 36 | int main() |
jared152 | 0:e3a927f789f0 | 37 | { |
jared152 | 1:f102ace95c79 | 38 | float PWM_drive = 0.0; //initialize PWM speed for drive wheels |
jared152 | 1:f102ace95c79 | 39 | float PWM_wheel = 0.0; //initialize PWM speed for reactionwheel |
jared152 | 0:e3a927f789f0 | 40 | |
jared152 | 1:f102ace95c79 | 41 | forward.rise(&driveforward); // rising edge on p15 triggers interrupt to go forward |
jared152 | 1:f102ace95c79 | 42 | forward.fall(&stop); // falling edge p15 triggers a stop |
jared152 | 0:e3a927f789f0 | 43 | |
jared152 | 1:f102ace95c79 | 44 | reverse.rise(&drivereverse); // rising edge p16 triggers go in reverse |
jared152 | 1:f102ace95c79 | 45 | reverse.fall(&stop); // falling edge p16 triggers stop |
jared152 | 1:f102ace95c79 | 46 | |
jared152 | 1:f102ace95c79 | 47 | while(1) { |
jared152 | 0:e3a927f789f0 | 48 | PWM_drive = 0.50; //***control law here*** |
jared152 | 0:e3a927f789f0 | 49 | PWM_wheel = 0.20; //***control law here*** |
jared152 | 0:e3a927f789f0 | 50 | |
jared152 | 1:f102ace95c79 | 51 | if(fwd) { //reads flags for drive/rev |
jared152 | 1:f102ace95c79 | 52 | drive.speed(PWM_drive); |
jared152 | 1:f102ace95c79 | 53 | fwdled = 1; //led1 on |
jared152 | 1:f102ace95c79 | 54 | revled = 0; //led2 off |
jared152 | 1:f102ace95c79 | 55 | } else if(rev) { |
jared152 | 0:e3a927f789f0 | 56 | drive.speed(-PWM_drive); |
jared152 | 1:f102ace95c79 | 57 | fwdled = 0; //led1 off |
jared152 | 1:f102ace95c79 | 58 | revled = 1; //led2 on |
jared152 | 1:f102ace95c79 | 59 | } else { |
jared152 | 0:e3a927f789f0 | 60 | drive.coast(); |
jared152 | 1:f102ace95c79 | 61 | fwdled = revled = 0; |
jared152 | 1:f102ace95c79 | 62 | } |
jared152 | 1:f102ace95c79 | 63 | |
jared152 | 0:e3a927f789f0 | 64 | wheel.speed(PWM_wheel); //sets PWM for flywheel |
jared152 | 0:e3a927f789f0 | 65 | |
jared152 | 0:e3a927f789f0 | 66 | |
jared152 | 0:e3a927f789f0 | 67 | } |
jared152 | 0:e3a927f789f0 | 68 | } |