Taiki Maruyama
/
charyaaaaaaaaa
kaahddhgfhgfghgf
Diff: System/Process/Process.cpp
- Revision:
- 10:a81546661fb5
- Parent:
- 9:49e851ad441e
- Child:
- 11:de0dc9fba6c9
--- a/System/Process/Process.cpp Sat Feb 23 02:47:39 2019 +0000 +++ b/System/Process/Process.cpp Sat Feb 23 05:34:18 2019 +0000 @@ -22,7 +22,7 @@ /---------------- HOW TO WRITE ----------------*/ //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -#define TIRE_LF 0 +#define TIRE_LF #define TIRE_LB 1 #define TIRE_RB 2 #define TIRE_RF 3 @@ -31,10 +31,9 @@ #define Air1_pin A7 #define Air2_pin A6 #define Air3_pin A5 -#define ARM_T 0 +#define ARM_T 3 -const int omni[15][15]= -{ +const int omni[15][15]= { { 0, 2, 6, 15, 26, 41, 59, 80, 80, 80, 80, 80, 80, 80, 80}, { -2, 0, 2, 6, 15, 26, 41, 59, 61, 65, 73, 80, 80, 80, 80}, { -6, -2, 0, 2, 6, 15, 26, 41, 43, 47, 56, 67, 80, 80, 80}, @@ -57,13 +56,15 @@ uint8_t SetStatus(int); -uint8_t SetStatus(int pwmVal){ +uint8_t SetStatus(int pwmVal) +{ if(pwmVal < 0) return BACK; else if(pwmVal > 0) return FOR; else if(pwmVal == 0) return BRAKE; } uint8_t SetPWM(int); -uint8_t SetPWM(int pwmVal){ +uint8_t SetPWM(int pwmVal) +{ if(pwmVal == 0 || pwmVal > 80 || pwmVal < -80) return 80; else return abs(pwmVal); } @@ -88,129 +89,133 @@ DigitalOut(Air3_pin), }; -void AirOut(int pin,int mode){ - if(mode==1){ +void AirOut(int pin,int mode) +{ + if(mode==1) { AirPin[pin]=1; - }else if(mode==0){ + } else if(mode==0) { AirPin[pin]=0; - }else{ - AirPin[pin]=0; + } else { + AirPin[pin]=0; } } ////////////////////////////////// -void SystemProcess(void) { +void SystemProcess(void) +{ while(true) { controller = XBEE::Controller::GetData(); //____________________________ -/*------------------------ HOW TO WRITE ------------------------/ + /*------------------------ HOW TO WRITE ------------------------/ - ここにメインのプログラムを書く + ここにメインのプログラムを書く - ・コントローラから受け取ったデータをもとに動作のプログラムを書く - (コントローラのデータは controller-> で取る) + ・コントローラから受け取ったデータをもとに動作のプログラムを書く + (コントローラのデータは controller-> で取る) - if(controller->Button.RIGHT) { - motor[TIRE_L].dir = FOR; - motor[TIRE_R].dir = BACK; - motor[TIRE_L].pwm = 12.3; - motor[TIRE_R].pwm = 12.3; - } + if(controller->Button.RIGHT) { + motor[TIRE_L].dir = FOR; + motor[TIRE_R].dir = BACK; + motor[TIRE_L].pwm = 12.3; + motor[TIRE_R].pwm = 12.3; + } - motor[0].dirは FOR (正転) - BACK (逆転) - BRAKE (ブレーキ) - FREE (フリー) + motor[0].dirは FOR (正転) + BACK (逆転) + BRAKE (ブレーキ) + FREE (フリー) + + motor[0].pwmは 0.0(%) ~ 100.0(%) + + controllerは XBee.hの構造体の中身 + + (AnalogL・Rを使いたかったら、頑張って考える or 聞いてください) + + ・リミットスイッチの値をもとに動作のプログラムを書く - motor[0].pwmは 0.0(%) ~ 100.0(%) - - controllerは XBee.hの構造体の中身 - - (AnalogL・Rを使いたかったら、頑張って考える or 聞いてください) - - ・リミットスイッチの値をもとに動作のプログラムを書く + if(Switch::CheckPushed(0_L)) + { + if(controller->Button.L) + { + motor[0].dir = FOR; + motor[0].pwm = 80.0; + } + if(motor[0].dir == BACK) + { + motor[0].dir = BRAKE; + } + } - if(Switch::CheckPushed(0_L)) - { - if(controller->Button.L) - { - motor[0].dir = FOR; - motor[0].pwm = 80.0; - } - if(motor[0].dir == BACK) - { - motor[0].dir = BRAKE; - } + →関数 Switch::CheckPushed の引数はリミットスイッチの名前 (limitSw[0]みたいな), 返り値はbool型 (true or false) + + ・他にもやりたいことがあったら自由にどうぞ + + ps.わからないことがあったら聞いてください + + /------------------------ HOW TO WRITE ------------------------*/ +//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ + + + if(controller->AnalogL.X >= 6 && controller->AnalogL.X <= 8 && controller->AnalogL.Y >= 6 && controller->AnalogL.Y <= 8) { + motor[TIRE_LF].dir = FREE; + motor[TIRE_LB].dir = FREE; + motor[TIRE_RB].dir = FREE; + motor[TIRE_RF].dir = FREE; } - →関数 Switch::CheckPushed の引数はリミットスイッチの名前 (limitSw[0]みたいな), 返り値はbool型 (true or false) + if(controller->AnalogR.X >= 6 && controller->AnalogR.X <= 8 && controller->AnalogR.Y >= 6 && controller->AnalogR.Y <= 8) { + motor[TIRE_LF].dir = FREE; + motor[TIRE_LB].dir = FREE; + motor[TIRE_RB].dir = FREE; + motor[TIRE_RF].dir = FREE; + } + + motor[TIRE_RF].dir = SetStatus(-omni[controller->AnalogL.Y][14-controller->AnalogL.X] + curve[controller->AnalogR.X]); + motor[TIRE_LF].dir = SetStatus(omni[controller->AnalogL.Y][controller->AnalogL.X] + curve[controller->AnalogR.X]); + motor[TIRE_RB].dir = SetStatus(-omni[14-controller->AnalogL.X][14-controller->AnalogL.Y] + curve[controller->AnalogR.X]); + motor[TIRE_LB].dir = SetStatus(omni[controller->AnalogL.X][14-controller->AnalogL.Y] + curve[controller->AnalogR.X]); - ・他にもやりたいことがあったら自由にどうぞ + motor[TIRE_RF].pwm = SetPWM(omni[controller->AnalogL.Y][14-controller->AnalogL.X]) ; + motor[TIRE_LF].pwm = SetPWM(omni[controller->AnalogL.Y][controller->AnalogL.X]) ; + motor[TIRE_RB].pwm = SetPWM(omni[14-controller->AnalogL.X][14-controller->AnalogL.Y]) ; + motor[TIRE_LB].pwm = SetPWM(omni[controller->AnalogL.X][14-controller->AnalogL.Y]) ; - ps.わからないことがあったら聞いてください + if(controller->Button.R) { + AirOut(0,1); + } + if(controller->Button.L) { + AirOut(0,0); + } -/------------------------ HOW TO WRITE ------------------------*/ -//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ - - - if(controller->AnalogL.X >= 6 && controller->AnalogL.X <= 8 && controller->AnalogL.Y >= 6 && controller->AnalogL.Y <= 8){ - motor[TIRE_LF].dir = FREE; - motor[TIRE_LB].dir = FREE; - motor[TIRE_RB].dir = FREE; - motor[TIRE_RF].dir = FREE; - } - - if(controller->AnalogR.X >= 6 && controller->AnalogR.X <= 8 && controller->AnalogR.Y >= 6 && controller->AnalogR.Y <= 8){ - motor[TIRE_LF].dir = FREE; - motor[TIRE_LB].dir = FREE; - motor[TIRE_RB].dir = FREE; - motor[TIRE_RF].dir = FREE; - } - - motor[TIRE_RF].dir = SetStatus(-omni[controller->AnalogL.Y][14-controller->AnalogL.X] + curve[controller->AnalogR.X]); - motor[TIRE_LF].dir = SetStatus(omni[controller->AnalogL.Y][controller->AnalogL.X] + curve[controller->AnalogR.X]); - motor[TIRE_RB].dir = SetStatus(-omni[14-controller->AnalogL.X][14-controller->AnalogL.Y] + curve[controller->AnalogR.X]); - motor[TIRE_LB].dir = SetStatus(omni[controller->AnalogL.X][14-controller->AnalogL.Y] + curve[controller->AnalogR.X]); - - motor[TIRE_RF].pwm = SetPWM(omni[controller->AnalogL.Y][14-controller->AnalogL.X]) ; - motor[TIRE_LF].pwm = SetPWM(omni[controller->AnalogL.Y][controller->AnalogL.X]) ; - motor[TIRE_RB].pwm = SetPWM(omni[14-controller->AnalogL.X][14-controller->AnalogL.Y]) ; - motor[TIRE_LB].pwm = SetPWM(omni[controller->AnalogL.X][14-controller->AnalogL.Y]) ; - - if(controller->Button.R){ - AirOut(0,1); - } - if(controller->Button.L){ - AirOut(0,0); - } - - if(controller->Button.A){ - AirOut(1,1); - } - if(controller->Button.B){ - AirOut(1,0); - } - - if(controller->Button.X){ - AirOut(2,1); - } - if(controller->Button.Y){ - AirOut(2,0); - } - - if(controller->Button.UP) { - motor[ARM_M].dir = BACK; - motor[ARM_M].pwm = 50; - } - if(controller->Button.DOWN){ - motor[ARM_M].dir = FOR; - motor[ARM_M].pwm = 50; - } - if(Switch::checkPushed(ARM_T)){ - motor[ARM_M].dir = BRAKE; - } - else{ - motor[ARM_M].dir = BRAKE; - } + if(controller->Button.A) { + AirOut(1,1); + } + if(controller->Button.B) { + AirOut(1,0); + } + + if(controller->Button.X) { + AirOut(2,1); + } + if(controller->Button.Y) { + AirOut(2,0); + } + + if(controller->Button.UP) { + if(Switch::checkPushed(ARM_T)){ + motor[ARM_M].dir = BRAKE; + motor[ARM_M].pwm = 50; + }else{ + motor[ARM_M].dir = BACK; + motor[ARM_M].pwm = 50; + } + }else if(controller->Button.DOWN) { + motor[ARM_M].dir = FOR; + motor[ARM_M].pwm = 50; + }else { + motor[ARM_M].dir = FREE; + } + +