Final Project files for mBed development.

Dependencies:   m3pi mbed

Committer:
lsaristo
Date:
Fri Nov 28 21:08:55 2014 +0000
Revision:
14:41fa8b95a9ab
Parent:
12:1aa6b8a74136
Updated user-gui.py to better filter input data.

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 14:41fa8b95a9ab 19 LocalFileSystem local("local");
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 14:41fa8b95a9ab 24 fread(moves, size, 1, fp);
lsaristo 10:94b068b2ce1d 25 fclose(fp);
lsaristo 10:94b068b2ce1d 26 }
lsaristo 10:94b068b2ce1d 27
lsaristo 10:94b068b2ce1d 28 void robot_loop()
lsaristo 10:94b068b2ce1d 29 {
lsaristo 10:94b068b2ce1d 30 start:
lsaristo 11:a30f30d3066e 31 pi.cls();
lsaristo 11:a30f30d3066e 32 pi.locate(0,0);
lsaristo 11:a30f30d3066e 33 pi.printf("PiCO");
lsaristo 11:a30f30d3066e 34 pi.locate(0,1);
lsaristo 11:a30f30d3066e 35 pi.printf("%f mV", pi.battery());
lsaristo 11:a30f30d3066e 36 wait(.5);
lsaristo 11:a30f30d3066e 37 while(start_button) {
lsaristo 11:a30f30d3066e 38 oled_2 = 1;
lsaristo 11:a30f30d3066e 39 wait(.5);
lsaristo 11:a30f30d3066e 40 pi.locate(0,0);
lsaristo 11:a30f30d3066e 41 pi.printf("Ready");
lsaristo 11:a30f30d3066e 42 oled_2 = 0;
lsaristo 11:a30f30d3066e 43 }
lsaristo 11:a30f30d3066e 44 pi.cls();
lsaristo 11:a30f30d3066e 45 pi.locate(0,0);
lsaristo 11:a30f30d3066e 46 pi.printf("GO!");
lsaristo 11:a30f30d3066e 47 wait(.5);
lsaristo 11:a30f30d3066e 48
lsaristo 10:94b068b2ce1d 49 while(1) {
lsaristo 12:1aa6b8a74136 50 if(!start_button) {
lsaristo 10:94b068b2ce1d 51 pi.stop();
lsaristo 10:94b068b2ce1d 52 goto start;
lsaristo 10:94b068b2ce1d 53 }
lsaristo 12:1aa6b8a74136 54 forward(10);
lsaristo 12:1aa6b8a74136 55 right(90);
lsaristo 14:41fa8b95a9ab 56
lsaristo 10:94b068b2ce1d 57 //
lsaristo 10:94b068b2ce1d 58 // Right now the robot controller is clearly a very basic
lsaristo 12:1aa6b8a74136 59 // 'hello world' loop that must be changed.
lsaristo 10:94b068b2ce1d 60 }
lsaristo 10:94b068b2ce1d 61 }