Owen Roseborough / Mbed 2 deprecated BeverageRoverV1

Dependencies:   mbed

Committer:
embedMasterForever
Date:
Fri Mar 06 17:20:00 2015 +0000
Revision:
0:17d76ace37b6
This is research and development code for programming exponential acceleration for a Rover 5 chassis by Pololu Electronics, controlled by Sabertooth 2x5 Motor Drivers by Dimension Engineering, and an Mbed LPC1768.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
embedMasterForever 0:17d76ace37b6 1 // main.cpp -----------------------------------------
embedMasterForever 0:17d76ace37b6 2 #include "mbed.h"
embedMasterForever 0:17d76ace37b6 3 #include "motorControl.h"
embedMasterForever 0:17d76ace37b6 4
embedMasterForever 0:17d76ace37b6 5 DigitalIn Motor1A(p10);
embedMasterForever 0:17d76ace37b6 6 DigitalIn Motor1B(p25);
embedMasterForever 0:17d76ace37b6 7
embedMasterForever 0:17d76ace37b6 8 DigitalIn Motor2A(p13);
embedMasterForever 0:17d76ace37b6 9 DigitalIn Motor2B(p23);
embedMasterForever 0:17d76ace37b6 10
embedMasterForever 0:17d76ace37b6 11 DigitalIn Motor3A(p12);
embedMasterForever 0:17d76ace37b6 12 DigitalIn Motor3B(p24);
embedMasterForever 0:17d76ace37b6 13
embedMasterForever 0:17d76ace37b6 14 DigitalIn Motor4A(p11);
embedMasterForever 0:17d76ace37b6 15 DigitalIn Motor4B(p26);
embedMasterForever 0:17d76ace37b6 16
embedMasterForever 0:17d76ace37b6 17 DigitalOut led3(LED3);
embedMasterForever 0:17d76ace37b6 18 DigitalOut led4(LED4);
embedMasterForever 0:17d76ace37b6 19
embedMasterForever 0:17d76ace37b6 20 #define MTR1A 0
embedMasterForever 0:17d76ace37b6 21 #define MTR1B 1
embedMasterForever 0:17d76ace37b6 22 #define MTR2A 2
embedMasterForever 0:17d76ace37b6 23 #define MTR2B 3
embedMasterForever 0:17d76ace37b6 24 #define MTR3A 4
embedMasterForever 0:17d76ace37b6 25 #define MTR3B 5
embedMasterForever 0:17d76ace37b6 26 #define MTR4A 6
embedMasterForever 0:17d76ace37b6 27 #define MTR4B 7
embedMasterForever 0:17d76ace37b6 28
embedMasterForever 0:17d76ace37b6 29 int mtrCounts[4];
embedMasterForever 0:17d76ace37b6 30
embedMasterForever 0:17d76ace37b6 31 int flagMotor1A = 0;
embedMasterForever 0:17d76ace37b6 32 int flagMotor2A = 0;
embedMasterForever 0:17d76ace37b6 33 int flagMotor3A = 0;
embedMasterForever 0:17d76ace37b6 34 int flagMotor4A = 0;
embedMasterForever 0:17d76ace37b6 35
embedMasterForever 0:17d76ace37b6 36 int warmUpNeeded = 0;
embedMasterForever 0:17d76ace37b6 37 int repeatFlag = 1;
embedMasterForever 0:17d76ace37b6 38
embedMasterForever 0:17d76ace37b6 39 Timer timer1;
embedMasterForever 0:17d76ace37b6 40 Timer timer2;
embedMasterForever 0:17d76ace37b6 41
embedMasterForever 0:17d76ace37b6 42 int main()
embedMasterForever 0:17d76ace37b6 43 { /*
embedMasterForever 0:17d76ace37b6 44 stopMotors();
embedMasterForever 0:17d76ace37b6 45 wait(10);
embedMasterForever 0:17d76ace37b6 46 */
embedMasterForever 0:17d76ace37b6 47 while(1){
embedMasterForever 0:17d76ace37b6 48 stopMotors1();
embedMasterForever 0:17d76ace37b6 49 }/*
embedMasterForever 0:17d76ace37b6 50 if(warmUpNeeded < 4 && repeatFlag == 1){
embedMasterForever 0:17d76ace37b6 51 warmUpNeeded = warmUpNeeded + warmupStart();
embedMasterForever 0:17d76ace37b6 52 timer1.start();
embedMasterForever 0:17d76ace37b6 53 repeatFlag = 0;
embedMasterForever 0:17d76ace37b6 54 }
embedMasterForever 0:17d76ace37b6 55 if(0.95 < timer1.read() && timer1.read() < 1.05){
embedMasterForever 0:17d76ace37b6 56 stopMotors();
embedMasterForever 0:17d76ace37b6 57 wait(1);
embedMasterForever 0:17d76ace37b6 58 timer1.reset();
embedMasterForever 0:17d76ace37b6 59 timer1.start();
embedMasterForever 0:17d76ace37b6 60 recordMotorCounts(&mtrCounts[0]);
embedMasterForever 0:17d76ace37b6 61 repeatFlag = 1;
embedMasterForever 0:17d76ace37b6 62 }
embedMasterForever 0:17d76ace37b6 63 if(warmUpNeeded == 4 && repeatFlag == 1){
embedMasterForever 0:17d76ace37b6 64 exponentialAccAndDecCurves();
embedMasterForever 0:17d76ace37b6 65 warmUpNeeded = 10000;
embedMasterForever 0:17d76ace37b6 66 }
embedMasterForever 0:17d76ace37b6 67
embedMasterForever 0:17d76ace37b6 68 if(Motor1A == 0 && flagMotor1A == 1){
embedMasterForever 0:17d76ace37b6 69 mtrCounts[0]++;
embedMasterForever 0:17d76ace37b6 70 flagMotor1A = 0;
embedMasterForever 0:17d76ace37b6 71 }
embedMasterForever 0:17d76ace37b6 72 if(Motor1A == 1 && flagMotor1A == 0){
embedMasterForever 0:17d76ace37b6 73 mtrCounts[0]++;
embedMasterForever 0:17d76ace37b6 74 flagMotor1A = 1;
embedMasterForever 0:17d76ace37b6 75 }
embedMasterForever 0:17d76ace37b6 76
embedMasterForever 0:17d76ace37b6 77 if(Motor2A == 0 && flagMotor2A == 1){
embedMasterForever 0:17d76ace37b6 78 mtrCounts[1]++;
embedMasterForever 0:17d76ace37b6 79 flagMotor2A = 0;
embedMasterForever 0:17d76ace37b6 80 }
embedMasterForever 0:17d76ace37b6 81 if(Motor2A == 1 && flagMotor2A == 0){
embedMasterForever 0:17d76ace37b6 82 mtrCounts[1]++;
embedMasterForever 0:17d76ace37b6 83 flagMotor2A = 1;
embedMasterForever 0:17d76ace37b6 84 }
embedMasterForever 0:17d76ace37b6 85
embedMasterForever 0:17d76ace37b6 86 if(Motor3A == 0 && flagMotor3A == 1){
embedMasterForever 0:17d76ace37b6 87 mtrCounts[2]++;
embedMasterForever 0:17d76ace37b6 88 flagMotor3A = 0;
embedMasterForever 0:17d76ace37b6 89 }
embedMasterForever 0:17d76ace37b6 90 if(Motor3A == 1 && flagMotor3A == 0){
embedMasterForever 0:17d76ace37b6 91 mtrCounts[2]++;
embedMasterForever 0:17d76ace37b6 92 flagMotor3A = 1;
embedMasterForever 0:17d76ace37b6 93 }
embedMasterForever 0:17d76ace37b6 94
embedMasterForever 0:17d76ace37b6 95 if(Motor4A == 0 && flagMotor4A == 1){
embedMasterForever 0:17d76ace37b6 96 mtrCounts[3]++;
embedMasterForever 0:17d76ace37b6 97 flagMotor4A = 0;
embedMasterForever 0:17d76ace37b6 98 }
embedMasterForever 0:17d76ace37b6 99 if(Motor4A == 1 && flagMotor4A == 0){
embedMasterForever 0:17d76ace37b6 100 mtrCounts[3]++;
embedMasterForever 0:17d76ace37b6 101 flagMotor4A = 1;
embedMasterForever 0:17d76ace37b6 102 }
embedMasterForever 0:17d76ace37b6 103 } */
embedMasterForever 0:17d76ace37b6 104 }
embedMasterForever 0:17d76ace37b6 105
embedMasterForever 0:17d76ace37b6 106
embedMasterForever 0:17d76ace37b6 107
embedMasterForever 0:17d76ace37b6 108
embedMasterForever 0:17d76ace37b6 109
embedMasterForever 0:17d76ace37b6 110
embedMasterForever 0:17d76ace37b6 111
embedMasterForever 0:17d76ace37b6 112
embedMasterForever 0:17d76ace37b6 113