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: mbed ros_lib_kinetic
lift.cpp@10:836e701d00a6, 2018-04-26 (annotated)
- Committer:
- MikeGray92
- Date:
- Thu Apr 26 18:33:11 2018 +0000
- Revision:
- 10:836e701d00a6
- Parent:
- 7:950b3c3b5a2b
- Child:
- 13:8630f38f8066
Speed and Position controlled lift and gimbal
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikeGray92 | 10:836e701d00a6 | 1 | |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 2 | #include <stdint.h> |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 3 | #include "mbed.h" |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 4 | #include <ros.h> |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 5 | #include <std_msgs/Empty.h> |
MikeGray92 | 7:950b3c3b5a2b | 6 | #include <std_msgs/Int32MultiArray.h> |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 7 | #include <BNO055.h> |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 8 | #include <initializations.h> |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 9 | #include <definitions.h> |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 10 | #include <prototypes.h> |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 11 | #include <Mx28.h> |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 12 | |
MikeGray92 | 4:89ebfa37663b | 13 | bool startFlag = 0; |
MikeGray92 | 2:0537a8007a39 | 14 | |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 15 | void runLift(void){ |
MikeGray92 | 2:0537a8007a39 | 16 | stallCheck(); |
MikeGray92 | 6:2ffa254e8f6e | 17 | //Check If Arrived |
MikeGray92 | 10:836e701d00a6 | 18 | if (abs(control.height - currentPosition) < 6){ |
MikeGray92 | 4:89ebfa37663b | 19 | liftSpeed.write(0); |
MikeGray92 | 4:89ebfa37663b | 20 | stopHallInt(); |
MikeGray92 | 4:89ebfa37663b | 21 | startFlag = 0; |
MikeGray92 | 4:89ebfa37663b | 22 | } |
MikeGray92 | 4:89ebfa37663b | 23 | else { |
MikeGray92 | 10:836e701d00a6 | 24 | value1.write(1); |
MikeGray92 | 4:89ebfa37663b | 25 | if(startFlag == 0){ |
MikeGray92 | 4:89ebfa37663b | 26 | startHallInt(); |
MikeGray92 | 4:89ebfa37663b | 27 | startFlag = 1; |
MikeGray92 | 4:89ebfa37663b | 28 | } |
MikeGray92 | 6:2ffa254e8f6e | 29 | // Set direction |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 30 | if(control.height > currentPosition){ |
MikeGray92 | 4:89ebfa37663b | 31 | liftDirection.write(LIFTUP); |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 32 | } |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 33 | else if(control.height < currentPosition){ |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 34 | liftDirection.write(LIFTDOWN); |
MikeGray92 | 4:89ebfa37663b | 35 | } |
MikeGray92 | 10:836e701d00a6 | 36 | liftSpeed.write(liftDutyCycle); |
MikeGray92 | 4:89ebfa37663b | 37 | } |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 38 | } |
group-UVic-Assistive-Technolog | 0:3a767f41cf04 | 39 | |
MikeGray92 | 6:2ffa254e8f6e | 40 | //Determining if the lift stalled and stopping if it is |
MikeGray92 | 2:0537a8007a39 | 41 | void stallCheck(void){ |
MikeGray92 | 10:836e701d00a6 | 42 | if(stallcount > 3 && liftSpeed.read() > 0 && eStopFlag == 0){ |
MikeGray92 | 2:0537a8007a39 | 43 | liftSpeed.write(0); |
MikeGray92 | 2:0537a8007a39 | 44 | if (liftDirection.read() == LIFTUP){ |
MikeGray92 | 2:0537a8007a39 | 45 | currentPosition = LIFTHEIGHTMAX; |
MikeGray92 | 10:836e701d00a6 | 46 | control.height = LIFTHEIGHTMAX; |
MikeGray92 | 2:0537a8007a39 | 47 | }else{ |
MikeGray92 | 2:0537a8007a39 | 48 | currentPosition = 0; |
MikeGray92 | 10:836e701d00a6 | 49 | control.height = 0; |
MikeGray92 | 2:0537a8007a39 | 50 | } |
MikeGray92 | 2:0537a8007a39 | 51 | } |
MikeGray92 | 2:0537a8007a39 | 52 | } |