yoka konishi
/
a1_SPI_slave_arm_shudouki
手動機アーム、ヌクレオ基盤のプログラムです(9/4)
Fork of a_SPI_slave_arm_shudouki by
main.cpp
- Committer:
- yoka06
- Date:
- 2017-08-23
- Revision:
- 1:9e95f48ea988
- Parent:
- 0:bf93b3e87029
- Child:
- 2:df4d6f7952b6
File content as of revision 1:9e95f48ea988:
#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); 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) { // ◀で燃料掃き出し // ??保留 } 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) { // ‣でタンク掃き出し //??保留 } 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); } } }