State machine

Dependencies:   mbed Adafruit_GFX BioroboticsMotorControl MODSERIAL BioroboticsEMGFilter

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?

UserRevisionLine numberNew 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