Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Encoder mbed HIDScope Servo MODSERIAL
Fork of chessRobot by
main.cpp@97:0f67952051e5, 2015-10-21 (annotated)
- Committer:
 - annesteenbeek
 - Date:
 - Wed Oct 21 13:50:38 2015 +0200
 - Revision:
 - 97:0f67952051e5
 - Parent:
 - 81:71e7e98deb2c
 
working calibration
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 | 78:0cc7c64ba94c | 15 | #include "emg.h" | 
| annesteenbeek | 6:b957d8809e7c | 16 | |
| annesteenbeek | 79:cf500b63f349 | 17 | Ticker switchesTick, debugTick, motorTick, EMGTick, safetyTick; | 
| annesteenbeek | 79:cf500b63f349 | 18 | volatile bool switches_go=false, debug_go=false, motor_go=false, emg_go=false, safety_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 | 79:cf500b63f349 | 24 | void safety_activate(){safety_go=true;}; | 
| annesteenbeek | 59:fe00be2cf8fd | 25 | |
| 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 | 76:0aa90e728e4a | 29 | calibrateMotors(); // start calibration procedure | 
| annesteenbeek | 97:0f67952051e5 | 30 | calibrateEMG(); | 
| annesteenbeek | 29:e4f3455aaa0b | 31 | |
| annesteenbeek | 79:cf500b63f349 | 32 | switchesTick.attach(&switches_activate, 0.02f); | 
| annesteenbeek | 79:cf500b63f349 | 33 | debugTick.attach(&debug_activate, 0.03f); | 
| annesteenbeek | 79:cf500b63f349 | 34 | motorTick.attach(&motor_activate, motorCall); | 
| annesteenbeek | 79:cf500b63f349 | 35 | EMGTick.attach(&emg_activate, 0.005f); | 
| annesteenbeek | 79:cf500b63f349 | 36 | safetyTick.attach(&safety_activate, 0.001f); | 
| annesteenbeek | 59:fe00be2cf8fd | 37 | |
| annesteenbeek  | 
32:2006977785f5 | 38 | |
| annesteenbeek | 0:525558a26464 | 39 | while (true) { | 
| annesteenbeek | 79:cf500b63f349 | 40 | if(safety_go){ | 
| annesteenbeek | 79:cf500b63f349 | 41 | safety_go=false; | 
| annesteenbeek | 81:71e7e98deb2c | 42 | safety(); | 
| annesteenbeek | 79:cf500b63f349 | 43 | } | 
| annesteenbeek | 78:0cc7c64ba94c | 44 | if(emg_go){ | 
| annesteenbeek | 78:0cc7c64ba94c | 45 | emg_go=false; | 
| annesteenbeek | 78:0cc7c64ba94c | 46 | readEMG(); | 
| annesteenbeek | 78:0cc7c64ba94c | 47 | } | 
| annesteenbeek | 30:a20f16bf8dda | 48 | if(switches_go){ | 
| annesteenbeek | 30:a20f16bf8dda | 49 | switches_go=false; | 
| annesteenbeek | 30:a20f16bf8dda | 50 | checkSwitches(); | 
| annesteenbeek | 30:a20f16bf8dda | 51 | } | 
| annesteenbeek | 30:a20f16bf8dda | 52 | if(debug_go){ | 
| annesteenbeek | 30:a20f16bf8dda | 53 | debug_go=false; | 
| annesteenbeek | 30:a20f16bf8dda | 54 | debugProcess(); | 
| annesteenbeek | 30:a20f16bf8dda | 55 | } | 
| annesteenbeek | 30:a20f16bf8dda | 56 | if(motor_go){ | 
| annesteenbeek | 30:a20f16bf8dda | 57 | motor_go=false; | 
| annesteenbeek | 30:a20f16bf8dda | 58 | motorControl(); | 
| annesteenbeek | 79:cf500b63f349 | 59 | // servoControl(); | 
| annesteenbeek | 30:a20f16bf8dda | 60 | } | 
| annesteenbeek | 0:525558a26464 | 61 | } | 
| annesteenbeek | 0:525558a26464 | 62 | } | 
