Ohnishi_Gundan / Mbed 2 deprecated Bilateral_SpringStyle2

Dependencies:   mbed

Committer:
takeshi8931
Date:
Tue Oct 07 04:33:22 2014 +0000
Revision:
0:87273e4cfe1c
Child:
1:974404d7741b
test;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeshi8931 0:87273e4cfe1c 1 #include "mbed.h"
takeshi8931 0:87273e4cfe1c 2
takeshi8931 0:87273e4cfe1c 3 #define fsr_def 0.05
takeshi8931 0:87273e4cfe1c 4 #define sence_def 0.15
takeshi8931 0:87273e4cfe1c 5 #define zeroPWM 0.17
takeshi8931 0:87273e4cfe1c 6 #define pullzero 0.9
takeshi8931 0:87273e4cfe1c 7
takeshi8931 0:87273e4cfe1c 8
takeshi8931 0:87273e4cfe1c 9 AnalogIn FSR1(p19);
takeshi8931 0:87273e4cfe1c 10 AnalogIn FSR2(p20);
takeshi8931 0:87273e4cfe1c 11
takeshi8931 0:87273e4cfe1c 12
takeshi8931 0:87273e4cfe1c 13 DigitalOut Sig11(p24);
takeshi8931 0:87273e4cfe1c 14 DigitalOut Sig12(p26);
takeshi8931 0:87273e4cfe1c 15 PwmOut Pwm1(p25);
takeshi8931 0:87273e4cfe1c 16 DigitalOut Sig21(p21);
takeshi8931 0:87273e4cfe1c 17 DigitalOut Sig22(p23);
takeshi8931 0:87273e4cfe1c 18 PwmOut Pwm2(p22);
takeshi8931 0:87273e4cfe1c 19
takeshi8931 0:87273e4cfe1c 20 DigitalOut myled1(LED1);
takeshi8931 0:87273e4cfe1c 21 DigitalOut myled2(LED2);
takeshi8931 0:87273e4cfe1c 22
takeshi8931 0:87273e4cfe1c 23 Serial pc(USBTX, USBRX);
takeshi8931 0:87273e4cfe1c 24
takeshi8931 0:87273e4cfe1c 25 //引く
takeshi8931 0:87273e4cfe1c 26 void Pull1(float buf){
takeshi8931 0:87273e4cfe1c 27 Sig11 = 0;
takeshi8931 0:87273e4cfe1c 28 Sig12 = 1;
takeshi8931 0:87273e4cfe1c 29 Pwm1 = 1.0-(buf);
takeshi8931 0:87273e4cfe1c 30 //Pwm1 = 0.5;
takeshi8931 0:87273e4cfe1c 31 }
takeshi8931 0:87273e4cfe1c 32
takeshi8931 0:87273e4cfe1c 33 void Pull2(float buf){
takeshi8931 0:87273e4cfe1c 34 Sig21 = 0;
takeshi8931 0:87273e4cfe1c 35 Sig22 = 1;
takeshi8931 0:87273e4cfe1c 36 Pwm2 = 1.0-(buf);
takeshi8931 0:87273e4cfe1c 37 //Pwm2 = 0.5;
takeshi8931 0:87273e4cfe1c 38 }
takeshi8931 0:87273e4cfe1c 39
takeshi8931 0:87273e4cfe1c 40
takeshi8931 0:87273e4cfe1c 41
takeshi8931 0:87273e4cfe1c 42 //ブレーキモード
takeshi8931 0:87273e4cfe1c 43 void Brake1(){
takeshi8931 0:87273e4cfe1c 44 Sig11 = 0;
takeshi8931 0:87273e4cfe1c 45 Sig12 = 0;
takeshi8931 0:87273e4cfe1c 46 Pwm1 = 1;
takeshi8931 0:87273e4cfe1c 47 }
takeshi8931 0:87273e4cfe1c 48
takeshi8931 0:87273e4cfe1c 49 void Brake2(){
takeshi8931 0:87273e4cfe1c 50 Sig21 = 0;
takeshi8931 0:87273e4cfe1c 51 Sig22 = 0;
takeshi8931 0:87273e4cfe1c 52 Pwm2 = 1;
takeshi8931 0:87273e4cfe1c 53 }
takeshi8931 0:87273e4cfe1c 54
takeshi8931 0:87273e4cfe1c 55
takeshi8931 0:87273e4cfe1c 56 //開放
takeshi8931 0:87273e4cfe1c 57 void Open1(){
takeshi8931 0:87273e4cfe1c 58 Sig11 = 0;
takeshi8931 0:87273e4cfe1c 59 Sig12 = 0;
takeshi8931 0:87273e4cfe1c 60 Pwm1 = 0;
takeshi8931 0:87273e4cfe1c 61 }
takeshi8931 0:87273e4cfe1c 62
takeshi8931 0:87273e4cfe1c 63 void Open2(){
takeshi8931 0:87273e4cfe1c 64 Sig21 = 0;
takeshi8931 0:87273e4cfe1c 65 Sig22 = 0;
takeshi8931 0:87273e4cfe1c 66 Pwm2 = 0;
takeshi8931 0:87273e4cfe1c 67 }
takeshi8931 0:87273e4cfe1c 68
takeshi8931 0:87273e4cfe1c 69
takeshi8931 0:87273e4cfe1c 70 //FSRと相手側モータを回す
takeshi8931 0:87273e4cfe1c 71 void Moter2FSR1(float buf){
takeshi8931 0:87273e4cfe1c 72 if((FSR1-buf)>fsr_def && FSR2<pullzero){ //相手が引っ張ってる状態でピックってなる動き
takeshi8931 0:87273e4cfe1c 73 Pull2(FSR1);
takeshi8931 0:87273e4cfe1c 74 Brake1();
takeshi8931 0:87273e4cfe1c 75 myled1=1;
takeshi8931 0:87273e4cfe1c 76 }
takeshi8931 0:87273e4cfe1c 77 else if(FSR1<FSR2 && abs(FSR1-FSR2)>sence_def){//ギューんって引っ張る動き
takeshi8931 0:87273e4cfe1c 78 Pull2(1.5*FSR1);
takeshi8931 0:87273e4cfe1c 79 Brake1();
takeshi8931 0:87273e4cfe1c 80 myled1=0;
takeshi8931 0:87273e4cfe1c 81 }
takeshi8931 0:87273e4cfe1c 82 else{
takeshi8931 0:87273e4cfe1c 83 Open2();
takeshi8931 0:87273e4cfe1c 84 myled1=0;
takeshi8931 0:87273e4cfe1c 85 }
takeshi8931 0:87273e4cfe1c 86 }
takeshi8931 0:87273e4cfe1c 87
takeshi8931 0:87273e4cfe1c 88 void Moter1FSR2(float buf){
takeshi8931 0:87273e4cfe1c 89 if((FSR2-buf)>fsr_def && FSR1<pullzero){
takeshi8931 0:87273e4cfe1c 90 Pull1(FSR2);
takeshi8931 0:87273e4cfe1c 91 Brake2();
takeshi8931 0:87273e4cfe1c 92 myled2=1;
takeshi8931 0:87273e4cfe1c 93 }
takeshi8931 0:87273e4cfe1c 94 else if(FSR2<FSR1&& abs(FSR1-FSR2)>sence_def){
takeshi8931 0:87273e4cfe1c 95 Pull1(1.5*FSR2);
takeshi8931 0:87273e4cfe1c 96 Brake2();
takeshi8931 0:87273e4cfe1c 97 myled2=0;
takeshi8931 0:87273e4cfe1c 98 }
takeshi8931 0:87273e4cfe1c 99 else{
takeshi8931 0:87273e4cfe1c 100 Open1();
takeshi8931 0:87273e4cfe1c 101 myled2=0;
takeshi8931 0:87273e4cfe1c 102 }
takeshi8931 0:87273e4cfe1c 103 }
takeshi8931 0:87273e4cfe1c 104
takeshi8931 0:87273e4cfe1c 105
takeshi8931 0:87273e4cfe1c 106 int main() {
takeshi8931 0:87273e4cfe1c 107 float FSR1_buf = FSR1;
takeshi8931 0:87273e4cfe1c 108 float FSR2_buf = FSR2;
takeshi8931 0:87273e4cfe1c 109
takeshi8931 0:87273e4cfe1c 110
takeshi8931 0:87273e4cfe1c 111 Pwm1.period_us(50);
takeshi8931 0:87273e4cfe1c 112 Pwm2.period_us(50);
takeshi8931 0:87273e4cfe1c 113
takeshi8931 0:87273e4cfe1c 114 while(1) {
takeshi8931 0:87273e4cfe1c 115 pc.printf("FSR1:");
takeshi8931 0:87273e4cfe1c 116 pc.printf("%1.3f ",FSR1.read()); //圧力センサの出力
takeshi8931 0:87273e4cfe1c 117 pc.printf("FSR2:");
takeshi8931 0:87273e4cfe1c 118 pc.printf("%1.3f \n",FSR2.read()); //圧力センサの出力
takeshi8931 0:87273e4cfe1c 119
takeshi8931 0:87273e4cfe1c 120
takeshi8931 0:87273e4cfe1c 121 Moter2FSR1(FSR1_buf);
takeshi8931 0:87273e4cfe1c 122 Moter1FSR2(FSR2_buf);
takeshi8931 0:87273e4cfe1c 123
takeshi8931 0:87273e4cfe1c 124 FSR1_buf = FSR1;
takeshi8931 0:87273e4cfe1c 125 FSR2_buf = FSR2;
takeshi8931 0:87273e4cfe1c 126 }
takeshi8931 0:87273e4cfe1c 127 }