Translates the true/false of the muscles to the movement that should take place
Dependencies: mbed
main.cpp@0:791d8001d643, 2015-10-27 (annotated)
- Committer:
- woutende
- Date:
- Tue Oct 27 13:21:10 2015 +0000
- Revision:
- 0:791d8001d643
Translate the active muscle signals to the kind of movement that has to take place
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
woutende | 0:791d8001d643 | 1 | #include "mbed.h" |
woutende | 0:791d8001d643 | 2 | |
woutende | 0:791d8001d643 | 3 | DigitalOut gpo(D0); |
woutende | 0:791d8001d643 | 4 | DigitalOut led(LED_RED); |
woutende | 0:791d8001d643 | 5 | |
woutende | 0:791d8001d643 | 6 | //Constants |
woutende | 0:791d8001d643 | 7 | int m = 100; |
woutende | 0:791d8001d643 | 8 | |
woutende | 0:791d8001d643 | 9 | // For making the system work in the end: |
woutende | 0:791d8001d643 | 10 | // - Replace the input stated directly below |
woutende | 0:791d8001d643 | 11 | // - Replace the output given with the output needed |
woutende | 0:791d8001d643 | 12 | |
woutende | 0:791d8001d643 | 13 | // function determines which movement the system will make |
woutende | 0:791d8001d643 | 14 | // It will check if the right and/or left muscle is contracted and then mention in which state the system is in |
woutende | 0:791d8001d643 | 15 | |
woutende | 0:791d8001d643 | 16 | void check_state(&state_left, &state_right) |
woutende | 0:791d8001d643 | 17 | //If the left mucle is contracted: |
woutende | 0:791d8001d643 | 18 | if (state_left == true) |
woutende | 0:791d8001d643 | 19 | { |
woutende | 0:791d8001d643 | 20 | //The right muscle is contracted as is the left muscle |
woutende | 0:791d8001d643 | 21 | if (state_right == true) |
woutende | 0:791d8001d643 | 22 | { |
woutende | 0:791d8001d643 | 23 | //Set value to keypress |
woutende | 0:791d8001d643 | 24 | string state = "keypress"; |
woutende | 0:791d8001d643 | 25 | } |
woutende | 0:791d8001d643 | 26 | // The left mucle is contracted and the right is not |
woutende | 0:791d8001d643 | 27 | else |
woutende | 0:791d8001d643 | 28 | { |
woutende | 0:791d8001d643 | 29 | // Set value to left |
woutende | 0:791d8001d643 | 30 | string state = "left"; |
woutende | 0:791d8001d643 | 31 | } |
woutende | 0:791d8001d643 | 32 | } |
woutende | 0:791d8001d643 | 33 | //If the left muscle is not contracted |
woutende | 0:791d8001d643 | 34 | else |
woutende | 0:791d8001d643 | 35 | { |
woutende | 0:791d8001d643 | 36 | // Right mucle is contracted and left is not |
woutende | 0:791d8001d643 | 37 | if (state_right == true) |
woutende | 0:791d8001d643 | 38 | { |
woutende | 0:791d8001d643 | 39 | //Set value to right |
woutende | 0:791d8001d643 | 40 | string state = "right"; |
woutende | 0:791d8001d643 | 41 | } |
woutende | 0:791d8001d643 | 42 | //None of the muslces is contracted (rest) |
woutende | 0:791d8001d643 | 43 | else |
woutende | 0:791d8001d643 | 44 | { |
woutende | 0:791d8001d643 | 45 | // Set value to rest |
woutende | 0:791d8001d643 | 46 | string state = "rest"; |
woutende | 0:791d8001d643 | 47 | } |
woutende | 0:791d8001d643 | 48 | } |
woutende | 0:791d8001d643 | 49 | } |
woutende | 0:791d8001d643 | 50 | |
woutende | 0:791d8001d643 | 51 | void check_state(&state) { |
woutende | 0:791d8001d643 | 52 | if (state = state_old) { |
woutende | 0:791d8001d643 | 53 | sequential = sequential + 1; |
woutende | 0:791d8001d643 | 54 | if (sequential > m) { |
woutende | 0:791d8001d643 | 55 | //move motor |
woutende | 0:791d8001d643 | 56 | |
woutende | 0:791d8001d643 | 57 | //Don't let sequential fully reset. This way the piano can be played faster. |
woutende | 0:791d8001d643 | 58 | sequential = sequential/2; |
woutende | 0:791d8001d643 | 59 | } |
woutende | 0:791d8001d643 | 60 | } |
woutende | 0:791d8001d643 | 61 | else { |
woutende | 0:791d8001d643 | 62 | sequential = 0; |
woutende | 0:791d8001d643 | 63 | state_old = state; |
woutende | 0:791d8001d643 | 64 | } |
woutende | 0:791d8001d643 | 65 | |
woutende | 0:791d8001d643 | 66 | int main() |
woutende | 0:791d8001d643 | 67 | { |
woutende | 0:791d8001d643 | 68 | check_state() |
woutende | 0:791d8001d643 | 69 | check_change_state() |
woutende | 0:791d8001d643 | 70 | } |