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 10:94b068b2ce1d 1 /**
lsaristo 10:94b068b2ce1d 2 * @file control.c
lsaristo 10:94b068b2ce1d 3 * @brief Implemention of robot control algorithms.
lsaristo 10:94b068b2ce1d 4 *
lsaristo 10:94b068b2ce1d 5 * This file should also contain the logic needed to parse
lsaristo 10:94b068b2ce1d 6 * any drawing file and issue motor commands through functions
lsaristo 10:94b068b2ce1d 7 * defined in main.h
lsaristo 10:94b068b2ce1d 8 *
lsaristo 10:94b068b2ce1d 9 * @author John Wilkey
lsaristo 10:94b068b2ce1d 10 */
lsaristo 10:94b068b2ce1d 11 #include "control.h"
lsaristo 10:94b068b2ce1d 12 #include "main.h"
lsaristo 10:94b068b2ce1d 13 extern m3pi pi;
lsaristo 10:94b068b2ce1d 14 extern DigitalIn start_button;
lsaristo 11:a30f30d3066e 15 extern DigitalOut oled_2;
lsaristo 10:94b068b2ce1d 16
lsaristo 10:94b068b2ce1d 17 void get_ps_file(char* moves)
lsaristo 10:94b068b2ce1d 18 {
lsaristo 10:94b068b2ce1d 19 char* contents;
lsaristo 10:94b068b2ce1d 20 FILE* fp = fopen(_CANVAS_FILE, "r");
lsaristo 10:94b068b2ce1d 21 fseek(fp, 0L, SEEK_END);
lsaristo 10:94b068b2ce1d 22 int size = ftell(fp);
lsaristo 10:94b068b2ce1d 23 fseek(fp, 0L, SEEK_SET);
lsaristo 10:94b068b2ce1d 24 contents = (char*)malloc(size);
lsaristo 10:94b068b2ce1d 25 fread(contents, size, 1, fp);
lsaristo 10:94b068b2ce1d 26 fclose(fp);
lsaristo 10:94b068b2ce1d 27 }
lsaristo 10:94b068b2ce1d 28
lsaristo 10:94b068b2ce1d 29 void robot_loop()
lsaristo 10:94b068b2ce1d 30 {
lsaristo 10:94b068b2ce1d 31 start:
lsaristo 11:a30f30d3066e 32 pi.cls();
lsaristo 11:a30f30d3066e 33 pi.locate(0,0);
lsaristo 11:a30f30d3066e 34 pi.printf("PiCO");
lsaristo 11:a30f30d3066e 35 pi.locate(0,1);
lsaristo 11:a30f30d3066e 36 pi.printf("%f mV", pi.battery());
lsaristo 11:a30f30d3066e 37 wait(.5);
lsaristo 11:a30f30d3066e 38 while(start_button) {
lsaristo 11:a30f30d3066e 39 oled_2 = 1;
lsaristo 11:a30f30d3066e 40 wait(.5);
lsaristo 11:a30f30d3066e 41 pi.locate(0,0);
lsaristo 11:a30f30d3066e 42 pi.printf("Ready");
lsaristo 11:a30f30d3066e 43 oled_2 = 0;
lsaristo 11:a30f30d3066e 44 }
lsaristo 11:a30f30d3066e 45 pi.cls();
lsaristo 11:a30f30d3066e 46 pi.locate(0,0);
lsaristo 11:a30f30d3066e 47 pi.printf("GO!");
lsaristo 11:a30f30d3066e 48 wait(.5);
lsaristo 11:a30f30d3066e 49
lsaristo 10:94b068b2ce1d 50 while(1) {
lsaristo 10:94b068b2ce1d 51 if(start_button) {
lsaristo 10:94b068b2ce1d 52 pi.stop();
lsaristo 10:94b068b2ce1d 53 goto start;
lsaristo 10:94b068b2ce1d 54 }
lsaristo 10:94b068b2ce1d 55
lsaristo 10:94b068b2ce1d 56 //
lsaristo 10:94b068b2ce1d 57 // Right now the robot controller is clearly a very basic
lsaristo 10:94b068b2ce1d 58 // 'hello world' loop that must be changed.
lsaristo 10:94b068b2ce1d 59 forward(10);
lsaristo 10:94b068b2ce1d 60 right(90);
lsaristo 10:94b068b2ce1d 61 forward(10);
lsaristo 10:94b068b2ce1d 62 right(90);
lsaristo 10:94b068b2ce1d 63 forward(10);
lsaristo 10:94b068b2ce1d 64 wait(2);
lsaristo 10:94b068b2ce1d 65 left(180);
lsaristo 10:94b068b2ce1d 66 }
lsaristo 10:94b068b2ce1d 67 }