c

Dependencies:   Servo mbed

Committer:
EpicG10
Date:
Wed Apr 19 14:17:33 2017 +0000
Revision:
0:a2e39e1c3e1c
v

Who changed what in which revision?

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