EE149
/
FinalProject
Final Project files for mBed development.
main.c@9:3a0433c391cb, 2014-11-15 (annotated)
- Committer:
- lsaristo
- Date:
- Sat Nov 15 05:07:24 2014 +0000
- Revision:
- 9:3a0433c391cb
- Parent:
- 8:12d780f7443e
- Child:
- 10:94b068b2ce1d
A few minor changes
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" |
John Wilkey |
5:01882c3de2dc | 11 | |
John Wilkey |
5:01882c3de2dc | 12 | /** |
John Wilkey |
5:01882c3de2dc | 13 | * These are global data Used externally in all other files |
John Wilkey |
5:01882c3de2dc | 14 | */ |
lsaristo | 7:6e5cc24e1ce7 | 15 | m3pi pi; |
lsaristo | 9:3a0433c391cb | 16 | |
lsaristo | 9:3a0433c391cb | 17 | // |
lsaristo | 9:3a0433c391cb | 18 | // Digital inputs to the mBed |
lsaristo | 9:3a0433c391cb | 19 | DigitalIn btn_b(p21); |
lsaristo | 9:3a0433c391cb | 20 | |
lsaristo | 9:3a0433c391cb | 21 | // |
lsaristo | 9:3a0433c391cb | 22 | // Digital outputs from the mBed. Note that by default these are |
lsaristo | 9:3a0433c391cb | 23 | // used to drive the 8 LED's on the top board. |
lsaristo | 7:6e5cc24e1ce7 | 24 | DigitalOut pin15(p15); |
lsaristo | 7:6e5cc24e1ce7 | 25 | DigitalOut pin16(p16); |
lsaristo | 7:6e5cc24e1ce7 | 26 | DigitalOut pin17(p17); |
lsaristo | 7:6e5cc24e1ce7 | 27 | DigitalOut pin18(p18); |
lsaristo | 7:6e5cc24e1ce7 | 28 | DigitalOut pin19(p19); |
lsaristo | 7:6e5cc24e1ce7 | 29 | DigitalOut pin20(p20); |
lsaristo | 7:6e5cc24e1ce7 | 30 | |
lsaristo | 9:3a0433c391cb | 31 | // |
lsaristo | 9:3a0433c391cb | 32 | // mBed onboard LEDs |
lsaristo | 9:3a0433c391cb | 33 | DigitalOut oled_1(LED1); |
lsaristo | 9:3a0433c391cb | 34 | DigitalOut oled_2(LED2); |
lsaristo | 9:3a0433c391cb | 35 | DigitalOut oled_3(LED3); |
lsaristo | 9:3a0433c391cb | 36 | DigitalOut oled_4(LED4); |
lsaristo | 9:3a0433c391cb | 37 | |
lsaristo | 9:3a0433c391cb | 38 | |
John Wilkey |
5:01882c3de2dc | 39 | /** |
John Wilkey |
5:01882c3de2dc | 40 | * @brief Entry point. Main loop. |
John Wilkey |
5:01882c3de2dc | 41 | */ |
John Wilkey |
5:01882c3de2dc | 42 | int main() |
John Wilkey |
5:01882c3de2dc | 43 | { |
lsaristo | 9:3a0433c391cb | 44 | // |
lsaristo | 9:3a0433c391cb | 45 | // Basic setup information |
lsaristo | 9:3a0433c391cb | 46 | DigitalOut olen_1(LED1); |
lsaristo | 9:3a0433c391cb | 47 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 48 | pi.printf("PiCO"); |
lsaristo | 9:3a0433c391cb | 49 | pi.locate(0,1); |
lsaristo | 9:3a0433c391cb | 50 | pi.printf("%f mV", pi.battery()); |
John Wilkey |
6:00b7198f0b51 | 51 | |
John Wilkey |
6:00b7198f0b51 | 52 | // |
lsaristo | 9:3a0433c391cb | 53 | // Main program loop. |
lsaristo | 9:3a0433c391cb | 54 | while(1) { |
lsaristo | 9:3a0433c391cb | 55 | forward(10); |
lsaristo | 9:3a0433c391cb | 56 | right(90); |
lsaristo | 9:3a0433c391cb | 57 | forward(10); |
lsaristo | 9:3a0433c391cb | 58 | right(90); |
lsaristo | 9:3a0433c391cb | 59 | forward(10); |
lsaristo | 9:3a0433c391cb | 60 | wait(2); |
lsaristo | 9:3a0433c391cb | 61 | left(180); |
lsaristo | 9:3a0433c391cb | 62 | } |
lsaristo | 9:3a0433c391cb | 63 | |
lsaristo | 9:3a0433c391cb | 64 | // |
lsaristo | 9:3a0433c391cb | 65 | // We should never reach this point! |
John Wilkey |
5:01882c3de2dc | 66 | } |
lsaristo | 8:12d780f7443e | 67 | |
lsaristo | 9:3a0433c391cb | 68 | int forward(int amt) |
lsaristo | 8:12d780f7443e | 69 | { |
lsaristo | 9:3a0433c391cb | 70 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 71 | pi.printf("Fwd %d", amt); |
lsaristo | 9:3a0433c391cb | 72 | pi.forward(DRIVE_SPEED); |
lsaristo | 9:3a0433c391cb | 73 | wait(amt*DRIVE_RATE); |
lsaristo | 8:12d780f7443e | 74 | return EXIT_SUCCESS; |
lsaristo | 8:12d780f7443e | 75 | } |
lsaristo | 8:12d780f7443e | 76 | |
lsaristo | 9:3a0433c391cb | 77 | int backward(int amt) |
lsaristo | 8:12d780f7443e | 78 | { |
lsaristo | 9:3a0433c391cb | 79 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 80 | pi.printf("Back %d", amt); |
lsaristo | 9:3a0433c391cb | 81 | pi.backward(DRIVE_SPEED); |
lsaristo | 9:3a0433c391cb | 82 | wait(amt*DRIVE_RATE); |
lsaristo | 8:12d780f7443e | 83 | return EXIT_SUCCESS; |
lsaristo | 8:12d780f7443e | 84 | } |
lsaristo | 8:12d780f7443e | 85 | |
lsaristo | 8:12d780f7443e | 86 | int right(float deg) |
lsaristo | 8:12d780f7443e | 87 | { |
lsaristo | 9:3a0433c391cb | 88 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 89 | pi.printf("Right %f", deg); |
lsaristo | 8:12d780f7443e | 90 | pi.right(TURN_SPEED); |
lsaristo | 8:12d780f7443e | 91 | wait(deg/360); |
lsaristo | 8:12d780f7443e | 92 | return EXIT_SUCCESS; |
lsaristo | 8:12d780f7443e | 93 | } |
lsaristo | 8:12d780f7443e | 94 | |
lsaristo | 8:12d780f7443e | 95 | int left(float deg) |
lsaristo | 8:12d780f7443e | 96 | { |
lsaristo | 9:3a0433c391cb | 97 | pi.locate(0,0); |
lsaristo | 9:3a0433c391cb | 98 | pi.printf("Left %f", deg); |
lsaristo | 8:12d780f7443e | 99 | pi.left(TURN_SPEED); |
lsaristo | 8:12d780f7443e | 100 | wait(deg/360); |
lsaristo | 8:12d780f7443e | 101 | return EXIT_SUCCESS; |
lsaristo | 9:3a0433c391cb | 102 | } |