4/2にちゃんと動いたやつ

Dependencies:   mbed SBDBT arrc_mbed

Revision:
8:e76d6c16d7af
Parent:
7:59be95fceafa
Child:
10:4fe47396eb5a
--- a/main.cpp	Thu Feb 03 13:31:38 2022 +0000
+++ b/main.cpp	Fri Mar 11 04:21:06 2022 +0000
@@ -1,6 +1,7 @@
 #include "mbed.h"
 #include "scrp_slave.hpp"
 #include "sbdbt.hpp"
+#include "mp3.hpp"
 
 int main(){
 //---------------初期設定---------------
@@ -8,15 +9,14 @@
     ScrpSlave scrp(PC_12,PD_2,PH_1,0x0807f800);
     
     //sbdbt
-    sbdbt sb(A0,A1);
+    sbdbt sb(PA_0,PA_1);
         
     //scrp_slaveのid設定
     const int wheel_num = 1;
     const int BeanbagGet_num = 2;
     const int BeanbagShot_num = 3;
     const int TakoGetPut_num = 4;
-    const int tape_LED_num = 5;
-    const int remort_stop_num = 6;
+    const int remort_stop_num = 5;
     const int send_all = 255;
     
     //コマンド番号設定
@@ -28,16 +28,16 @@
     const int l1_cmd = 5;
     
     //ビーンバッグ回収用
+    const int move = 1;
     
     //ビーンバッグ発射用
-    const int load = 3;
-    const int revolver = 4;
-    const int back = 5;
-    const int shot = 6;
+    const int shot = 2;
     
     //農作物回収・設置用
     const int up = 1;
     const int down = 2;
+    const int limit1 = 3;
+    const int limit2 = 4;
     
     //テープLED用
     
@@ -54,16 +54,41 @@
     int y_component;
     int l2_num;
     int r2_num;
+    
+    //mp3
+    Playmp3 voice(PA_9,PA_10);
+    int volume = 200;//音量
+    int track;
+    voice.set_volume(200);
+    voice.quiet_mode(false);
+    
+    DigitalIn sw1(PB_4);
+    DigitalIn sw2(PB_5);
+    sw1.mode(PullUp);
+    sw2.mode(PullUp);
+    
+    //count
+    int count_up;
+    int count_down;
+    int count_shot;
+    int count_auto;
 //-------------------------------------
 
     while(true){
+        printf("%d\n",sw1.read());
+        
         sb.button_state();
         x_component = sb.rsx();
         y_component = sb.rsy();
         l2_num = sb.l2An();
         r2_num = sb.r2An();
-        if(select() == 1){
-            auto_mode =! auto_mode;
+        if(sb.select() == 1){
+            count_auto++;
+                if(count_auto == 1){
+                    auto_mode =! auto_mode;
+                }
+            }else{
+                count_auto = 0;
         }
         
         //足回り
@@ -79,23 +104,59 @@
         wait_ms(2);
         
         //ビーンバッグ回収
+        scrp.send1(BeanbagGet_num,move,sb.square());
+        wait_ms(2);
         
         //ビーンバッグ発射
         if(auto_mode == true){
-            scrp.send1(BeanbagShot_num,load,down());
-            wait_ms(2);
-            scrp.send1(BeanbagShot_num,revolver,right());
+            scrp.send1(BeanbagShot_num,shot,sb.square());
             wait_ms(2);
-            scrp.send1(BeanbagShot_num,back,up());
-            wait_ms(2);
-            scrp.send1(BeanbagShot_num,shot,left());
-            wait_ms(2);
+            if(sb.square() == 1){
+                count_shot++;
+                if(count_shot == 1){
+                    voice.set_number_of_tracks(5);
+                }
+            }else{
+                count_shot = 0;
+            }
         }
         
         //農作物回収・設置
+            if(sb.up() == 1){
+                count_up++;
+                if(count_up == 1){
+                    voice.set_number_of_tracks(1);
+                }
+            }else{
+                count_up = 0;
+            }
+            if(sb.down() == 1){
+                count_down++;
+                if(count_down == 1){
+                    voice.set_number_of_tracks(2);
+                }
+            }else{
+                count_down = 0;
+            }
+        scrp.send1(TakoGetPut_num,up,sb.up());
+        wait_ms(2);
+        scrp.send1(TakoGetPut_num,down,sb.down());
+        wait_ms(2);
+        if(sw1.read() == 0){
+            scrp.send1(TakoGetPut_num,limit1,1);
+        }else{
+            scrp.send1(TakoGetPut_num,limit1,0); 
+        }
+        wait_ms(2);
+        if(sw2.read() == 0){
+            scrp.send1(TakoGetPut_num,limit2,1);
+        }else{
+            scrp.send1(TakoGetPut_num,limit2,0); 
+        }
+        wait_ms(2);
         
         //全体送信
         scrp.send1(send_all,select,auto_mode);//自動・手動モード切り替え
-        wait_ms(1);
+        wait_ms(2);
     }
 }
\ No newline at end of file