yoka konishi
/
a1_SPI_slave_arm_shudouki
手動機アーム、ヌクレオ基盤のプログラムです(9/4)
Fork of a_SPI_slave_arm_shudouki by
main.cpp
- Committer:
- yoka06
- Date:
- 2017-08-21
- Revision:
- 0:bf93b3e87029
- Child:
- 1:9e95f48ea988
File content as of revision 0:bf93b3e87029:
#include "mbed.h" #include "rc-servo.h" #include "motor_1.h" #include "motor_2.h" int a,b,c,d,e,f,g,h; SPISlave spi(PA_7,PA_6,PA_5,PA_4); RcServo sA(PA_1,500,2400,180); //PwmOutのpin,minpulsewidth,maxpulsewidth,motionrange RcServo sB(PB_4,500,2100,180); RcServo sC(PB_5,500,2100,180); RcServo sD(PA_2,500,3000,180); RcServo sE(PA_11,500,2400,180); RcServo sF(PA_3,500,3000,180); RcServo sG(PF_0,500,2400,180); M1 mH(PA_9,PA_10); //pwm*2 int main() { spi.format(16,3); spi.frequency(1000000); while(1) { if (spi.receive()) { a=spi.read() & 0b1; b=(spi.read() & 0b10)>>1; c=(spi.read() & 0b100)>>2; d=(spi.read() & 0b1000)>>3; e=(spi.read() & 0b10000)>>4; f=(spi.read() & 0b100000)>>5; g=(spi.read() & 0b1000000)>>6; h=(spi.read() & 0b10000000)>>7; } if(a==1) { // if((ButtonState >> BUTTONUP)&1 == 1) { // ▲で燃料用アーム展開 sD.set_deg(90); if(sD.set_deg(90)) { sA.set_deg(62); } if(sD.set_deg(90) && sA.set_deg(62)) { sB.set_deg(180); sC.set_deg(0); } } if(b==1) { // if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { // △で燃料回収 sB.set_deg(0); sC.set_deg(180); if(sB.set_deg(0) && sC.set_deg(180)) { sA.set_deg(152); } if(sA.set_deg(152) && sB.set_deg(0) && sC.set_deg(180)) { sD.set_deg(180); sE.set_deg(120); } } if(c==1) { // if((ButtonState >> BUTTONLEFT)&1 == 1) { // ◀で燃料掃き出し // ??保留 } if(d==1) { // if((ButtonState >> BUTTONCIRCLE)&1 == 1) { // 〇でタンク回収 sA.set_deg(90); sE.set_deg(90); if(sA.set_deg(90) && sE.set_deg(90)) { sD.set_deg(0); } if(sD.set_deg(0) && sA.set_deg(90) && sE.set_deg(90)) { sE.set_deg(120); } if(sE.set_deg(120) && sD.set_deg(0) && sA.set_deg(90) && sE.set_deg(90)) { sD.set_deg(90); } if(sD.set_deg(90) && sE.set_deg(120) && sD.set_deg(0) && sA.set_deg(90) && sE.set_deg(90)) { sE.set_deg(90); sA.set_deg(158); } } if(e==1) { // if((ButtonState >> BUTTONRIGHT)&1 == 1) { // ‣でタンク掃き出し //??保留 } if(f==1) { // if((ButtonState >> BUTTONDOWN)&1 == 1) { // ▼で待機 sF.set_deg(180); sG.set_deg(120); if(sF.set_deg(180) && sG.set_deg(120)) { sA.set_deg(180); } if(sA.set_deg(180) && sF.set_deg(180) && sG.set_deg(120)) { sD.set_deg(0); } } if(g==1) { // if((ButtonState >> BUTTONCROSS)&1 == 1) { // ×でサンプル受け取り sG.set_deg(90); if(sG.set_deg(90)) { sF.set_deg(90); } } if(h==1) { // if((ButtonState >> BUTTONSQUARE)&1 == 1) { // □でサンプル設置 sG.set_deg(120); } } }