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

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?

UserRevisionLine numberNew 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 }