Commit 80e4a340 authored by 957dd's avatar 957dd

优化了大车和小车

parent c08ca4d0
No preview for this file type
...@@ -10,7 +10,7 @@ void car_calculate_L_R(int angle) { ...@@ -10,7 +10,7 @@ void car_calculate_L_R(int angle) {
} else if (angle > 180) { } else if (angle > 180) {
angle = 180; angle = 180;
} }
float pulse_width=(2 / 180.0) * angle + 0.5; float pulse_width=( angle / 180.0) *2 + 0.5;
// 周期(ms) // 周期(ms)
float period = 1000.0 / 50; float period = 1000.0 / 50;
int val = (int)((pulse_width / period) * 1000); int val = (int)((pulse_width / period) * 1000);
...@@ -23,139 +23,56 @@ void car0101_middle_pwm() {//车停止pwm值 ...@@ -23,139 +23,56 @@ void car0101_middle_pwm() {//车停止pwm值
car_calculate_L_R(90); car_calculate_L_R(90);
} }
/*车的速度转向函数*/ /*车的速度转向函数*/
void car0101_mode_1_flont(unsigned char gval) { void car0101_mode_1_flont(unsigned char gval) {
int a=0,b=1;
if (gval < 50) { if (gval < 50) {
pwmWrite(PWM_PIN_SPEED, 75); pwmWrite(PWM_PIN_SPEED, 75);
} else if (gval <= 55) {
pwmWrite(PWM_PIN_SPEED, 71);
} else if (gval <= 60) { } else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED, 70); pwmWrite(PWM_PIN_SPEED, 71-b+a);
} else if (gval <= 65) { }else if (gval <= 70) {
pwmWrite(PWM_PIN_SPEED, 70); pwmWrite(PWM_PIN_SPEED, 70-b+a);
} else if (gval <= 70) { } else if(gval >70){
pwmWrite(PWM_PIN_SPEED, 70); int back_speed = 70 - (gval-70)/10-b+a;
} else if (gval <= 75) { pwmWrite(PWM_PIN_SPEED, back_speed);
pwmWrite(PWM_PIN_SPEED, 69);
} else if (gval <= 90) {
pwmWrite(PWM_PIN_SPEED, 68);
} else if (gval <= 100) {
pwmWrite(PWM_PIN_SPEED, 68);
} else if (gval <= 110) {
pwmWrite(PWM_PIN_SPEED, 66);
} else if (gval <= 120) {
pwmWrite(PWM_PIN_SPEED, 65);
} else if (gval <= 130) {
pwmWrite(PWM_PIN_SPEED, 64);
} else if (gval <= 140) {
pwmWrite(PWM_PIN_SPEED, 62);
} else if (gval <= 150) {
pwmWrite(PWM_PIN_SPEED, 60);
} else if (gval <= 160) {
pwmWrite(PWM_PIN_SPEED, 59);
} else if (gval <= 170) {
pwmWrite(PWM_PIN_SPEED, 58);
} else if (gval <= 180) {
pwmWrite(PWM_PIN_SPEED, 57);
} else if (gval <= 190) {
pwmWrite(PWM_PIN_SPEED, 56);
} else if (gval <= 200) {
pwmWrite(PWM_PIN_SPEED, 55);
} }
} }
void car0101_mode_2_back(unsigned char gval) { void car0101_mode_2_back(unsigned char gval) {
if(gval<50) { int b=0,a=1;
pwmWrite(PWM_PIN_SPEED,75); if (gval < 50) {
}else if(50<=gval&&gval<=55) { pwmWrite(PWM_PIN_SPEED, 75);
pwmWrite(PWM_PIN_SPEED,76); }
}else if(55<gval&&gval<=60) { else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED,77); pwmWrite(PWM_PIN_SPEED, 79+b-a);
}else if(60<gval&&gval<=65) { }else if (gval <= 70) {
pwmWrite(PWM_PIN_SPEED,77); pwmWrite(PWM_PIN_SPEED, 80+b-a);
}else if(65<gval&&gval<=70) { }else if(gval >70){
pwmWrite(PWM_PIN_SPEED,78); int flont_speed = 80+(gval-70)/10+b-a;
}else if(70<gval&&gval<=75) { pwmWrite(PWM_PIN_SPEED, flont_speed);
pwmWrite(PWM_PIN_SPEED,78);
}else if(75<gval&&gval<=90) {
pwmWrite(PWM_PIN_SPEED,79);
}else if(90<gval&&gval<=100) {
pwmWrite(PWM_PIN_SPEED,80);
}else if(110<gval&&gval<=120) {
pwmWrite(PWM_PIN_SPEED,81);
}else if(120<gval&&gval<=130) {
pwmWrite(PWM_PIN_SPEED,82);
}else if(130<gval&&gval<=140) {
pwmWrite(PWM_PIN_SPEED,83);
}else if(140<gval&&gval<=150) {
pwmWrite(PWM_PIN_SPEED,84);
}else if(150<gval&&gval<=160) {
pwmWrite(PWM_PIN_SPEED,85);
}else if(160<gval&&gval<=170) {
pwmWrite(PWM_PIN_SPEED,86);
}else if(170<gval&&gval<=180) {
pwmWrite(PWM_PIN_SPEED,87);
}else if(180<gval&&gval<=190) {
pwmWrite(PWM_PIN_SPEED,88);
}else if(190<gval&&gval<=200) {
pwmWrite(PWM_PIN_SPEED,89);
} }
} }
void car0101_mode_3_left(unsigned char gval) { void car0101_mode_3_left(unsigned char gval) {
if (gval < 45) { int b=10;
if(gval<45){
car_calculate_L_R(90); car_calculate_L_R(90);
} else if (gval <= 51) { }else if(gval<70){
car_calculate_L_R(110); car_calculate_L_R(50+gval+b);
} else if (gval <= 57) { }else if(gval>=70){
car_calculate_L_R(120); car_calculate_L_R(35);
} else if (gval <= 63) {
car_calculate_L_R(130);
} else if (gval <= 69) {
car_calculate_L_R(130);
} else if (gval <= 75) {
car_calculate_L_R(140);
} else if (gval <= 81) {
car_calculate_L_R(145);
} else if (gval <= 87) {
car_calculate_L_R(150);
} else if (gval <= 93) {
car_calculate_L_R(150);
} else if (gval <= 100) {
car_calculate_L_R(160);
}else if (gval <= 107) {
car_calculate_L_R(170);
}else if (gval <= 120) {
car_calculate_L_R(180);
} }
} }
void car0101_mode_4_right(unsigned char gval) { void car0101_mode_4_right(unsigned char gval) {
if (gval < 45) { int b=20;
if(gval<45){
car_calculate_L_R(90); car_calculate_L_R(90);
} else if (gval <= 51) { }else if(gval<70){
car_calculate_L_R(70); car_calculate_L_R(130-gval-b);
} else if (gval <= 57) { }else if(gval>=70){
car_calculate_L_R(66); car_calculate_L_R(135);
} else if (gval <= 63) {
car_calculate_L_R(62);
} else if (gval <= 69) {
car_calculate_L_R(55);
} else if (gval <= 75) {
car_calculate_L_R(45);
} else if (gval <= 81) {
car_calculate_L_R(40);
} else if (gval <= 87) {
car_calculate_L_R(30);
} else if (gval <= 93) {
car_calculate_L_R(30);
} else if (gval <= 100) {
car_calculate_L_R(20);
} else if (gval <= 107) {
car_calculate_L_R(10);
} else if (gval <= 120) {
car_calculate_L_R(0);
} }
} }
......
...@@ -118,68 +118,18 @@ void car0102_mode_3_left(unsigned char gval) { ...@@ -118,68 +118,18 @@ void car0102_mode_3_left(unsigned char gval) {
}else if(gval>=70){ }else if(gval>=70){
car0102_calculate_L_R(135); car0102_calculate_L_R(135);
} }
// if (gval < 45) {
// car0102_calculate_L_R(90);
// } else if (gval <= 51) {
// car0102_calculate_L_R(110);
// } else if (gval <= 57) {
// car0102_calculate_L_R(120);
// } else if (gval <= 63) {
// car0102_calculate_L_R(130);
// } else if (gval <= 69) {
// car0102_calculate_L_R(135);
// } else if (gval <= 75) {
// car0102_calculate_L_R(140);
// } else if (gval <= 81) {
// car0102_calculate_L_R(145);
// } else if (gval <= 87) {
// car0102_calculate_L_R(150);
// } else if (gval <= 93) {
// car0102_calculate_L_R(150);
// } else if (gval <= 100) {
// car0102_calculate_L_R(160);
// }else if (gval <= 107) {
// car0102_calculate_L_R(170);
// }else if (gval <= 120) {
// car0102_calculate_L_R(180);
// }
} }
void car0102_mode_4_right(unsigned char gval) { void car0102_mode_4_right(unsigned char gval) {
int b=5; int b=7;
if(gval<45){ if(gval<45){
car0102_calculate_L_R(90); car0102_calculate_L_R(90);
}else if(gval<70){ }else if(gval<70){
car0102_calculate_L_R(130-gval-b); car0102_calculate_L_R(130-gval-b);
}else if(gval>=70){ }else if(gval>=70){
car0102_calculate_L_R(135); car0102_calculate_L_R(45);
} }
// if (gval < 45) {
// car0102_calculate_L_R(90);
// } else if (gval <= 51) {
// car0102_calculate_L_R(70);
// } else if (gval <= 57) {
// car0102_calculate_L_R(66);
// } else if (gval <= 63) {
// car0102_calculate_L_R(62);
// } else if (gval <= 69) {
// car0102_calculate_L_R(55);
// } else if (gval <= 75) {
// car0102_calculate_L_R(45 );
// } else if (gval <= 81) {
// car0102_calculate_L_R(40);
// } else if (gval <= 87) {
// car0102_calculate_L_R(30);
// } else if (gval <= 93) {
// car0102_calculate_L_R(30);
// } else if (gval <= 100) {
// car0102_calculate_L_R(20);
// } else if (gval <= 107) {
// car0102_calculate_L_R(10);
// } else if (gval <= 120) {
// car0102_calculate_L_R(0);
// }
} }
//车速度和转向引脚数值处理函数 //车速度和转向引脚数值处理函数
......
...@@ -16,9 +16,9 @@ void tank0207_mode_lift_flont(unsigned char gval) { ...@@ -16,9 +16,9 @@ void tank0207_mode_lift_flont(unsigned char gval) {
else if (gval <= 60) { else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED, 80); pwmWrite(PWM_PIN_SPEED, 80);
}else if (gval <= 90) { }else if (gval <= 90) {
pwmWrite(PWM_PIN_SPEED, 79); pwmWrite(PWM_PIN_SPEED, 81);
}else if (gval <= 100) { }else if (gval <= 100) {
pwmWrite(PWM_PIN_SPEED, 79); pwmWrite(PWM_PIN_SPEED, 81);
}else if(gval >100){ }else if(gval >100){
int flont_speed = 80+(gval-70)/10+b; int flont_speed = 80+(gval-70)/10+b;
if(flont_speed>95) flont_speed = 95; if(flont_speed>95) flont_speed = 95;
...@@ -33,9 +33,9 @@ void tank0207_mode_lift_back(unsigned char gval) { ...@@ -33,9 +33,9 @@ void tank0207_mode_lift_back(unsigned char gval) {
} else if (gval <= 60) { } else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED, 70); pwmWrite(PWM_PIN_SPEED, 70);
}else if (gval <= 90) { }else if (gval <= 90) {
pwmWrite(PWM_PIN_SPEED, 71); pwmWrite(PWM_PIN_SPEED, 69);
}else if (gval <= 100) { }else if (gval <= 100) {
pwmWrite(PWM_PIN_SPEED, 71); pwmWrite(PWM_PIN_SPEED, 69);
} else if(gval >100){ } else if(gval >100){
int back_speed = 71 - (gval-70)/10-b; int back_speed = 71 - (gval-70)/10-b;
if(back_speed<55) back_speed =55; if(back_speed<55) back_speed =55;
...@@ -52,9 +52,9 @@ void tank0207_mode_right_flont(unsigned char gval) { ...@@ -52,9 +52,9 @@ void tank0207_mode_right_flont(unsigned char gval) {
else if (gval <= 60) { else if (gval <= 60) {
pwmWrite(PWM_PIN_CHANGE, 80); pwmWrite(PWM_PIN_CHANGE, 80);
}else if (gval <= 90) { }else if (gval <= 90) {
pwmWrite(PWM_PIN_CHANGE, 79); pwmWrite(PWM_PIN_CHANGE, 69);
}else if (gval <= 100) { }else if (gval <= 100) {
pwmWrite(PWM_PIN_CHANGE, 79); pwmWrite(PWM_PIN_CHANGE, 69);
}else if(gval >100){ }else if(gval >100){
int flont_speed = 80+(gval-70)/10+b; int flont_speed = 80+(gval-70)/10+b;
if(flont_speed>95) flont_speed = 95; if(flont_speed>95) flont_speed = 95;
...@@ -162,15 +162,15 @@ void tank0207_change(unsigned char *buf) { ...@@ -162,15 +162,15 @@ void tank0207_change(unsigned char *buf) {
} }
else if(tank0207_front_t ==1&&tank0207_steering_t==1){ else if(tank0207_front_t ==1&&tank0207_steering_t==1){
tank0207_mode_lift_flont(0); tank0207_mode_lift_flont(0);
tank0207_mode_right_flont(tank0207_steering_val+tank0206_count); tank0207_mode_right_flont(tank0207_front_val);
}else if(tank0207_front_t ==1&&tank0207_steering_t==2){ }else if(tank0207_front_t ==1&&tank0207_steering_t==2){
tank0207_mode_lift_flont(tank0207_steering_val+tank0206_count); tank0207_mode_lift_flont(tank0207_front_val);
tank0207_mode_right_flont(0); tank0207_mode_right_flont(0);
}else if(tank0207_front_t ==2&&tank0207_steering_t==1){ }else if(tank0207_front_t ==2&&tank0207_steering_t==1){
tank0207_mode_lift_back(0); tank0207_mode_lift_back(0);
tank0207_mode_right_back(tank0207_steering_val+tank0206_count); tank0207_mode_right_back(tank0207_front_val);
}else if(tank0207_front_t ==2&&tank0207_steering_t==2){ }else if(tank0207_front_t ==2&&tank0207_steering_t==2){
tank0207_mode_lift_back(tank0207_steering_val+tank0206_count); tank0207_mode_lift_back(tank0207_front_val);
tank0207_mode_right_back(0); tank0207_mode_right_back(0);
} }
......
...@@ -580,7 +580,7 @@ void tank0204_pwm_value(int pin,int value){ ...@@ -580,7 +580,7 @@ void tank0204_pwm_value(int pin,int value){
//device_shoting_check(27,100); //device_shoting_check(27,100);
if(getshot_detection_index()==true){ if(getshot_detection_index()==true){
softPwmWrite(27, 100); softPwmWrite(27, 100);
setshot_detection_index(true); setshot_detection_index(false);
tankshot_detection_backcount(NULL,3); tankshot_detection_backcount(NULL,3);
set_backshotstatus(true); set_backshotstatus(true);
my_zlog_info("冷却完成,射击开始"); my_zlog_info("冷却完成,射击开始");
...@@ -594,7 +594,7 @@ void tank0204_pwm_value(int pin,int value){ ...@@ -594,7 +594,7 @@ void tank0204_pwm_value(int pin,int value){
my_zlog_info("pwm:5,1"); my_zlog_info("pwm:5,1");
}else { }else {
if(pin==26&&get_backshotstatus()!=true) { if(pin==26&&get_backshotstatus()!=true) {
devicegpio_pwmreuse(pin,value,100); devicegpio_pwmreuse(pin,value,60);
softPwmWrite(pin, 60); softPwmWrite(pin, 60);
} }
if(pin!=26)softPwmWrite(pin, 60); if(pin!=26)softPwmWrite(pin, 60);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment