EE149
/
FinalProject
Final Project files for mBed development.
control.c@11:a30f30d3066e, 2014-11-16 (annotated)
- 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?
User | Revision | Line number | New 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 | } |