手動機アーム、ヌクレオ基盤のプログラムです(9/4)

Dependencies:   RcServo mbed

Fork of a_SPI_slave_arm_shudouki by F^3 RC 2班

Revision:
0:bf93b3e87029
Child:
1:9e95f48ea988
diff -r 000000000000 -r bf93b3e87029 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Aug 21 08:46:50 2017 +0000
@@ -0,0 +1,123 @@
+#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);
+        }
+
+    }
+}