Code for AHRC Triathalon

Dependencies:   m3pi mbed

Committer:
mpanetta
Date:
Wed Mar 09 17:36:40 2016 +0000
Revision:
0:e6d2aeb6f9cd
Making Public

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mpanetta 0:e6d2aeb6f9cd 1 #include "mbed.h"
mpanetta 0:e6d2aeb6f9cd 2 #include "m3pi.h"
mpanetta 0:e6d2aeb6f9cd 3
mpanetta 0:e6d2aeb6f9cd 4 m3pi m3pi;
mpanetta 0:e6d2aeb6f9cd 5
mpanetta 0:e6d2aeb6f9cd 6 // Minimum and maximum motor speeds
mpanetta 0:e6d2aeb6f9cd 7 #define MAX 0.5
mpanetta 0:e6d2aeb6f9cd 8 #define MIN 0
mpanetta 0:e6d2aeb6f9cd 9
mpanetta 0:e6d2aeb6f9cd 10 // PID terms
mpanetta 0:e6d2aeb6f9cd 11
mpanetta 0:e6d2aeb6f9cd 12
mpanetta 0:e6d2aeb6f9cd 13 int main() {
mpanetta 0:e6d2aeb6f9cd 14
mpanetta 0:e6d2aeb6f9cd 15 m3pi.locate(0,1);
mpanetta 0:e6d2aeb6f9cd 16 m3pi.printf("DR Floor");
mpanetta 0:e6d2aeb6f9cd 17
mpanetta 0:e6d2aeb6f9cd 18 wait(2.0);
mpanetta 0:e6d2aeb6f9cd 19
mpanetta 0:e6d2aeb6f9cd 20
mpanetta 0:e6d2aeb6f9cd 21
mpanetta 0:e6d2aeb6f9cd 22 float right;
mpanetta 0:e6d2aeb6f9cd 23 float left;
mpanetta 0:e6d2aeb6f9cd 24
mpanetta 0:e6d2aeb6f9cd 25
mpanetta 0:e6d2aeb6f9cd 26 float speed = MAX;
mpanetta 0:e6d2aeb6f9cd 27
mpanetta 0:e6d2aeb6f9cd 28
mpanetta 0:e6d2aeb6f9cd 29
mpanetta 0:e6d2aeb6f9cd 30
mpanetta 0:e6d2aeb6f9cd 31 // Compute new speeds
mpanetta 0:e6d2aeb6f9cd 32 right = speed;
mpanetta 0:e6d2aeb6f9cd 33 left = speed;
mpanetta 0:e6d2aeb6f9cd 34
mpanetta 0:e6d2aeb6f9cd 35
mpanetta 0:e6d2aeb6f9cd 36 // set speed
mpanetta 0:e6d2aeb6f9cd 37 m3pi.left_motor(left);
mpanetta 0:e6d2aeb6f9cd 38 m3pi.right_motor(right);
mpanetta 0:e6d2aeb6f9cd 39 wait(2.3); // The value that determines the distance travelled on the first line segment
mpanetta 0:e6d2aeb6f9cd 40 m3pi.left_motor(0);
mpanetta 0:e6d2aeb6f9cd 41 m3pi.right_motor(0);
mpanetta 0:e6d2aeb6f9cd 42 wait(0.5);
mpanetta 0:e6d2aeb6f9cd 43 m3pi.left_motor(.5);
mpanetta 0:e6d2aeb6f9cd 44 m3pi.right_motor(0);
mpanetta 0:e6d2aeb6f9cd 45 wait(0.35); // The value that sets the angle of the turn based on time
mpanetta 0:e6d2aeb6f9cd 46 m3pi.left_motor(0);
mpanetta 0:e6d2aeb6f9cd 47 m3pi.right_motor(0);
mpanetta 0:e6d2aeb6f9cd 48 wait(1.0);
mpanetta 0:e6d2aeb6f9cd 49
mpanetta 0:e6d2aeb6f9cd 50
mpanetta 0:e6d2aeb6f9cd 51 m3pi.left_motor(left);
mpanetta 0:e6d2aeb6f9cd 52 m3pi.right_motor(right);
mpanetta 0:e6d2aeb6f9cd 53 wait(2.3); // The value that determines the distance travelled on the second line segment
mpanetta 0:e6d2aeb6f9cd 54 m3pi.left_motor(0);
mpanetta 0:e6d2aeb6f9cd 55 m3pi.right_motor(0);
mpanetta 0:e6d2aeb6f9cd 56 wait(0.5);
mpanetta 0:e6d2aeb6f9cd 57 m3pi.left_motor(.5);
mpanetta 0:e6d2aeb6f9cd 58 m3pi.right_motor(0);
mpanetta 0:e6d2aeb6f9cd 59 wait(0.35); // The value that sets the angle of the turn based on time
mpanetta 0:e6d2aeb6f9cd 60 m3pi.left_motor(0);
mpanetta 0:e6d2aeb6f9cd 61 m3pi.right_motor(0);
mpanetta 0:e6d2aeb6f9cd 62 wait(1.0);
mpanetta 0:e6d2aeb6f9cd 63
mpanetta 0:e6d2aeb6f9cd 64 m3pi.left_motor(left);
mpanetta 0:e6d2aeb6f9cd 65 m3pi.right_motor(right);
mpanetta 0:e6d2aeb6f9cd 66 wait(2.25); // The value that determines the distance travelled on the third line segment
mpanetta 0:e6d2aeb6f9cd 67 m3pi.left_motor(0);
mpanetta 0:e6d2aeb6f9cd 68 m3pi.right_motor(0);
mpanetta 0:e6d2aeb6f9cd 69
mpanetta 0:e6d2aeb6f9cd 70 }
mpanetta 0:e6d2aeb6f9cd 71