メインプログラム最新版です
Dependencies: mbed SBDBT arrc_mbed
Diff: main.cpp
- 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