yoka konishi
/
a1_SPI_slave_arm_shudouki
手動機アーム、ヌクレオ基盤のプログラムです(9/4)
Fork of a_SPI_slave_arm_shudouki by
main.cpp@4:ea846eabda0e, 2017-09-04 (annotated)
- Committer:
- yoka06
- Date:
- Mon Sep 04 12:39:59 2017 +0000
- Revision:
- 4:ea846eabda0e
- Parent:
- 3:f200ae8fea88
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yoka06 | 0:bf93b3e87029 | 1 | #include "mbed.h" |
yoka06 | 0:bf93b3e87029 | 2 | #include "rc-servo.h" |
yoka06 | 0:bf93b3e87029 | 3 | #include "motor_1.h" |
yoka06 | 0:bf93b3e87029 | 4 | #include "motor_2.h" |
yoka06 | 0:bf93b3e87029 | 5 | |
yoka06 | 0:bf93b3e87029 | 6 | int a,b,c,d,e,f,g,h; |
yoka06 | 4:ea846eabda0e | 7 | //Serial pc(USBTX,USBRX); |
yoka06 | 0:bf93b3e87029 | 8 | SPISlave spi(PA_7,PA_6,PA_5,PA_4); |
yoka06 | 0:bf93b3e87029 | 9 | |
yoka06 | 2:df4d6f7952b6 | 10 | RcServo sA(PB_0,500,2400,180); //PwmOutのpin,minpulsewidth,maxpulsewidth,motionrange |
yoka06 | 4:ea846eabda0e | 11 | RcServo sB(PA_9,500,2400,180); |
yoka06 | 2:df4d6f7952b6 | 12 | RcServo sC(PA_10,500,2100,180); |
yoka06 | 2:df4d6f7952b6 | 13 | RcServo sD(PA_11,500,3000,180); |
yoka06 | 2:df4d6f7952b6 | 14 | RcServo sE(PA_2,500,2400,180); |
yoka06 | 0:bf93b3e87029 | 15 | RcServo sF(PA_3,500,3000,180); |
yoka06 | 2:df4d6f7952b6 | 16 | RcServo sG(PA_8,500,2400,180); |
yoka06 | 4:ea846eabda0e | 17 | M2 mH(PB_6,PA_0,PA_1); //pwm*1,digital*2 |
yoka06 | 0:bf93b3e87029 | 18 | |
yoka06 | 0:bf93b3e87029 | 19 | int main() |
yoka06 | 0:bf93b3e87029 | 20 | { |
yoka06 | 4:ea846eabda0e | 21 | spi.format(8,3); |
yoka06 | 0:bf93b3e87029 | 22 | spi.frequency(1000000); |
yoka06 | 0:bf93b3e87029 | 23 | |
yoka06 | 4:ea846eabda0e | 24 | |
yoka06 | 0:bf93b3e87029 | 25 | while(1) { |
yoka06 | 4:ea846eabda0e | 26 | if(spi.receive()) { |
yoka06 | 0:bf93b3e87029 | 27 | |
yoka06 | 0:bf93b3e87029 | 28 | a=spi.read() & 0b1; |
yoka06 | 0:bf93b3e87029 | 29 | b=(spi.read() & 0b10)>>1; |
yoka06 | 0:bf93b3e87029 | 30 | c=(spi.read() & 0b100)>>2; |
yoka06 | 0:bf93b3e87029 | 31 | d=(spi.read() & 0b1000)>>3; |
yoka06 | 0:bf93b3e87029 | 32 | e=(spi.read() & 0b10000)>>4; |
yoka06 | 0:bf93b3e87029 | 33 | f=(spi.read() & 0b100000)>>5; |
yoka06 | 0:bf93b3e87029 | 34 | g=(spi.read() & 0b1000000)>>6; |
yoka06 | 0:bf93b3e87029 | 35 | h=(spi.read() & 0b10000000)>>7; |
yoka06 | 4:ea846eabda0e | 36 | //pc.printf("a:%d\t b:%d\t c:%d\t d:%d\t e:%d\t f:%d\t g:%d\t h:%d\t send:%d\r\n",a,b,c,d,e,f,g,h,spi.read()); |
yoka06 | 4:ea846eabda0e | 37 | } |
yoka06 | 0:bf93b3e87029 | 38 | |
yoka06 | 3:f200ae8fea88 | 39 | |
yoka06 | 4:ea846eabda0e | 40 | if(a==1) { |
yoka06 | 4:ea846eabda0e | 41 | //if((ButtonState >> BUTTONUP)&1 == 1) { // ▲で燃料用アーム展開 |
yoka06 | 4:ea846eabda0e | 42 | sD.set_deg(80); |
yoka06 | 4:ea846eabda0e | 43 | wait(0.7); |
yoka06 | 4:ea846eabda0e | 44 | sA.set_deg(118); |
yoka06 | 4:ea846eabda0e | 45 | wait(1.2); |
yoka06 | 4:ea846eabda0e | 46 | sB.set_deg(0); |
yoka06 | 4:ea846eabda0e | 47 | sC.set_deg(180); |
yoka06 | 4:ea846eabda0e | 48 | |
yoka06 | 4:ea846eabda0e | 49 | } |
yoka06 | 4:ea846eabda0e | 50 | |
yoka06 | 3:f200ae8fea88 | 51 | |
yoka06 | 0:bf93b3e87029 | 52 | |
yoka06 | 4:ea846eabda0e | 53 | if(b==1) { |
yoka06 | 4:ea846eabda0e | 54 | //if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { // △で燃料回収 |
yoka06 | 4:ea846eabda0e | 55 | sB.set_deg(180); |
yoka06 | 4:ea846eabda0e | 56 | sC.set_deg(0); |
yoka06 | 4:ea846eabda0e | 57 | wait(0.7); |
yoka06 | 4:ea846eabda0e | 58 | sA.set_deg(28); |
yoka06 | 4:ea846eabda0e | 59 | wait(0.7); |
yoka06 | 4:ea846eabda0e | 60 | sD.set_deg(0); |
yoka06 | 4:ea846eabda0e | 61 | sE.set_deg(120); |
yoka06 | 0:bf93b3e87029 | 62 | |
yoka06 | 1:9e95f48ea988 | 63 | |
yoka06 | 0:bf93b3e87029 | 64 | |
yoka06 | 4:ea846eabda0e | 65 | } |
yoka06 | 3:f200ae8fea88 | 66 | |
yoka06 | 4:ea846eabda0e | 67 | if(c==1) { |
yoka06 | 4:ea846eabda0e | 68 | //if((ButtonState >> BUTTONLEFT)&1 == 1) { // ◀で燃料掃き出し |
yoka06 | 4:ea846eabda0e | 69 | mH.move(1); |
yoka06 | 4:ea846eabda0e | 70 | wait(1.2); |
yoka06 | 4:ea846eabda0e | 71 | mH.move(0); |
yoka06 | 4:ea846eabda0e | 72 | |
yoka06 | 4:ea846eabda0e | 73 | } |
yoka06 | 1:9e95f48ea988 | 74 | |
yoka06 | 4:ea846eabda0e | 75 | if(d==1) { |
yoka06 | 4:ea846eabda0e | 76 | //if((ButtonState >> BUTTONCIRCLE)&1 == 1) { // 〇でタンク回収 |
yoka06 | 4:ea846eabda0e | 77 | sA.set_deg(118); |
yoka06 | 4:ea846eabda0e | 78 | sE.set_deg(30); |
yoka06 | 4:ea846eabda0e | 79 | wait(0.7); |
yoka06 | 4:ea846eabda0e | 80 | sD.set_deg(180); |
yoka06 | 4:ea846eabda0e | 81 | wait(0.7); |
yoka06 | 4:ea846eabda0e | 82 | sE.set_deg(120); |
yoka06 | 4:ea846eabda0e | 83 | wait(0.7); |
yoka06 | 4:ea846eabda0e | 84 | sD.set_deg(80); |
yoka06 | 4:ea846eabda0e | 85 | wait(0.7); |
yoka06 | 4:ea846eabda0e | 86 | sE.set_deg(90); |
yoka06 | 4:ea846eabda0e | 87 | sA.set_deg(27); |
yoka06 | 0:bf93b3e87029 | 88 | |
yoka06 | 4:ea846eabda0e | 89 | |
yoka06 | 4:ea846eabda0e | 90 | |
yoka06 | 4:ea846eabda0e | 91 | } |
yoka06 | 0:bf93b3e87029 | 92 | |
yoka06 | 4:ea846eabda0e | 93 | if(e==1) { |
yoka06 | 4:ea846eabda0e | 94 | //if((ButtonState >> BUTTONRIGHT)&1 == 1) { // ‣でタンク掃き出し |
yoka06 | 4:ea846eabda0e | 95 | mH.move(-1); |
yoka06 | 4:ea846eabda0e | 96 | wait(1.2); |
yoka06 | 4:ea846eabda0e | 97 | mH.move(0); |
yoka06 | 4:ea846eabda0e | 98 | } |
yoka06 | 1:9e95f48ea988 | 99 | |
yoka06 | 4:ea846eabda0e | 100 | if(f==1) { |
yoka06 | 4:ea846eabda0e | 101 | //if((ButtonState >> BUTTONDOWN)&1 == 1) { // ▼で待機 |
yoka06 | 4:ea846eabda0e | 102 | |
yoka06 | 4:ea846eabda0e | 103 | sF.set_deg(0); |
yoka06 | 4:ea846eabda0e | 104 | sG.set_deg(100); |
yoka06 | 4:ea846eabda0e | 105 | sE.set_deg(5); |
yoka06 | 4:ea846eabda0e | 106 | sD.set_deg(180); |
yoka06 | 4:ea846eabda0e | 107 | } |
yoka06 | 0:bf93b3e87029 | 108 | |
yoka06 | 4:ea846eabda0e | 109 | if(g==1) { |
yoka06 | 4:ea846eabda0e | 110 | //if((ButtonState >> BUTTONCROSS)&1 == 1) { // ×でサンプル受け取り |
yoka06 | 4:ea846eabda0e | 111 | sG.set_deg(30); |
yoka06 | 4:ea846eabda0e | 112 | wait(0.7); |
yoka06 | 4:ea846eabda0e | 113 | sF.set_deg(87); |
yoka06 | 4:ea846eabda0e | 114 | |
yoka06 | 4:ea846eabda0e | 115 | } |
yoka06 | 3:f200ae8fea88 | 116 | |
yoka06 | 4:ea846eabda0e | 117 | if(h==1) { |
yoka06 | 4:ea846eabda0e | 118 | //if((ButtonState >> BUTTONSQUARE)&1 == 1) { // □でサンプル設置 |
yoka06 | 4:ea846eabda0e | 119 | sG.set_deg(120); |
yoka06 | 0:bf93b3e87029 | 120 | } |
yoka06 | 4:ea846eabda0e | 121 | |
yoka06 | 0:bf93b3e87029 | 122 | } |
yoka06 | 4:ea846eabda0e | 123 | |
yoka06 | 0:bf93b3e87029 | 124 | } |
yoka06 | 4:ea846eabda0e | 125 |