Luuk Lomillos Rozeboom / Mbed 2 deprecated RobotControlFinal

Dependencies:   HIDScope MODSERIAL QEI biquadFilter mbed

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?

UserRevisionLine numberNew 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 }