Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: HIDScope MODSERIAL QEI biquadFilter mbed
main.cpp@0:1b8a08e9a66c, 2017-10-07 (annotated)
- Committer:
- Luuk
- Date:
- Sat Oct 07 20:46:58 2017 +0000
- Revision:
- 0:1b8a08e9a66c
- Child:
- 1:14b685c3abbd
First version, call functions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Luuk | 0:1b8a08e9a66c | 1 | #include "mbed.h" |
Luuk | 0:1b8a08e9a66c | 2 | //#include "QEI.h" |
Luuk | 0:1b8a08e9a66c | 3 | #include "MODSERIAL.h" |
Luuk | 0:1b8a08e9a66c | 4 | //#include "HIDScope.h" |
Luuk | 0:1b8a08e9a66c | 5 | |
Luuk | 0:1b8a08e9a66c | 6 | |
Luuk | 0:1b8a08e9a66c | 7 | Serial pc (USBTX,USBRX); |
Luuk | 0:1b8a08e9a66c | 8 | //PwmOut Motor1Vel(D6); //motor 1 velocity control |
Luuk | 0:1b8a08e9a66c | 9 | //DigitalOut Motor1Dir(D7); //motor 1 direction |
Luuk | 0:1b8a08e9a66c | 10 | //PwmOut Motor2Vel(D5); //motor 2 velocity control |
Luuk | 0:1b8a08e9a66c | 11 | //DigitalOut Motor2Dir(D4); //motor 2 direction |
Luuk | 0:1b8a08e9a66c | 12 | DigitalOut led1(D8); |
Luuk | 0:1b8a08e9a66c | 13 | DigitalOut led2(D9); |
Luuk | 0:1b8a08e9a66c | 14 | AnalogIn emgx(A0); |
Luuk | 0:1b8a08e9a66c | 15 | AnalogIn emgy(A1); |
Luuk | 0:1b8a08e9a66c | 16 | //DigitalOut ledb(LED1); |
Luuk | 0:1b8a08e9a66c | 17 | |
Luuk | 0:1b8a08e9a66c | 18 | Ticker switch_tick; |
Luuk | 0:1b8a08e9a66c | 19 | |
Luuk | 0:1b8a08e9a66c | 20 | float limitx =3, limity = 3, positionx = 1, positiony = 1; |
Luuk | 0:1b8a08e9a66c | 21 | |
Luuk | 0:1b8a08e9a66c | 22 | int i = 0; //counter to go back to initial position if there is no activity |
Luuk | 0:1b8a08e9a66c | 23 | |
Luuk | 0:1b8a08e9a66c | 24 | void movex() |
Luuk | 0:1b8a08e9a66c | 25 | { |
Luuk | 0:1b8a08e9a66c | 26 | led1 = 1; |
Luuk | 0:1b8a08e9a66c | 27 | } |
Luuk | 0:1b8a08e9a66c | 28 | void movey() |
Luuk | 0:1b8a08e9a66c | 29 | { |
Luuk | 0:1b8a08e9a66c | 30 | led2 = 1; |
Luuk | 0:1b8a08e9a66c | 31 | } |
Luuk | 0:1b8a08e9a66c | 32 | void movexy() |
Luuk | 0:1b8a08e9a66c | 33 | { |
Luuk | 0:1b8a08e9a66c | 34 | led2 = 1; |
Luuk | 0:1b8a08e9a66c | 35 | led1 = 1; |
Luuk | 0:1b8a08e9a66c | 36 | } |
Luuk | 0:1b8a08e9a66c | 37 | void initialPosition() |
Luuk | 0:1b8a08e9a66c | 38 | { |
Luuk | 0:1b8a08e9a66c | 39 | led2 = 0; |
Luuk | 0:1b8a08e9a66c | 40 | led1 = 0; |
Luuk | 0:1b8a08e9a66c | 41 | } |
Luuk | 0:1b8a08e9a66c | 42 | int choosecase(float emgx, float emgy) |
Luuk | 0:1b8a08e9a66c | 43 | { |
Luuk | 0:1b8a08e9a66c | 44 | int a = 0; |
Luuk | 0:1b8a08e9a66c | 45 | if (emgx > 0 && emgy == 0) |
Luuk | 0:1b8a08e9a66c | 46 | { |
Luuk | 0:1b8a08e9a66c | 47 | a = 1; |
Luuk | 0:1b8a08e9a66c | 48 | i = 0; |
Luuk | 0:1b8a08e9a66c | 49 | } |
Luuk | 0:1b8a08e9a66c | 50 | else if (emgx == 0 && emgy > 0) |
Luuk | 0:1b8a08e9a66c | 51 | { |
Luuk | 0:1b8a08e9a66c | 52 | a = 2; |
Luuk | 0:1b8a08e9a66c | 53 | i = 0; |
Luuk | 0:1b8a08e9a66c | 54 | } |
Luuk | 0:1b8a08e9a66c | 55 | else if (emgx > 0 && emgy > 0) |
Luuk | 0:1b8a08e9a66c | 56 | { |
Luuk | 0:1b8a08e9a66c | 57 | a = 3; |
Luuk | 0:1b8a08e9a66c | 58 | i = 0; |
Luuk | 0:1b8a08e9a66c | 59 | } |
Luuk | 0:1b8a08e9a66c | 60 | else if (positionx >= limitx || positiony >= limity) |
Luuk | 0:1b8a08e9a66c | 61 | { |
Luuk | 0:1b8a08e9a66c | 62 | a = 4; |
Luuk | 0:1b8a08e9a66c | 63 | i = 0; |
Luuk | 0:1b8a08e9a66c | 64 | } |
Luuk | 0:1b8a08e9a66c | 65 | else if (i > 199) |
Luuk | 0:1b8a08e9a66c | 66 | { |
Luuk | 0:1b8a08e9a66c | 67 | a = 4; |
Luuk | 0:1b8a08e9a66c | 68 | i = 0; |
Luuk | 0:1b8a08e9a66c | 69 | } |
Luuk | 0:1b8a08e9a66c | 70 | else |
Luuk | 0:1b8a08e9a66c | 71 | { |
Luuk | 0:1b8a08e9a66c | 72 | i++; |
Luuk | 0:1b8a08e9a66c | 73 | } |
Luuk | 0:1b8a08e9a66c | 74 | pc.printf("emgx: %f emgy: %f \r\n",emgx,emgy); |
Luuk | 0:1b8a08e9a66c | 75 | return a; |
Luuk | 0:1b8a08e9a66c | 76 | |
Luuk | 0:1b8a08e9a66c | 77 | } |
Luuk | 0:1b8a08e9a66c | 78 | void selectcase() |
Luuk | 0:1b8a08e9a66c | 79 | { |
Luuk | 0:1b8a08e9a66c | 80 | int switchcons = choosecase(emgx,emgy); |
Luuk | 0:1b8a08e9a66c | 81 | switch(switchcons) |
Luuk | 0:1b8a08e9a66c | 82 | { |
Luuk | 0:1b8a08e9a66c | 83 | case 1: |
Luuk | 0:1b8a08e9a66c | 84 | movex(); |
Luuk | 0:1b8a08e9a66c | 85 | break; |
Luuk | 0:1b8a08e9a66c | 86 | case 2: |
Luuk | 0:1b8a08e9a66c | 87 | movey(); |
Luuk | 0:1b8a08e9a66c | 88 | break; |
Luuk | 0:1b8a08e9a66c | 89 | case 3: |
Luuk | 0:1b8a08e9a66c | 90 | movexy(); |
Luuk | 0:1b8a08e9a66c | 91 | break; |
Luuk | 0:1b8a08e9a66c | 92 | case 4: |
Luuk | 0:1b8a08e9a66c | 93 | initialPosition(); |
Luuk | 0:1b8a08e9a66c | 94 | break; |
Luuk | 0:1b8a08e9a66c | 95 | default: |
Luuk | 0:1b8a08e9a66c | 96 | break; |
Luuk | 0:1b8a08e9a66c | 97 | } |
Luuk | 0:1b8a08e9a66c | 98 | pc.printf("Chosen case: %d \r\n",switchcons); |
Luuk | 0:1b8a08e9a66c | 99 | } |
Luuk | 0:1b8a08e9a66c | 100 | main() |
Luuk | 0:1b8a08e9a66c | 101 | { |
Luuk | 0:1b8a08e9a66c | 102 | pc.baud(115200); |
Luuk | 0:1b8a08e9a66c | 103 | switch_tick.attach(&selectcase,0.01); |
Luuk | 0:1b8a08e9a66c | 104 | while (true) { |
Luuk | 0:1b8a08e9a66c | 105 | |
Luuk | 0:1b8a08e9a66c | 106 | } |
Luuk | 0:1b8a08e9a66c | 107 | } |