this code is completely restructured, but should do the same thing. did not want to directly commit, since it may not work at all. compiles though.
Dependencies: AVEncoder mbed-src-AV
Fork of Test by
main.cpp@13:5f08195456a4, 2015-12-15 (annotated)
- Committer:
- jimmery
- Date:
- Tue Dec 15 08:56:36 2015 +0000
- Revision:
- 13:5f08195456a4
- Parent:
- 12:0849b16c2672
HUGE RESTRUCTURING OF THE CODE.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jimmery | 0:13d8a77fb1d7 | 1 | #include "mbed.h" |
jimmery | 0:13d8a77fb1d7 | 2 | |
jimmery | 13:5f08195456a4 | 3 | #include "pid.h" |
jimmery | 13:5f08195456a4 | 4 | #include "sensors.h" |
jimmery | 13:5f08195456a4 | 5 | #include "mouse.h" |
jimmery | 2:82a11e992619 | 6 | |
jimmery | 13:5f08195456a4 | 7 | Ticker Systicker; |
jimmery | 13:5f08195456a4 | 8 | Mouse m; |
aduriseti | 6:61b503990cd6 | 9 | |
jimmery | 0:13d8a77fb1d7 | 10 | void systick() |
jimmery | 0:13d8a77fb1d7 | 11 | { |
jimmery | 13:5f08195456a4 | 12 | m.scan(); // get the IR values. |
jimmery | 9:ad6f60953086 | 13 | // these values are useful regardless of what mouse_state we are in. |
jimmery | 13:5f08195456a4 | 14 | switch (m.mouse_state) |
jimmery | 2:82a11e992619 | 15 | { |
jimmery | 9:ad6f60953086 | 16 | case STOPPED: |
jimmery | 13:5f08195456a4 | 17 | m.offsetCalc(); |
jimmery | 13:5f08195456a4 | 18 | m.pid_reset(); |
jimmery | 13:5f08195456a4 | 19 | m.sensor_reset(); |
jimmery | 9:ad6f60953086 | 20 | break; |
jimmery | 9:ad6f60953086 | 21 | case FORWARD: |
jimmery | 13:5f08195456a4 | 22 | if ( m.forward_wall_detected() ) |
jimmery | 10:d2907773f9a3 | 23 | { |
jimmery | 13:5f08195456a4 | 24 | m.mouse_state = STOPPED; |
jimmery | 13:5f08195456a4 | 25 | m.turn_direction = LEFT; |
jimmery | 10:d2907773f9a3 | 26 | return; |
jimmery | 10:d2907773f9a3 | 27 | } |
jimmery | 13:5f08195456a4 | 28 | m.run_pid(); |
jimmery | 13:5f08195456a4 | 29 | // TODO we need to start saving walls and stuff. |
jimmery | 9:ad6f60953086 | 30 | break; |
jimmery | 9:ad6f60953086 | 31 | default: |
jimmery | 9:ad6f60953086 | 32 | // don't do anything. |
jimmery | 9:ad6f60953086 | 33 | break; |
jimmery | 2:82a11e992619 | 34 | } |
jimmery | 0:13d8a77fb1d7 | 35 | } |
jimmery | 13:5f08195456a4 | 36 | |
jimmery | 13:5f08195456a4 | 37 | void setup() |
jimmery | 13:5f08195456a4 | 38 | { |
jimmery | 13:5f08195456a4 | 39 | Mouse m; |
aduriseti | 6:61b503990cd6 | 40 | |
jimmery | 13:5f08195456a4 | 41 | Systicker.attach_us(&systick, 1000); |
jimmery | 0:13d8a77fb1d7 | 42 | wait(2); |
jimmery | 0:13d8a77fb1d7 | 43 | } |
jimmery | 9:ad6f60953086 | 44 | |
jimmery | 10:d2907773f9a3 | 45 | int main() { |
jimmery | 10:d2907773f9a3 | 46 | setup(); |
jimmery | 10:d2907773f9a3 | 47 | while(1) { |
jimmery | 13:5f08195456a4 | 48 | switch (m.mouse_state) |
jimmery | 10:d2907773f9a3 | 49 | { |
jimmery | 10:d2907773f9a3 | 50 | case STOPPED: |
jimmery | 13:5f08195456a4 | 51 | m.stop(); |
jimmery | 10:d2907773f9a3 | 52 | wait(1); |
jimmery | 13:5f08195456a4 | 53 | if ( m.turn_direction == INVALID ) |
jimmery | 10:d2907773f9a3 | 54 | { |
jimmery | 13:5f08195456a4 | 55 | m.mouse_state = FORWARD; |
jimmery | 10:d2907773f9a3 | 56 | } |
jimmery | 10:d2907773f9a3 | 57 | else |
jimmery | 10:d2907773f9a3 | 58 | { |
jimmery | 13:5f08195456a4 | 59 | m.mouse_state = TURNING; |
jimmery | 10:d2907773f9a3 | 60 | } |
jimmery | 10:d2907773f9a3 | 61 | break; |
jimmery | 10:d2907773f9a3 | 62 | case FORWARD: |
jimmery | 13:5f08195456a4 | 63 | // left_forward = left_speed / left_max_speed; |
jimmery | 13:5f08195456a4 | 64 | // left_reverse = 0; |
jimmery | 13:5f08195456a4 | 65 | // right_forward = right_speed / right_max_speed; |
jimmery | 13:5f08195456a4 | 66 | // right_reverse = 0; |
jimmery | 10:d2907773f9a3 | 67 | break; |
jimmery | 10:d2907773f9a3 | 68 | case TURNING: |
jimmery | 13:5f08195456a4 | 69 | m.turn(); |
jimmery | 13:5f08195456a4 | 70 | m.mouse_state = STOPPED; |
jimmery | 13:5f08195456a4 | 71 | m.turn_direction = INVALID; |
jimmery | 10:d2907773f9a3 | 72 | break; |
jimmery | 10:d2907773f9a3 | 73 | case MOVECELL: |
jimmery | 13:5f08195456a4 | 74 | m.move_cell(); |
jimmery | 13:5f08195456a4 | 75 | m.mouse_state = STOPPED; |
jimmery | 10:d2907773f9a3 | 76 | break; |
jimmery | 10:d2907773f9a3 | 77 | default: |
jimmery | 10:d2907773f9a3 | 78 | // idk lmao. show some error message? |
jimmery | 10:d2907773f9a3 | 79 | break; |
jimmery | 10:d2907773f9a3 | 80 | } |
jimmery | 10:d2907773f9a3 | 81 | } |
jimmery | 10:d2907773f9a3 | 82 | } |