![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
control for robotic arm that can play chess using a granular gripper
Dependencies: Encoder mbed HIDScope Servo MODSERIAL
Fork of chessRobot by
main.cpp@74:75be98779124, 2015-10-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |