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
main.cpp@0:87273e4cfe1c, 2014-10-07 (annotated)
- Committer:
- takeshi8931
- Date:
- Tue Oct 07 04:33:22 2014 +0000
- Revision:
- 0:87273e4cfe1c
- Child:
- 1:974404d7741b
test;
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |