Mike Panetta
/
DeadReconing4TriangleFloor
Code for AHRC Triathalon
main.cpp@0:e6d2aeb6f9cd, 2016-03-09 (annotated)
- Committer:
- mpanetta
- Date:
- Wed Mar 09 17:36:40 2016 +0000
- Revision:
- 0:e6d2aeb6f9cd
Making Public
Who changed what in which revision?
User | Revision | Line number | New 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 |