Project BioRobotics Group 19
Dependencies: FastPWM HIDScope MODSERIAL QEI biquadFilter mbed
Diff: main.cpp
- Revision:
- 3:5c3edcd29448
- Parent:
- 2:d3687b2c4e37
- Child:
- 4:ea7689bf97e1
diff -r d3687b2c4e37 -r 5c3edcd29448 main.cpp --- a/main.cpp Mon Sep 25 14:32:19 2017 +0000 +++ b/main.cpp Mon Oct 09 13:59:45 2017 +0000 @@ -9,17 +9,26 @@ MODSERIAL pc(USBTX, USBRX); // STATES -enum states{MOTORS_OFF, HOMING, MOVING, HITTING}; +enum states{MOTORS_OFF, MOVING, HITTING}; states currentState = MOTORS_OFF; // Start with motors off bool stateChanged = true; // Make sure the initialization of first state is executed +// PINS +DigitalOut motor1DirectionPin(D4); // Value 0: CW or CCW?; 1: CW or CCW? +PwmOut motor1MagnitudePin(D5); +DigitalOut motor2DirectionPin(D7); // Value 0: CW or CCW?; 1: CW or CCW? +PwmOut motor2MagnitudePin(D6); +InterruptIn button1(D2); // BUTTON 1 AANSLUITEN OP D2!!! +InterruptIn button2(D3); // BUTTON 2 AANSLUITEN OP D3!!! + // DEFINITIONS - +const float motorVelocity = 4; // rad/s +const float motorGain = 4; // (rad/s) / PWM // FUNCTIONS // Turn motors off -void TurnMotorsOff() +/*void TurnMotorsOff() { // Turn motors off } @@ -54,6 +63,24 @@ { // Rotate motor 3 } +*/ + +void TurnMotor1CW() +{ + motor1DirectionPin = 0; + motor1MagnitudePin = fabs(motorVelocity / motorGain); +} + +void TurnMotor1CCW() +{ + motor1DirectionPin = 1; + motor1MagnitudePin = fabs(motorVelocity / motorGain); +} + +void TurnMotorsOff() +{ + motor1MagnitudePin = 0; +} // States function void ProcessStateMachine() @@ -71,22 +98,8 @@ } // Home command - if(//HOME COMMAND) + if(button1) { - currentState = HOMING; - stateChanged = true; - break; - } - } - - case HOMING: - { - // State initialization - if(stateChanged) - { - pc.printf("Entering HOMING \r\n"); - MoveToHome(); // Move to home position - stateChanged = false; currentState = MOVING; stateChanged = true; break; @@ -101,7 +114,7 @@ pc.printf("Entering MOVING \r\n"); stateChanged = false; } - + /* // EMG signals to rotate motor 1 if(// EMG signal) { @@ -123,6 +136,21 @@ stateChanged = true; break; } + */ + // Motor testen + while(button1) + { + TurnMotor1CW(); + pc.printf("Turning motor 1 CW \r\n"); + } + + while(button2) + { + TurnMotor1CCW(); + pc.printf("Turning motor 1 CounterCW \r\n"); + } + + TurnMotorsOff(); } case HITTING: @@ -131,7 +159,7 @@ if(stateChanged) { pc.printf("Entering HITTING \r\n"); - HitBall(); // Hit the ball + //HitBall(); // Hit the ball stateChanged = false; currentState = MOVING; stateChanged = true;