filters, homeposition and cases

Dependencies:   Encoder HIDScope MODSERIAL mbed

Fork of Cases_homepos_picontrol_EMG_2 by Arun Raveenthiran

Committer:
arunr
Date:
Mon Oct 19 09:31:16 2015 +0000
Revision:
0:65ab9f79a4cc
Child:
1:7d5e6bc2b314
Home position;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
arunr 0:65ab9f79a4cc 1 #include "mbed.h"
arunr 0:65ab9f79a4cc 2 #include "encoder.h"
arunr 0:65ab9f79a4cc 3 #include "HIDScope.h"
arunr 0:65ab9f79a4cc 4
arunr 0:65ab9f79a4cc 5 DigitalOut motor1_direction(D4);
arunr 0:65ab9f79a4cc 6 PwmOut motor1_speed(D5);
arunr 0:65ab9f79a4cc 7 PwmOut led(D9);
arunr 0:65ab9f79a4cc 8 DigitalIn button_1(PTC6); //counterclockwise
arunr 0:65ab9f79a4cc 9 DigitalIn button_2(PTA4); //clockwise
arunr 0:65ab9f79a4cc 10 Encoder motor1(D12,D13);
arunr 0:65ab9f79a4cc 11 HIDScope scope(1);
arunr 0:65ab9f79a4cc 12
arunr 0:65ab9f79a4cc 13
arunr 0:65ab9f79a4cc 14 const int pressed = 0;
arunr 0:65ab9f79a4cc 15
arunr 0:65ab9f79a4cc 16 double H;
arunr 0:65ab9f79a4cc 17 double P;
arunr 0:65ab9f79a4cc 18 double D;
arunr 0:65ab9f79a4cc 19
arunr 0:65ab9f79a4cc 20
arunr 0:65ab9f79a4cc 21 void sethome(){
arunr 0:65ab9f79a4cc 22 motor1.setPosition(0);
arunr 0:65ab9f79a4cc 23 H = motor1.getPosition();
arunr 0:65ab9f79a4cc 24 }
arunr 0:65ab9f79a4cc 25
arunr 0:65ab9f79a4cc 26 void move_motor1_ccw (){
arunr 0:65ab9f79a4cc 27 motor1_direction = 0;
arunr 0:65ab9f79a4cc 28 motor1_speed = 0.8;
arunr 0:65ab9f79a4cc 29 }
arunr 0:65ab9f79a4cc 30
arunr 0:65ab9f79a4cc 31 void move_motor1_cw (){
arunr 0:65ab9f79a4cc 32 motor1_direction = 1;
arunr 0:65ab9f79a4cc 33 motor1_speed = 0.8;
arunr 0:65ab9f79a4cc 34 }
arunr 0:65ab9f79a4cc 35
arunr 0:65ab9f79a4cc 36 void movetohome(){
arunr 0:65ab9f79a4cc 37 P = motor1.getPosition();
arunr 0:65ab9f79a4cc 38 D = (P - H);
arunr 0:65ab9f79a4cc 39
arunr 0:65ab9f79a4cc 40 if (D == 0){
arunr 0:65ab9f79a4cc 41 motor1_speed = 0;
arunr 0:65ab9f79a4cc 42 }
arunr 0:65ab9f79a4cc 43 else if (D > 0){
arunr 0:65ab9f79a4cc 44 move_motor1_cw();
arunr 0:65ab9f79a4cc 45 }
arunr 0:65ab9f79a4cc 46 else if (D < 0){
arunr 0:65ab9f79a4cc 47 move_motor1_ccw();
arunr 0:65ab9f79a4cc 48 }
arunr 0:65ab9f79a4cc 49 }
arunr 0:65ab9f79a4cc 50
arunr 0:65ab9f79a4cc 51 void move_motor1()
arunr 0:65ab9f79a4cc 52 {
arunr 0:65ab9f79a4cc 53 if (button_1 == pressed) {
arunr 0:65ab9f79a4cc 54 move_motor1_cw ();
arunr 0:65ab9f79a4cc 55 }
arunr 0:65ab9f79a4cc 56 else if (button_2 == pressed) {
arunr 0:65ab9f79a4cc 57 move_motor1_ccw ();
arunr 0:65ab9f79a4cc 58 }
arunr 0:65ab9f79a4cc 59 else movetohome();
arunr 0:65ab9f79a4cc 60 }
arunr 0:65ab9f79a4cc 61
arunr 0:65ab9f79a4cc 62 void read_encoder1 () // aflezen van encoder via hidscope??
arunr 0:65ab9f79a4cc 63 {
arunr 0:65ab9f79a4cc 64 scope.set(0,motor1.getPosition());
arunr 0:65ab9f79a4cc 65 led.write(motor1.getPosition()/100.0);
arunr 0:65ab9f79a4cc 66 scope.send();
arunr 0:65ab9f79a4cc 67 wait(0.2f);
arunr 0:65ab9f79a4cc 68 }
arunr 0:65ab9f79a4cc 69
arunr 0:65ab9f79a4cc 70 int main()
arunr 0:65ab9f79a4cc 71 {
arunr 0:65ab9f79a4cc 72
arunr 0:65ab9f79a4cc 73 sethome();
arunr 0:65ab9f79a4cc 74 while (true) {
arunr 0:65ab9f79a4cc 75 read_encoder1();
arunr 0:65ab9f79a4cc 76 move_motor1();
arunr 0:65ab9f79a4cc 77 }
arunr 0:65ab9f79a4cc 78 }