Final Project files for mBed development.

Dependencies:   m3pi mbed

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?

UserRevisionLine numberNew 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 }