control for robotic arm that can play chess using a granular gripper

Dependencies:   Encoder mbed HIDScope Servo MODSERIAL

Fork of chessRobot by a steenbeek

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?

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