Final Project files for mBed development.

Dependencies:   m3pi mbed

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?

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"
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 }