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

Dependencies:   Encoder mbed HIDScope Servo MODSERIAL

Fork of chessRobot by a steenbeek

main.cpp

Committer:
annesteenbeek
Date:
2015-10-12
Revision:
59:fe00be2cf8fd
Parent:
57:43f707648f2b
Child:
60:20945383ad1b

File content as of revision 59:fe00be2cf8fd:

/*
   ________                      ____        __          __ 
  / ____/ /_  ___  __________   / __ \____  / /_  ____  / /_
 / /   / __ \/ _ \/ ___/ ___/  / /_/ / __ \/ __ \/ __ \/ __/
/ /___/ / / /  __(__  |__  )  / _, _/ /_/ / /_/ / /_/ / /_  
\____/_/ /_/\___/____/____/  /_/ |_|\____/_.___/\____/\__/  
                                                            
*/

#include "mbed.h"
#include "config.h"  // settings and pin configurations
#include "actuators.h"
#include "buttons.h"
#include "debug.h"
#include "EMG.h"

Ticker switches, debug, motor, EMG;
volatile bool switches_go=false, debug_go=false, motor_go=false, EMG_activate= false;

void switches_activate(){switches_go=true;};
void debug_activate(){debug_go=true;};
void motor_activate(){motor_go=true;};
void motor_activate(){emg_go=true;};


float motorCall = 0.001; // set motor frequency global so it can be used for speed.

int main(){
motorInit(); 
// calibrateMotors();

switches.attach(&switches_activate, 0.02f);
debug.attach(&debug_activate, 0.03f);
motor.attach(&motor_activate, motorCall);
EMG.attach(&EMG_activate, motorCall);


    while (true) {
        // if(emg_go){
        //     emg_go=false;
        //     readEMG();
        // }
        // servoControl();
        if(switches_go){
            switches_go=false;
            checkSwitches();
        }
        if(debug_go){
            debug_go=false;
            debugProcess();
        }
        if(motor_go){
            motor_go=false;
            motorControl();
        }
    }
}