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 12:14:18 2015 +0200
Revision:
74:75be98779124
Parent:
62:6c566e6f9664
Child:
76:0aa90e728e4a
connected safety to interrupt pin

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 59:fe00be2cf8fd 15 #include "EMG.h"
annesteenbeek 6:b957d8809e7c 16
annesteenbeek 59:fe00be2cf8fd 17 Ticker switches, debug, motor, EMG;
annesteenbeek 60:20945383ad1b 18 volatile bool switches_go=false, debug_go=false, motor_go=false, emg_go= false;
annesteenbeek 0:525558a26464 19
annesteenbeek 30:a20f16bf8dda 20 void switches_activate(){switches_go=true;};
annesteenbeek 30:a20f16bf8dda 21 void debug_activate(){debug_go=true;};
annesteenbeek 30:a20f16bf8dda 22 void motor_activate(){motor_go=true;};
annesteenbeek 60:20945383ad1b 23 void emg_activate(){emg_go=true;};
annesteenbeek 59:fe00be2cf8fd 24
annesteenbeek 74:75be98779124 25 bool safetyOn = false; // start with safety off for calibration
annesteenbeek 62:6c566e6f9664 26 double motorCall = 0.01; // set motor frequency global so it can be used for speed.
annesteenbeek 5:73bfad06b775 27 int main(){
annesteenbeek 61:157df6f8ceec 28 motorInit();
annesteenbeek 74:75be98779124 29 // calibrateMotors(); // start calibration procedure
annesteenbeek 74:75be98779124 30 safetyOn = true; // turn safety on after calibration
annesteenbeek 29:e4f3455aaa0b 31
annesteenbeek 47:e493567999d7 32 switches.attach(&switches_activate, 0.02f);
annesteenbeek 47:e493567999d7 33 debug.attach(&debug_activate, 0.03f);
annesteenbeek 50:b0cf07ca53cf 34 motor.attach(&motor_activate, motorCall);
annesteenbeek 60:20945383ad1b 35 //EMG.attach(&emg_activate, 0.01f);
annesteenbeek 59:fe00be2cf8fd 36
annesteenbeek 32:2006977785f5 37
annesteenbeek 0:525558a26464 38 while (true) {
annesteenbeek 59:fe00be2cf8fd 39 // if(emg_go){
annesteenbeek 59:fe00be2cf8fd 40 // emg_go=false;
annesteenbeek 59:fe00be2cf8fd 41 // readEMG();
annesteenbeek 59:fe00be2cf8fd 42 // }
annesteenbeek 3:47c76be6d402 43 // servoControl();
annesteenbeek 30:a20f16bf8dda 44 if(switches_go){
annesteenbeek 30:a20f16bf8dda 45 switches_go=false;
annesteenbeek 30:a20f16bf8dda 46 checkSwitches();
annesteenbeek 30:a20f16bf8dda 47 }
annesteenbeek 30:a20f16bf8dda 48 if(debug_go){
annesteenbeek 30:a20f16bf8dda 49 debug_go=false;
annesteenbeek 30:a20f16bf8dda 50 debugProcess();
annesteenbeek 30:a20f16bf8dda 51 }
annesteenbeek 30:a20f16bf8dda 52 if(motor_go){
annesteenbeek 30:a20f16bf8dda 53 motor_go=false;
annesteenbeek 30:a20f16bf8dda 54 motorControl();
annesteenbeek 30:a20f16bf8dda 55 }
annesteenbeek 0:525558a26464 56 }
annesteenbeek 0:525558a26464 57 }