yoka konishi
/
a1_SPI_slave_arm_shudouki
手動機アーム、ヌクレオ基盤のプログラムです(9/4)
Fork of a_SPI_slave_arm_shudouki by
main.cpp
- Committer:
- yoka06
- Date:
- 2017-08-25
- Revision:
- 3:f200ae8fea88
- Parent:
- 2:df4d6f7952b6
- Child:
- 4:ea846eabda0e
File content as of revision 3:f200ae8fea88:
#include "mbed.h" #include "rc-servo.h" #include "motor_1.h" #include "motor_2.h" int a,b,c,d,e,f,g,h; Serial pc(USBTX,USBRX); SPISlave spi(PA_7,PA_6,PA_5,PA_4); RcServo sA(PB_0,500,2400,180); //PwmOutのpin,minpulsewidth,maxpulsewidth,motionrange RcServo sB(PA_9,500,2100,180); RcServo sC(PA_10,500,2100,180); RcServo sD(PA_11,500,3000,180); RcServo sE(PA_2,500,2400,180); RcServo sF(PA_3,500,3000,180); RcServo sG(PA_8,500,2400,180); M1 mH(PB_7,PB_6); //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); wait(0.7); sA.set_deg(62); wait(0.7); sB.set_deg(180); sC.set_deg(0); } if(b==1) { // if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { // △で燃料回収 sB.set_deg(0); sC.set_deg(180); wait(0.7); sA.set_deg(152); wait(0.7); sD.set_deg(180); sE.set_deg(120); } if(c==1) { // if((ButtonState >> BUTTONLEFT)&1 == 1) { // ◀で燃料掃き出し mH.move(0.5); wait(1); mH.move(0); } if(d==1) { // if((ButtonState >> BUTTONCIRCLE)&1 == 1) { // 〇でタンク回収 sA.set_deg(90); sE.set_deg(90); wait(0.7); sD.set_deg(0); wait(0.7); sE.set_deg(120); wait(0.7); sD.set_deg(90); wait(0.7); sE.set_deg(90); sA.set_deg(158); } if(e==1) { // if((ButtonState >> BUTTONRIGHT)&1 == 1) { // ‣でタンク掃き出し mH.move(-0.5); wait(1); mH.move(0); } if(f==1) { // if((ButtonState >> BUTTONDOWN)&1 == 1) { // ▼で待機 sF.set_deg(180); sG.set_deg(120); wait(0.7); sA.set_deg(180); wait(0.7); sD.set_deg(0); } if(g==1) { // if((ButtonState >> BUTTONCROSS)&1 == 1) { // ×でサンプル受け取り sG.set_deg(90); wait(0.7); sF.set_deg(90); } if(h==1) { // if((ButtonState >> BUTTONSQUARE)&1 == 1) { // □でサンプル設置 sG.set_deg(120); } } 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\n",a,b,c,d,e,f,g,h,spi.read()); } }