zhaw_st16b_pes2_10
/
Test-Arm
c
Test-Arm.cpp@0:a2e39e1c3e1c, 2017-04-19 (annotated)
- Committer:
- EpicG10
- Date:
- Wed Apr 19 14:17:33 2017 +0000
- Revision:
- 0:a2e39e1c3e1c
v
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EpicG10 | 0:a2e39e1c3e1c | 1 | #include "Test-Arm.h" |
EpicG10 | 0:a2e39e1c3e1c | 2 | #include "mbed.h" |
EpicG10 | 0:a2e39e1c3e1c | 3 | #include "Servo.h" |
EpicG10 | 0:a2e39e1c3e1c | 4 | //#include "Declarations.h" |
EpicG10 | 0:a2e39e1c3e1c | 5 | /* |
EpicG10 | 0:a2e39e1c3e1c | 6 | Servo ServoArm(PA_6); |
EpicG10 | 0:a2e39e1c3e1c | 7 | |
EpicG10 | 0:a2e39e1c3e1c | 8 | |
EpicG10 | 0:a2e39e1c3e1c | 9 | Arm::Arm(){ |
EpicG10 | 0:a2e39e1c3e1c | 10 | init(); |
EpicG10 | 0:a2e39e1c3e1c | 11 | } |
EpicG10 | 0:a2e39e1c3e1c | 12 | |
EpicG10 | 0:a2e39e1c3e1c | 13 | void Arm::init(){ |
EpicG10 | 0:a2e39e1c3e1c | 14 | ServoArm.calibrate(0.0015f, 180.0f); |
EpicG10 | 0:a2e39e1c3e1c | 15 | |
EpicG10 | 0:a2e39e1c3e1c | 16 | //ServoArm.position(COLLECT_POS); |
EpicG10 | 0:a2e39e1c3e1c | 17 | } |
EpicG10 | 0:a2e39e1c3e1c | 18 | |
EpicG10 | 0:a2e39e1c3e1c | 19 | void Arm::down(){ |
EpicG10 | 0:a2e39e1c3e1c | 20 | for(int i=0; i<(COLLECT_POS-TAKE_POS); i+=1) { |
EpicG10 | 0:a2e39e1c3e1c | 21 | ServoArm.position(COLLECT_POS-(float)i); |
EpicG10 | 0:a2e39e1c3e1c | 22 | wait(0.02f); |
EpicG10 | 0:a2e39e1c3e1c | 23 | } |
EpicG10 | 0:a2e39e1c3e1c | 24 | } |
EpicG10 | 0:a2e39e1c3e1c | 25 | |
EpicG10 | 0:a2e39e1c3e1c | 26 | void Arm::collect(){ |
EpicG10 | 0:a2e39e1c3e1c | 27 | for(int i=0; i<(COLLECT_POS-TAKE_POS); i+=1) { |
EpicG10 | 0:a2e39e1c3e1c | 28 | ServoArm.position(TAKE_POS+(float)i); |
EpicG10 | 0:a2e39e1c3e1c | 29 | wait(0.02f); |
EpicG10 | 0:a2e39e1c3e1c | 30 | } |
EpicG10 | 0:a2e39e1c3e1c | 31 | } |
EpicG10 | 0:a2e39e1c3e1c | 32 | |
EpicG10 | 0:a2e39e1c3e1c | 33 | void Arm::back(){ |
EpicG10 | 0:a2e39e1c3e1c | 34 | for(int i=0; i<(RELEASE_POS-COLLECT_POS); i+=1) { |
EpicG10 | 0:a2e39e1c3e1c | 35 | ServoArm.position(COLLECT_POS+(float)i); |
EpicG10 | 0:a2e39e1c3e1c | 36 | wait(0.02f); |
EpicG10 | 0:a2e39e1c3e1c | 37 | } |
EpicG10 | 0:a2e39e1c3e1c | 38 | } |
EpicG10 | 0:a2e39e1c3e1c | 39 | void Arm::backtocollect(){ |
EpicG10 | 0:a2e39e1c3e1c | 40 | for(int i=0; i<(RELEASE_POS-COLLECT_POS); i+=1) { |
EpicG10 | 0:a2e39e1c3e1c | 41 | ServoArm.position(RELEASE_POS-(float)i); |
EpicG10 | 0:a2e39e1c3e1c | 42 | wait(0.02f); |
EpicG10 | 0:a2e39e1c3e1c | 43 | } |
EpicG10 | 0:a2e39e1c3e1c | 44 | } |
EpicG10 | 0:a2e39e1c3e1c | 45 | |
EpicG10 | 0:a2e39e1c3e1c | 46 | void Arm::setAngle(float angle){ |
EpicG10 | 0:a2e39e1c3e1c | 47 | this->angle=angle; |
EpicG10 | 0:a2e39e1c3e1c | 48 | if (angle>90.0f) angle=90.0f; |
EpicG10 | 0:a2e39e1c3e1c | 49 | if (angle<-90.0f) angle=-90.0f; |
EpicG10 | 0:a2e39e1c3e1c | 50 | float pos=ServoArm.read(); |
EpicG10 | 0:a2e39e1c3e1c | 51 | |
EpicG10 | 0:a2e39e1c3e1c | 52 | for(int i=0; i<int(abs(pos-angle));i++){ |
EpicG10 | 0:a2e39e1c3e1c | 53 | |
EpicG10 | 0:a2e39e1c3e1c | 54 | if(pos>angle) ServoArm.position(pos-i); |
EpicG10 | 0:a2e39e1c3e1c | 55 | else ServoArm.position(pos+i); |
EpicG10 | 0:a2e39e1c3e1c | 56 | wait(0.02f); |
EpicG10 | 0:a2e39e1c3e1c | 57 | } |
EpicG10 | 0:a2e39e1c3e1c | 58 | } |
EpicG10 | 0:a2e39e1c3e1c | 59 | */ |