Team Ascent / Mbed 2 deprecated TDPCode1

Dependencies:   mbed

Committer:
cmcmaster
Date:
Wed Feb 04 16:55:27 2015 +0000
Revision:
0:59d25bb7f825
Child:
1:2bab3a0bc3bc
Basically I've taken the old code from the demonstration that worked. Now i'm expanding upon it to make a more robust system.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cmcmaster 0:59d25bb7f825 1 #include "mbed.h"
cmcmaster 0:59d25bb7f825 2
cmcmaster 0:59d25bb7f825 3 //motor select pins
cmcmaster 0:59d25bb7f825 4 DigitalOut motor_lf(PTE2);
cmcmaster 0:59d25bb7f825 5 DigitalOut motor_lb(PTE3);
cmcmaster 0:59d25bb7f825 6 DigitalOut motor_rf(PTE4);
cmcmaster 0:59d25bb7f825 7 DigitalOut motor_rb(PTE5);
cmcmaster 0:59d25bb7f825 8
cmcmaster 0:59d25bb7f825 9 //Frequency of Pulse Width Modulated signal in Hz
cmcmaster 0:59d25bb7f825 10 #define PWM_FREQ 1000
cmcmaster 0:59d25bb7f825 11
cmcmaster 0:59d25bb7f825 12 //PWM pin (Enable 1 and 2)
cmcmaster 0:59d25bb7f825 13 PwmOut motor_l (PTC2);
cmcmaster 0:59d25bb7f825 14 PwmOut motor_r (PTE29);
cmcmaster 0:59d25bb7f825 15
cmcmaster 0:59d25bb7f825 16 //LED to test
cmcmaster 0:59d25bb7f825 17 DigitalOut myled(LED_RED);
cmcmaster 0:59d25bb7f825 18 /*
cmcmaster 0:59d25bb7f825 19 Pivot Right: //Change duties for speed
cmcmaster 0:59d25bb7f825 20 motor_rf=0;
cmcmaster 0:59d25bb7f825 21 motor_rb=0;
cmcmaster 0:59d25bb7f825 22 motor_lf=1;
cmcmaster 0:59d25bb7f825 23 motor_lb=0;
cmcmaster 0:59d25bb7f825 24 Pivot Left: //Change duties for speed
cmcmaster 0:59d25bb7f825 25 motor_rf=1;
cmcmaster 0:59d25bb7f825 26 motor_rb=0;
cmcmaster 0:59d25bb7f825 27 motor_lf=0;
cmcmaster 0:59d25bb7f825 28 motor_lb=0;
cmcmaster 0:59d25bb7f825 29 Forwards: //Change duties for speed & direction
cmcmaster 0:59d25bb7f825 30 motor_rf=1;
cmcmaster 0:59d25bb7f825 31 motor_rb=0;
cmcmaster 0:59d25bb7f825 32 motor_lf=1;
cmcmaster 0:59d25bb7f825 33 motor_lb=0;
cmcmaster 0:59d25bb7f825 34 Backwards: //Change duties for speed & direction
cmcmaster 0:59d25bb7f825 35 motor_rf=0;
cmcmaster 0:59d25bb7f825 36 motor_rb=1;
cmcmaster 0:59d25bb7f825 37 motor_lf=0;
cmcmaster 0:59d25bb7f825 38 motor_lb=1;
cmcmaster 0:59d25bb7f825 39 */
cmcmaster 0:59d25bb7f825 40 void set_direction( int nature_of_direction, float speed)
cmcmaster 0:59d25bb7f825 41 {
cmcmaster 0:59d25bb7f825 42 switch(nature_of_direction) {
cmcmaster 0:59d25bb7f825 43 case "forward": {
cmcmaster 0:59d25bb7f825 44 motor_r.write(speed + angle); //where angle can be postive and negative and will TURN the robot
cmcmaster 0:59d25bb7f825 45 motor_l.write(speed - angle);
cmcmaster 0:59d25bb7f825 46 //if turning left, you'd make the angle postive (right motor goes faster left motor goes slwoer)
cmcmaster 0:59d25bb7f825 47 motor_rf=1;
cmcmaster 0:59d25bb7f825 48 motor_rb=0;
cmcmaster 0:59d25bb7f825 49 motor_lf=1;
cmcmaster 0:59d25bb7f825 50 motor_lb=0;
cmcmaster 0:59d25bb7f825 51 }
cmcmaster 0:59d25bb7f825 52 case "backwards": {
cmcmaster 0:59d25bb7f825 53 motor_r.write(speed + angle); //where angle can be postive and negative and will TURN the robot
cmcmaster 0:59d25bb7f825 54 motor_l.write(speed - angle);
cmcmaster 0:59d25bb7f825 55 //if turning left, you'd make the angle postive (right motor goes faster left motor goes slwoer)
cmcmaster 0:59d25bb7f825 56 motor_rf=0;
cmcmaster 0:59d25bb7f825 57 motor_rb=1;
cmcmaster 0:59d25bb7f825 58 motor_lf=0;
cmcmaster 0:59d25bb7f825 59 motor_lb=1;
cmcmaster 0:59d25bb7f825 60 }
cmcmaster 0:59d25bb7f825 61 case "pivot right": {
cmcmaster 0:59d25bb7f825 62 motor_r.write(0); //motor doesn't need to be enabled
cmcmaster 0:59d25bb7f825 63 motor_l.write(speed);
cmcmaster 0:59d25bb7f825 64
cmcmaster 0:59d25bb7f825 65 motor_rf=0;
cmcmaster 0:59d25bb7f825 66 motor_rb=0;
cmcmaster 0:59d25bb7f825 67 motor_lf=1;
cmcmaster 0:59d25bb7f825 68 motor_lb=0;
cmcmaster 0:59d25bb7f825 69 }
cmcmaster 0:59d25bb7f825 70 case "pivot left": {
cmcmaster 0:59d25bb7f825 71 motor_r.write(speed);
cmcmaster 0:59d25bb7f825 72 motor_l.write(0); //motor doesn't need to be enabled
cmcmaster 0:59d25bb7f825 73
cmcmaster 0:59d25bb7f825 74 motor_rf=1;
cmcmaster 0:59d25bb7f825 75 motor_rb=0;
cmcmaster 0:59d25bb7f825 76 motor_lf=0;
cmcmaster 0:59d25bb7f825 77 motor_lb=0;
cmcmaster 0:59d25bb7f825 78 }
cmcmaster 0:59d25bb7f825 79 }
cmcmaster 0:59d25bb7f825 80 }
cmcmaster 0:59d25bb7f825 81
cmcmaster 0:59d25bb7f825 82 int main()
cmcmaster 0:59d25bb7f825 83 {
cmcmaster 0:59d25bb7f825 84
cmcmaster 0:59d25bb7f825 85 //Set PWM frequency to 1000Hz
cmcmaster 0:59d25bb7f825 86 motor_l.period( 1.0f / (float) PWM_FREQ);
cmcmaster 0:59d25bb7f825 87 motor_r.period( 1.0f / (float) PWM_FREQ);
cmcmaster 0:59d25bb7f825 88 //Initialise direction to nothing.
cmcmaster 0:59d25bb7f825 89 motor_rf=0;
cmcmaster 0:59d25bb7f825 90 motor_rb=0;
cmcmaster 0:59d25bb7f825 91 motor_lf=0;
cmcmaster 0:59d25bb7f825 92 motor_lb=0;
cmcmaster 0:59d25bb7f825 93
cmcmaster 0:59d25bb7f825 94
cmcmaster 0:59d25bb7f825 95 while(1) { //infinite loop
cmcmaster 0:59d25bb7f825 96 //***********************************************
cmcmaster 0:59d25bb7f825 97 myled = !myled;
cmcmaster 0:59d25bb7f825 98
cmcmaster 0:59d25bb7f825 99 //Set duty cycle at 100% AKA Full Speed
cmcmaster 0:59d25bb7f825 100 motor_r.write(1.0);
cmcmaster 0:59d25bb7f825 101 motor_l.write(1.0);
cmcmaster 0:59d25bb7f825 102
cmcmaster 0:59d25bb7f825 103 motor_rf=1;
cmcmaster 0:59d25bb7f825 104 motor_rb=0;
cmcmaster 0:59d25bb7f825 105 motor_lf=1;
cmcmaster 0:59d25bb7f825 106 motor_lb=0; //go forwards
cmcmaster 0:59d25bb7f825 107 wait(2);
cmcmaster 0:59d25bb7f825 108 //**************************************
cmcmaster 0:59d25bb7f825 109 myled = !myled;
cmcmaster 0:59d25bb7f825 110
cmcmaster 0:59d25bb7f825 111 motor_r.write(0.75);
cmcmaster 0:59d25bb7f825 112 motor_l.write(0.75);
cmcmaster 0:59d25bb7f825 113
cmcmaster 0:59d25bb7f825 114 motor_rf=1;
cmcmaster 0:59d25bb7f825 115 motor_rb=0;
cmcmaster 0:59d25bb7f825 116 motor_lf=1;
cmcmaster 0:59d25bb7f825 117 motor_lb=0; //go forwards
cmcmaster 0:59d25bb7f825 118 //
cmcmaster 0:59d25bb7f825 119 wait(2);
cmcmaster 0:59d25bb7f825 120
cmcmaster 0:59d25bb7f825 121 myled = !myled;
cmcmaster 0:59d25bb7f825 122
cmcmaster 0:59d25bb7f825 123 motor_r.write(0.5);
cmcmaster 0:59d25bb7f825 124 motor_l.write(0.5);
cmcmaster 0:59d25bb7f825 125
cmcmaster 0:59d25bb7f825 126 motor_rf=1;
cmcmaster 0:59d25bb7f825 127 motor_rb=0;
cmcmaster 0:59d25bb7f825 128 motor_lf=1;
cmcmaster 0:59d25bb7f825 129 motor_lb=0;
cmcmaster 0:59d25bb7f825 130
cmcmaster 0:59d25bb7f825 131
cmcmaster 0:59d25bb7f825 132 wait(2);
cmcmaster 0:59d25bb7f825 133 myled = !myled;
cmcmaster 0:59d25bb7f825 134
cmcmaster 0:59d25bb7f825 135 motor_r.write(0.30);
cmcmaster 0:59d25bb7f825 136 motor_l.write(0.30);
cmcmaster 0:59d25bb7f825 137
cmcmaster 0:59d25bb7f825 138 motor_rf=1;
cmcmaster 0:59d25bb7f825 139 motor_rb=0;
cmcmaster 0:59d25bb7f825 140 motor_lf=1;
cmcmaster 0:59d25bb7f825 141 motor_lb=0;
cmcmaster 0:59d25bb7f825 142
cmcmaster 0:59d25bb7f825 143 wait(2);
cmcmaster 0:59d25bb7f825 144
cmcmaster 0:59d25bb7f825 145 myled = !myled;
cmcmaster 0:59d25bb7f825 146 motor_r.write(1.0);
cmcmaster 0:59d25bb7f825 147 motor_l.write(1.0);
cmcmaster 0:59d25bb7f825 148
cmcmaster 0:59d25bb7f825 149 motor_rf=0;
cmcmaster 0:59d25bb7f825 150 motor_rb=1;
cmcmaster 0:59d25bb7f825 151 motor_lf=0;
cmcmaster 0:59d25bb7f825 152 motor_lb=1; //go forwards
cmcmaster 0:59d25bb7f825 153 //
cmcmaster 0:59d25bb7f825 154 wait(2);
cmcmaster 0:59d25bb7f825 155
cmcmaster 0:59d25bb7f825 156
cmcmaster 0:59d25bb7f825 157
cmcmaster 0:59d25bb7f825 158 myled = !myled;
cmcmaster 0:59d25bb7f825 159 motor_r.write(0.5);
cmcmaster 0:59d25bb7f825 160 motor_l.write(0.5);
cmcmaster 0:59d25bb7f825 161
cmcmaster 0:59d25bb7f825 162 motor_rf=0;
cmcmaster 0:59d25bb7f825 163 motor_rb=0;
cmcmaster 0:59d25bb7f825 164 motor_lf=0;
cmcmaster 0:59d25bb7f825 165 motor_lb=1; //
cmcmaster 0:59d25bb7f825 166
cmcmaster 0:59d25bb7f825 167 wait(2);
cmcmaster 0:59d25bb7f825 168 myled = !myled;
cmcmaster 0:59d25bb7f825 169
cmcmaster 0:59d25bb7f825 170 motor_rf=0;
cmcmaster 0:59d25bb7f825 171 motor_rb=1;
cmcmaster 0:59d25bb7f825 172 motor_lf=0;
cmcmaster 0:59d25bb7f825 173 motor_lb=0; //reverse turn
cmcmaster 0:59d25bb7f825 174
cmcmaster 0:59d25bb7f825 175 wait(2);
cmcmaster 0:59d25bb7f825 176
cmcmaster 0:59d25bb7f825 177 myled = !myled;
cmcmaster 0:59d25bb7f825 178 motor_r.write(0.5);
cmcmaster 0:59d25bb7f825 179 motor_l.write(1.0);
cmcmaster 0:59d25bb7f825 180
cmcmaster 0:59d25bb7f825 181 motor_rf=1;
cmcmaster 0:59d25bb7f825 182 motor_rb=0;
cmcmaster 0:59d25bb7f825 183 motor_lf=1;
cmcmaster 0:59d25bb7f825 184 motor_lb=0; //go forwards
cmcmaster 0:59d25bb7f825 185 //
cmcmaster 0:59d25bb7f825 186 wait(4);
cmcmaster 0:59d25bb7f825 187
cmcmaster 0:59d25bb7f825 188 }
cmcmaster 0:59d25bb7f825 189
cmcmaster 0:59d25bb7f825 190 }