主導機 mbed用のプログラムです 改良しました
Dependencies: mbed
Fork of F3RC_syudou_master_3 by
Diff: User.cpp
- Revision:
- 24:3610bcb8e275
- Parent:
- 23:33a40d8c0535
- Child:
- 25:d5588a50f069
--- a/User.cpp Thu Aug 24 03:52:13 2017 +0000 +++ b/User.cpp Fri Aug 25 12:03:32 2017 +0000 @@ -11,9 +11,10 @@ #define Pi 3.14159 int RSX,RSY,LSX,LSY,BSU,BSL; //これより下に関数外に書く要素を記入する -//spi通信用 -SPI spi(p5,p6,p7); -DigitalOut cs(p8); +//BUS通信用 +BusOut out(p5,p6,p7,p8); +int num; + //オムニホイール /* 正転の向き @@ -84,8 +85,7 @@ void UserLoopSetting() { - spi.format(8,3); - spi.frequency(1000000); + motor_f_1.period_us(100); motor_f_2.period_us(100); motor_l_1.period_us(100); @@ -126,61 +126,26 @@ if((ButtonState >> BUTTONUP)&1 == 1) {//対応するボタンを書く(今回上ボタン - L_up = 1; - } else { - L_up = 0; - } - - if((ButtonState >> BUTTONDOWN)&1 == 1) {//対応するボタンを書く(今回下ボタン - L_down = 2; - } else { - L_down = 0; - } - - if((ButtonState >> BUTTONL1)&1 == 1) {//対応するボタンを書く(今回L1ボタン - L_open = 4; - } else { - L_open = 0; - } - - if((ButtonState >> BUTTONL2)&1 == 1) {//対応するボタンを書く(今回L2ボタン - L_close = 8; - } else { - L_close = 0; - } + num = 1; + } else if((ButtonState >> BUTTONDOWN)&1 == 1) { //対応するボタンを書く(今回下ボタン + num = 2; + } else if((ButtonState >> BUTTONL1)&1 == 1) { //対応するボタンを書く(今回L1ボタン + num = 3; + } else if((ButtonState >> BUTTONL2)&1 == 1) { //対応するボタンを書く(今回L2ボタン + num = 4; + } else if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { //対応するボタンを書く(今回△ボタン + num = 5; + } else if((ButtonState >> BUTTONCROSS)&1 == 1) { //対応するボタンを書く(今回×ボタン + num = 6; + } else if((ButtonState >> BUTTONR1)&1 == 1) { //対応するボタンを書く(今回R1ボタン + num = 7; + } else if((ButtonState >> BUTTONR2)&1 == 1) { //対応するボタンを書く(今回R2ボタン + num = 8; + } else + num=0; - if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {//対応するボタンを書く(今回△ボタン - R_up = 16; - } else { - R_up = 0; - } - - if((ButtonState >> BUTTONCROSS)&1 == 1) {//対応するボタンを書く(今回×ボタン - R_down = 32; - } else { - R_down = 0; - } - - if((ButtonState >> BUTTONR1)&1 == 1) {//対応するボタンを書く(今回R1ボタン - R_open = 64; - } else { - R_open = 0; - } - - if((ButtonState >> BUTTONR2)&1 == 1) {//対応するボタンを書く(今回R2ボタン - R_close = 128; - } else { - R_close = 0; - } - - - - send = L_up+L_down+L_open+L_close+R_up+R_down+R_open+R_close; - - cs = 0; - spi. write(send); - cs = 1; - // printf("%d\r\n",send + out=num; + printf("%d\r\n",num); //オムニホイールのプログラム if(LSX>=bound_m && LSX<=bound_p && LSY>=bound_m && LSY<=bound_p) { M1=0; @@ -200,49 +165,49 @@ sita=0; } else { - sita = -1.0*(atan2((double)LSY-center,(double)LSX-center))*180/Pi; - sita_2=90-sita; - M1=sin((sita_2-(fai+0))*Pi/180)*power_f; - M2=sin((sita_2-(fai+240))*Pi/180)*power_l; - M3=sin((sita_2-(fai+120))*Pi/180)*power_r; - motor_act(); - } + sita = -1.0*(atan2((double)LSY-center,(double)LSX-center))*180/Pi; + sita_2=90-sita; + M1=sin((sita_2-(fai+0))*Pi/180)*power_f; + M2=sin((sita_2-(fai+240))*Pi/180)*power_l; + M3=sin((sita_2-(fai+120))*Pi/180)*power_r; + motor_act(); + } //真っすぐだけのプログラム(いらない) - /*else if(LSX==255) { - sita = 0; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); + /*else if(LSX==255) { + sita = 0; + sita_2=90-sita; + M1=sin((sita_2-fai)*Pi/180)*power_f; + M2=sin((sita_2-fai+240)*Pi/180)*power_l; + M3=sin((sita_2-fai+120)*Pi/180)*power_r; + motor_act(); - } else if(LSY==255) { - sita = -90; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); + } else if(LSY==255) { + sita = -90; + sita_2=90-sita; + M1=sin((sita_2-fai)*Pi/180)*power_f; + M2=sin((sita_2-fai+240)*Pi/180)*power_l; + M3=sin((sita_2-fai+120)*Pi/180)*power_r; + motor_act(); - } else if(LSX==0) { - sita = 180; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); + } else if(LSX==0) { + sita = 180; + sita_2=90-sita; + M1=sin((sita_2-fai)*Pi/180)*power_f; + M2=sin((sita_2-fai+240)*Pi/180)*power_l; + M3=sin((sita_2-fai+120)*Pi/180)*power_r; + motor_act(); - } else if(LSY==0) { - sita = 90; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - } */ + } else if(LSY==0) { + sita = 90; + sita_2=90-sita; + M1=sin((sita_2-fai)*Pi/180)*power_f; + M2=sin((sita_2-fai+240)*Pi/180)*power_l; + M3=sin((sita_2-fai+120)*Pi/180)*power_r; + motor_act(); + } */ - +