State machine
Dependencies: mbed Adafruit_GFX BioroboticsMotorControl MODSERIAL BioroboticsEMGFilter
main.cpp@0:7d25c2ade6c5, 2018-10-29 (annotated)
- Committer:
- MAHCSnijders
- Date:
- Mon Oct 29 13:44:06 2018 +0000
- Revision:
- 0:7d25c2ade6c5
- Child:
- 1:cfa5abca6d43
State machine so far (met Software milestone 3 uitgebreide voorbeeld gemaakt)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MAHCSnijders | 0:7d25c2ade6c5 | 1 | #include "mbed.h" |
MAHCSnijders | 0:7d25c2ade6c5 | 2 | |
MAHCSnijders | 0:7d25c2ade6c5 | 3 | |
MAHCSnijders | 0:7d25c2ade6c5 | 4 | enum states {wait, calib_motor, calib_bicep1, calib_bicep2, homing, operation, failure}; // The possible states of the state machine |
MAHCSnijders | 0:7d25c2ade6c5 | 5 | |
MAHCSnijders | 0:7d25c2ade6c5 | 6 | // Global variables |
MAHCSnijders | 0:7d25c2ade6c5 | 7 | const double PI = 3.14159265359; |
MAHCSnijders | 0:7d25c2ade6c5 | 8 | const double PULSES_PER_ROTATION = 6533; |
MAHCSnijders | 0:7d25c2ade6c5 | 9 | states current_state; // Defining the state we are currently in |
MAHCSnijders | 0:7d25c2ade6c5 | 10 | Ticker loop_ticker; // Ticker for the loop function |
MAHCSnijders | 0:7d25c2ade6c5 | 11 | float emg1_unfiltered, emg1_filtered; // Floats for EMG bicep 1 |
MAHCSnijders | 0:7d25c2ade6c5 | 12 | float emg2_unfiltered, emg2_filtered; // Floats for EMG bicep 2 |
MAHCSnijders | 0:7d25c2ade6c5 | 13 | float u1, u2; // Floats for motor duty cycle |
MAHCSnijders | 0:7d25c2ade6c5 | 14 | float des_motor1_angle, des_motor2_angle; // Floats for position end-effector |
MAHCSnijders | 0:7d25c2ade6c5 | 15 | |
MAHCSnijders | 0:7d25c2ade6c5 | 16 | void measure_everything() { |
MAHCSnijders | 0:7d25c2ade6c5 | 17 | motor1_angle = motor1_counts * 2.0f * PI/PULSES_PER_ROTATION; // Gives angle of motor1 |
MAHCSnijders | 0:7d25c2ade6c5 | 18 | motor2_angle = motor2_counts * 2.0f * PI/PULSES_PER_ROTATION; // Gives angle of motor2 |
MAHCSnijders | 0:7d25c2ade6c5 | 19 | |
MAHCSnijders | 0:7d25c2ade6c5 | 20 | |
MAHCSnijders | 0:7d25c2ade6c5 | 21 | |
MAHCSnijders | 0:7d25c2ade6c5 | 22 | |
MAHCSnijders | 0:7d25c2ade6c5 | 23 | void |
MAHCSnijders | 0:7d25c2ade6c5 | 24 | |
MAHCSnijders | 0:7d25c2ade6c5 | 25 | |
MAHCSnijders | 0:7d25c2ade6c5 | 26 |