EE149
/
FinalProject
Final Project files for mBed development.
control.c@28:9976a94efa83, 2014-12-08 (annotated)
- Committer:
- alecguertin
- Date:
- Mon Dec 08 10:52:42 2014 +0000
- Revision:
- 28:9976a94efa83
- Parent:
- 14:41fa8b95a9ab
end of sunday
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 | 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 | } |