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:
Tue Oct 20 16:47:11 2015 +0200
Revision:
89:9063484e8a1b
Parent:
88:dd198c58f053
Child:
90:1d0c96a5bc5f
commented calibration

Who changed what in which revision?

UserRevisionLine numberNew contents of line
annesteenbeek 59:fe00be2cf8fd 1 /*
annesteenbeek 59:fe00be2cf8fd 2 ________ ____ __ __
annesteenbeek 59:fe00be2cf8fd 3 / ____/ /_ ___ __________ / __ \____ / /_ ____ / /_
annesteenbeek 59:fe00be2cf8fd 4 / / / __ \/ _ \/ ___/ ___/ / /_/ / __ \/ __ \/ __ \/ __/
annesteenbeek 59:fe00be2cf8fd 5 / /___/ / / / __(__ |__ ) / _, _/ /_/ / /_/ / /_/ / /_
annesteenbeek 59:fe00be2cf8fd 6 \____/_/ /_/\___/____/____/ /_/ |_|\____/_.___/\____/\__/
annesteenbeek 59:fe00be2cf8fd 7
annesteenbeek 59:fe00be2cf8fd 8 */
annesteenbeek 59:fe00be2cf8fd 9
annesteenbeek 12:61759f94c07a 10 #include "mbed.h"
annesteenbeek 13:4837b36b9a68 11 #include "config.h" // settings and pin configurations
annesteenbeek 13:4837b36b9a68 12 #include "actuators.h"
annesteenbeek 15:5fa388ba22cb 13 #include "buttons.h"
annesteenbeek 25:874675516927 14 #include "debug.h"
annesteenbeek 78:0cc7c64ba94c 15 #include "emg.h"
annesteenbeek 6:b957d8809e7c 16
annesteenbeek 86:a5f48ae7096e 17 bool start=false;
annesteenbeek 79:cf500b63f349 18 Ticker switchesTick, debugTick, motorTick, EMGTick, safetyTick;
annesteenbeek 79:cf500b63f349 19 volatile bool switches_go=false, debug_go=false, motor_go=false, emg_go=false, safety_go=false;
annesteenbeek 0:525558a26464 20
annesteenbeek 30:a20f16bf8dda 21 void switches_activate(){switches_go=true;};
annesteenbeek 30:a20f16bf8dda 22 void debug_activate(){debug_go=true;};
annesteenbeek 30:a20f16bf8dda 23 void motor_activate(){motor_go=true;};
annesteenbeek 60:20945383ad1b 24 void emg_activate(){emg_go=true;};
annesteenbeek 79:cf500b63f349 25 void safety_activate(){safety_go=true;};
annesteenbeek 59:fe00be2cf8fd 26
annesteenbeek 62:6c566e6f9664 27 double motorCall = 0.01; // set motor frequency global so it can be used for speed.
annesteenbeek 5:73bfad06b775 28 int main(){
annesteenbeek 86:a5f48ae7096e 29 DigitalIn startButton(startPin);
annesteenbeek 86:a5f48ae7096e 30 if(startButton.read()==0){
annesteenbeek 86:a5f48ae7096e 31 start=true;
annesteenbeek 86:a5f48ae7096e 32 }
annesteenbeek 86:a5f48ae7096e 33
annesteenbeek 86:a5f48ae7096e 34 if(start){
annesteenbeek 61:157df6f8ceec 35 motorInit();
annesteenbeek 89:9063484e8a1b 36 // calibrateMotors(); // start calibration procedure
annesteenbeek 29:e4f3455aaa0b 37
annesteenbeek 79:cf500b63f349 38 switchesTick.attach(&switches_activate, 0.02f);
annesteenbeek 79:cf500b63f349 39 debugTick.attach(&debug_activate, 0.03f);
annesteenbeek 79:cf500b63f349 40 motorTick.attach(&motor_activate, motorCall);
annesteenbeek 79:cf500b63f349 41 EMGTick.attach(&emg_activate, 0.005f);
annesteenbeek 79:cf500b63f349 42 safetyTick.attach(&safety_activate, 0.001f);
annesteenbeek 59:fe00be2cf8fd 43
annesteenbeek 32:2006977785f5 44
annesteenbeek 0:525558a26464 45 while (true) {
annesteenbeek 79:cf500b63f349 46 if(safety_go){
annesteenbeek 79:cf500b63f349 47 safety_go=false;
annesteenbeek 81:71e7e98deb2c 48 safety();
annesteenbeek 79:cf500b63f349 49 }
annesteenbeek 78:0cc7c64ba94c 50 if(emg_go){
annesteenbeek 78:0cc7c64ba94c 51 emg_go=false;
annesteenbeek 78:0cc7c64ba94c 52 readEMG();
annesteenbeek 78:0cc7c64ba94c 53 }
annesteenbeek 30:a20f16bf8dda 54 if(switches_go){
annesteenbeek 30:a20f16bf8dda 55 switches_go=false;
annesteenbeek 30:a20f16bf8dda 56 checkSwitches();
annesteenbeek 30:a20f16bf8dda 57 }
annesteenbeek 30:a20f16bf8dda 58 if(debug_go){
annesteenbeek 30:a20f16bf8dda 59 debug_go=false;
annesteenbeek 30:a20f16bf8dda 60 debugProcess();
annesteenbeek 30:a20f16bf8dda 61 }
annesteenbeek 30:a20f16bf8dda 62 if(motor_go){
annesteenbeek 30:a20f16bf8dda 63 motor_go=false;
annesteenbeek 30:a20f16bf8dda 64 motorControl();
annesteenbeek 79:cf500b63f349 65 // servoControl();
annesteenbeek 30:a20f16bf8dda 66 }
annesteenbeek 0:525558a26464 67 }
annesteenbeek 86:a5f48ae7096e 68 }
annesteenbeek 0:525558a26464 69 }