EE149
/
FinalProject
Final Project files for mBed development.
main.c@11:a30f30d3066e, 2014-11-16 (annotated)
- Committer:
- lsaristo
- Date:
- Sun Nov 16 05:26:24 2014 +0000
- Revision:
- 11:a30f30d3066e
- Parent:
- 10:94b068b2ce1d
- Child:
- 12:1aa6b8a74136
Moved all robot functions to robot_loop()
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lsaristo | 1:7e0243c27ecb | 1 | /** |
lsaristo | 1:7e0243c27ecb | 2 | * @file driver.c |
lsaristo | 1:7e0243c27ecb | 3 | * @brief Basic driver program for our robot's controller logic. |
lsaristo | 1:7e0243c27ecb | 4 | * |
lsaristo | 1:7e0243c27ecb | 5 | * Maybe add lots of stuff here or maybe split it off into |
lsaristo | 1:7e0243c27ecb | 6 | * multiple subfiles? |
lsaristo | 1:7e0243c27ecb | 7 | * |
lsaristo | 1:7e0243c27ecb | 8 | * @author John Wilkey |
lsaristo | 1:7e0243c27ecb | 9 | */ |
lsaristo | 9:3a0433c391cb | 10 | #include "main.h" |
lsaristo | 10:94b068b2ce1d | 11 | #include "control.h" |
John Wilkey |
5:01882c3de2dc | 12 | |
John Wilkey |
5:01882c3de2dc | 13 | /** |
John Wilkey |
5:01882c3de2dc | 14 | * These are global data Used externally in all other files |
John Wilkey |
5:01882c3de2dc | 15 | */ |
lsaristo | 7:6e5cc24e1ce7 | 16 | m3pi pi; |
lsaristo | 9:3a0433c391cb | 17 | |
lsaristo | 9:3a0433c391cb | 18 | // |
lsaristo | 9:3a0433c391cb | 19 | // Digital inputs to the mBed |
lsaristo | 10:94b068b2ce1d | 20 | DigitalIn start_button(p21); |
lsaristo | 9:3a0433c391cb | 21 | |
lsaristo | 9:3a0433c391cb | 22 | // |
lsaristo | 9:3a0433c391cb | 23 | // Digital outputs from the mBed. Note that by default these are |
lsaristo | 9:3a0433c391cb | 24 | // used to drive the 8 LED's on the top board. |
lsaristo | 7:6e5cc24e1ce7 | 25 | DigitalOut pin15(p15); |
lsaristo | 7:6e5cc24e1ce7 | 26 | DigitalOut pin16(p16); |
lsaristo | 7:6e5cc24e1ce7 | 27 | DigitalOut pin17(p17); |
lsaristo | 7:6e5cc24e1ce7 | 28 | DigitalOut pin18(p18); |
lsaristo | 7:6e5cc24e1ce7 | 29 | DigitalOut pin19(p19); |
lsaristo | 7:6e5cc24e1ce7 | 30 | DigitalOut pin20(p20); |
lsaristo | 7:6e5cc24e1ce7 | 31 | |
lsaristo | 9:3a0433c391cb | 32 | // |
lsaristo | 9:3a0433c391cb | 33 | // mBed onboard LEDs |
lsaristo | 9:3a0433c391cb | 34 | DigitalOut oled_1(LED1); |
lsaristo | 9:3a0433c391cb | 35 | DigitalOut oled_2(LED2); |
lsaristo | 9:3a0433c391cb | 36 | DigitalOut oled_3(LED3); |
lsaristo | 9:3a0433c391cb | 37 | DigitalOut oled_4(LED4); |
lsaristo | 9:3a0433c391cb | 38 | |
lsaristo | 9:3a0433c391cb | 39 | |
John Wilkey |
5:01882c3de2dc | 40 | /** |
John Wilkey |
5:01882c3de2dc | 41 | * @brief Entry point. Main loop. |
John Wilkey |
5:01882c3de2dc | 42 | */ |
John Wilkey |
5:01882c3de2dc | 43 | int main() |
John Wilkey |
5:01882c3de2dc | 44 | { |
lsaristo | 9:3a0433c391cb | 45 | // |
lsaristo | 9:3a0433c391cb | 46 | // Basic setup information |
lsaristo | 10:94b068b2ce1d | 47 | start_button.mode(PullUp); |
John Wilkey |
6:00b7198f0b51 | 48 | |
John Wilkey |
6:00b7198f0b51 | 49 | // |
lsaristo | 9:3a0433c391cb | 50 | // Main program loop. |
lsaristo | 10:94b068b2ce1d | 51 | robot_loop(); |
lsaristo | 9:3a0433c391cb | 52 | |
lsaristo | 9:3a0433c391cb | 53 | // |
lsaristo | 9:3a0433c391cb | 54 | // We should never reach this point! |
John Wilkey |
5:01882c3de2dc | 55 | } |
lsaristo | 8:12d780f7443e | 56 | |
lsaristo | 9:3a0433c391cb | 57 | int forward(int amt) |
lsaristo | 8:12d780f7443e | 58 | { |
lsaristo | 10:94b068b2ce1d | 59 | oled_2 = 1; |
lsaristo | 9:3a0433c391cb | 60 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 61 | pi.printf("Fwd %d", amt); |
lsaristo | 9:3a0433c391cb | 62 | pi.forward(DRIVE_SPEED); |
lsaristo | 9:3a0433c391cb | 63 | wait(amt*DRIVE_RATE); |
lsaristo | 10:94b068b2ce1d | 64 | oled_2 = 0; |
lsaristo | 8:12d780f7443e | 65 | return EXIT_SUCCESS; |
lsaristo | 8:12d780f7443e | 66 | } |
lsaristo | 8:12d780f7443e | 67 | |
lsaristo | 9:3a0433c391cb | 68 | int backward(int amt) |
lsaristo | 8:12d780f7443e | 69 | { |
lsaristo | 10:94b068b2ce1d | 70 | oled_3 = 1; |
lsaristo | 9:3a0433c391cb | 71 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 72 | pi.printf("Back %d", amt); |
lsaristo | 9:3a0433c391cb | 73 | pi.backward(DRIVE_SPEED); |
lsaristo | 9:3a0433c391cb | 74 | wait(amt*DRIVE_RATE); |
lsaristo | 10:94b068b2ce1d | 75 | oled_3 = 0; |
lsaristo | 8:12d780f7443e | 76 | return EXIT_SUCCESS; |
lsaristo | 8:12d780f7443e | 77 | } |
lsaristo | 8:12d780f7443e | 78 | |
lsaristo | 8:12d780f7443e | 79 | int right(float deg) |
lsaristo | 8:12d780f7443e | 80 | { |
lsaristo | 10:94b068b2ce1d | 81 | oled_4 = 1; |
lsaristo | 9:3a0433c391cb | 82 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 83 | pi.printf("Right %f", deg); |
lsaristo | 8:12d780f7443e | 84 | pi.right(TURN_SPEED); |
lsaristo | 8:12d780f7443e | 85 | wait(deg/360); |
lsaristo | 10:94b068b2ce1d | 86 | oled_4 = 0; |
lsaristo | 8:12d780f7443e | 87 | return EXIT_SUCCESS; |
lsaristo | 8:12d780f7443e | 88 | } |
lsaristo | 8:12d780f7443e | 89 | |
lsaristo | 8:12d780f7443e | 90 | int left(float deg) |
lsaristo | 8:12d780f7443e | 91 | { |
lsaristo | 10:94b068b2ce1d | 92 | oled_4 = 1; |
lsaristo | 10:94b068b2ce1d | 93 | oled_2 = 1; |
lsaristo | 9:3a0433c391cb | 94 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 95 | pi.printf("Left %f", deg); |
lsaristo | 8:12d780f7443e | 96 | pi.left(TURN_SPEED); |
lsaristo | 8:12d780f7443e | 97 | wait(deg/360); |
lsaristo | 10:94b068b2ce1d | 98 | oled_4 = 0; |
lsaristo | 10:94b068b2ce1d | 99 | oled_2 = 0; |
lsaristo | 8:12d780f7443e | 100 | return EXIT_SUCCESS; |
lsaristo | 10:94b068b2ce1d | 101 | } |
lsaristo | 10:94b068b2ce1d | 102 | |
lsaristo | 10:94b068b2ce1d | 103 | void pen_down() |
lsaristo | 10:94b068b2ce1d | 104 | { |
lsaristo | 10:94b068b2ce1d | 105 | oled_1 = 1; |
lsaristo | 10:94b068b2ce1d | 106 | } |
lsaristo | 10:94b068b2ce1d | 107 | |
lsaristo | 10:94b068b2ce1d | 108 | void pen_up() |
lsaristo | 10:94b068b2ce1d | 109 | { |
lsaristo | 10:94b068b2ce1d | 110 | oled_1 = 0; |
lsaristo | 9:3a0433c391cb | 111 | } |