control for robotic arm that can play chess using a granular gripper
Dependencies: Encoder mbed HIDScope Servo MODSERIAL
Fork of chessRobot by
serialcom.cpp@128:c583aff5a7bf, 2015-10-29 (annotated)
- Committer:
- annesteenbeek
- Date:
- Thu Oct 29 23:43:54 2015 +0100
- Revision:
- 128:c583aff5a7bf
- Parent:
- 127:831f03471efb
- Child:
- 129:53d23eae7a6a
added writers
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
annesteenbeek | 124:f67ce69557db | 1 | #include "mbed.h" |
annesteenbeek | 125:749b8ce2e040 | 2 | #include "serialcom.h" |
annesteenbeek | 126:56866cefaa08 | 3 | //#include "MODSERIAL.h" |
annesteenbeek | 124:f67ce69557db | 4 | #include "config.h" |
annesteenbeek | 124:f67ce69557db | 5 | #include "PID.h" |
annesteenbeek | 125:749b8ce2e040 | 6 | #include "buttons.h" |
annesteenbeek | 124:f67ce69557db | 7 | #include <string> |
annesteenbeek | 124:f67ce69557db | 8 | |
annesteenbeek | 126:56866cefaa08 | 9 | Serial pc(USBTX, USBRX); |
annesteenbeek | 124:f67ce69557db | 10 | char buf[128]; |
annesteenbeek | 124:f67ce69557db | 11 | |
annesteenbeek | 126:56866cefaa08 | 12 | void serialInit(){ |
annesteenbeek | 126:56866cefaa08 | 13 | const int baudrate = 9600; |
annesteenbeek | 126:56866cefaa08 | 14 | redLed.write(1); // dim the leds |
annesteenbeek | 126:56866cefaa08 | 15 | blueLed.write(1); |
annesteenbeek | 126:56866cefaa08 | 16 | greenLed.write(1); |
annesteenbeek | 126:56866cefaa08 | 17 | |
annesteenbeek | 126:56866cefaa08 | 18 | pc.baud(baudrate); |
annesteenbeek | 126:56866cefaa08 | 19 | } |
annesteenbeek | 126:56866cefaa08 | 20 | |
annesteenbeek | 124:f67ce69557db | 21 | void serialCom(){ |
annesteenbeek | 127:831f03471efb | 22 | // Receiving |
annesteenbeek | 124:f67ce69557db | 23 | pc.scanf("%s", buf); |
annesteenbeek | 124:f67ce69557db | 24 | if(strcmp(buf,"ledRed")==0){ |
annesteenbeek | 125:749b8ce2e040 | 25 | redLed.write(!redLed.read()); |
annesteenbeek | 124:f67ce69557db | 26 | } |
annesteenbeek | 124:f67ce69557db | 27 | if(strcmp(buf,"ledBlue")==0){ |
annesteenbeek | 125:749b8ce2e040 | 28 | blueLed.write(!blueLed.read()); |
annesteenbeek | 124:f67ce69557db | 29 | } |
annesteenbeek | 124:f67ce69557db | 30 | if(strcmp(buf,"ledGreen")==0){ |
annesteenbeek | 125:749b8ce2e040 | 31 | greenLed.write(!greenLed.read()); |
annesteenbeek | 124:f67ce69557db | 32 | } |
annesteenbeek | 127:831f03471efb | 33 | if(strcmp(buf, "switchPump")==0){ |
annesteenbeek | 127:831f03471efb | 34 | enablePump = !enablePump; |
annesteenbeek | 127:831f03471efb | 35 | } |
annesteenbeek | 127:831f03471efb | 36 | if(strcmp(buf, "startCalibration")==0){ |
annesteenbeek | 127:831f03471efb | 37 | startCalibration = true; |
annesteenbeek | 127:831f03471efb | 38 | } |
annesteenbeek | 127:831f03471efb | 39 | if(strcmp(buf, "enableEMG")==0){ |
annesteenbeek | 127:831f03471efb | 40 | enableEMG = true; |
annesteenbeek | 127:831f03471efb | 41 | } |
annesteenbeek | 127:831f03471efb | 42 | if(strcmp(buf, "usePotmeters")==0){ |
annesteenbeek | 127:831f03471efb | 43 | usePotmeters = true; |
annesteenbeek | 127:831f03471efb | 44 | } |
annesteenbeek | 127:831f03471efb | 45 | if(strcmp(buf, "controlAngle")==0){ |
annesteenbeek | 127:831f03471efb | 46 | controlAngle = true; |
annesteenbeek | 127:831f03471efb | 47 | } |
annesteenbeek | 127:831f03471efb | 48 | if(strcmp(buf, "controlDirection")==0){ |
annesteenbeek | 127:831f03471efb | 49 | controlDirection = true; |
annesteenbeek | 127:831f03471efb | 50 | } |
annesteenbeek | 128:c583aff5a7bf | 51 | |
annesteenbeek | 128:c583aff5a7bf | 52 | // Writers |
annesteenbeek | 128:c583aff5a7bf | 53 | pc.printf("enablePump %d\n", enablePump); |
annesteenbeek | 128:c583aff5a7bf | 54 | pc.printf("startCalibration %d\n", startCalibration); |
annesteenbeek | 128:c583aff5a7bf | 55 | pc.printf("enableEMG %d\n", enableEMG); |
annesteenbeek | 128:c583aff5a7bf | 56 | pc.printf("usePotmeters %d\n", usePotmeters); |
annesteenbeek | 128:c583aff5a7bf | 57 | pc.printf("controlAngle %d\n", controlAngle); |
annesteenbeek | 128:c583aff5a7bf | 58 | pc.printf("controlDirection %d\n", controlDirection); |
annesteenbeek | 128:c583aff5a7bf | 59 | pc.printf("calReady %d\n", calReady); |
annesteenbeek | 128:c583aff5a7bf | 60 | pc.printf("motorsEnable %d\n", motorsEnable); |
annesteenbeek | 128:c583aff5a7bf | 61 | pc.printf("EMGCalReady %d\n", EMGCalReady); |
annesteenbeek | 128:c583aff5a7bf | 62 | pc.printf("Xpos %.3ld\n", Xpos); |
annesteenbeek | 128:c583aff5a7bf | 63 | pc.printf("Ypos %.3ld\n", Ypos); |
annesteenbeek | 128:c583aff5a7bf | 64 | pc.printf("motor1Pos %.3ld\n", motor1Pos); |
annesteenbeek | 128:c583aff5a7bf | 65 | pc.printf("motor2Pos %.3ld\n", motor2Pos); |
annesteenbeek | 128:c583aff5a7bf | 66 | |
annesteenbeek | 128:c583aff5a7bf | 67 | // transmit correct DOF controller |
annesteenbeek | 128:c583aff5a7bf | 68 | if(usePotermers){ |
annesteenbeek | 128:c583aff5a7bf | 69 | transmitDOF = actuatorState; // DOF controlled by buttons |
annesteenbeek | 128:c583aff5a7bf | 70 | }if(enableEMG){ |
annesteenbeek | 128:c583aff5a7bf | 71 | transmitDOF = DOF; // DOF controlled by EMG |
annesteenbeek | 128:c583aff5a7bf | 72 | } |
annesteenbeek | 128:c583aff5a7bf | 73 | pc.printf("DOF %i\n", transmitDOF); // DOF: 1=x 2=y 3=z |
annesteenbeek | 128:c583aff5a7bf | 74 | |
annesteenbeek | 128:c583aff5a7bf | 75 | |
annesteenbeek | 128:c583aff5a7bf | 76 | |
annesteenbeek | 124:f67ce69557db | 77 | } |
annesteenbeek | 124:f67ce69557db | 78 |