Final Project files for mBed development.

Dependencies:   m3pi mbed

Committer:
lsaristo
Date:
Sun Nov 16 09:11:34 2014 +0000
Revision:
12:1aa6b8a74136
Parent:
11:a30f30d3066e
Child:
14:41fa8b95a9ab
Added user-gui python file for drawing surface and file generation. Tried fixing weird wait() issue in direction functions

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