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) {
} else if (angle > 180) {
angle = 180;
}
float pulse_width=(2 / 180.0) * angle + 0.5;
float pulse_width=( angle / 180.0) *2 + 0.5;
// 周期(ms)
float period = 1000.0 / 50;
int val = (int)((pulse_width / period) * 1000);
......@@ -23,140 +23,57 @@ void car0101_middle_pwm() {//车停止pwm值
car_calculate_L_R(90);
}
/*车的速度转向函数*/
void car0101_mode_1_flont(unsigned char gval) {
int a=0,b=1;
if (gval < 50) {
pwmWrite(PWM_PIN_SPEED, 75);
} else if (gval <= 55) {
pwmWrite(PWM_PIN_SPEED, 71);
} else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED, 70);
} else if (gval <= 65) {
pwmWrite(PWM_PIN_SPEED, 70);
} else if (gval <= 70) {
pwmWrite(PWM_PIN_SPEED, 70);
} else if (gval <= 75) {
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);
}
pwmWrite(PWM_PIN_SPEED, 71-b+a);
}else if (gval <= 70) {
pwmWrite(PWM_PIN_SPEED, 70-b+a);
} else if(gval >70){
int back_speed = 70 - (gval-70)/10-b+a;
pwmWrite(PWM_PIN_SPEED, back_speed);
}
}
void car0101_mode_2_back(unsigned char gval) {
if(gval<50) {
pwmWrite(PWM_PIN_SPEED,75);
}else if(50<=gval&&gval<=55) {
pwmWrite(PWM_PIN_SPEED,76);
}else if(55<gval&&gval<=60) {
pwmWrite(PWM_PIN_SPEED,77);
}else if(60<gval&&gval<=65) {
pwmWrite(PWM_PIN_SPEED,77);
}else if(65<gval&&gval<=70) {
pwmWrite(PWM_PIN_SPEED,78);
}else if(70<gval&&gval<=75) {
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);
int b=0,a=1;
if (gval < 50) {
pwmWrite(PWM_PIN_SPEED, 75);
}
else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED, 79+b-a);
}else if (gval <= 70) {
pwmWrite(PWM_PIN_SPEED, 80+b-a);
}else if(gval >70){
int flont_speed = 80+(gval-70)/10+b-a;
pwmWrite(PWM_PIN_SPEED, flont_speed);
}
}
void car0101_mode_3_left(unsigned char gval) {
if (gval < 45) {
int b=10;
if(gval<45){
car_calculate_L_R(90);
} else if (gval <= 51) {
car_calculate_L_R(110);
} else if (gval <= 57) {
car_calculate_L_R(120);
} 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);
}else if(gval<70){
car_calculate_L_R(50+gval+b);
}else if(gval>=70){
car_calculate_L_R(35);
}
}
void car0101_mode_4_right(unsigned char gval) {
if (gval < 45) {
int b=20;
if(gval<45){
car_calculate_L_R(90);
} else if (gval <= 51) {
car_calculate_L_R(70);
} else if (gval <= 57) {
car_calculate_L_R(66);
} 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);
}
}else if(gval<70){
car_calculate_L_R(130-gval-b);
}else if(gval>=70){
car_calculate_L_R(135);
}
}
void car0101_control_change(unsigned char *buf) {//车速度和转向引脚数值处理函数
......
......@@ -117,69 +117,19 @@ void car0102_mode_3_left(unsigned char gval) {
car0102_calculate_L_R(50+gval+b);
}else if(gval>=70){
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) {
int b=5;
int b=7;
if(gval<45){
car0102_calculate_L_R(90);
}else if(gval<70){
car0102_calculate_L_R(130-gval-b);
}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) {
else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED, 80);
}else if (gval <= 90) {
pwmWrite(PWM_PIN_SPEED, 79);
pwmWrite(PWM_PIN_SPEED, 81);
}else if (gval <= 100) {
pwmWrite(PWM_PIN_SPEED, 79);
pwmWrite(PWM_PIN_SPEED, 81);
}else if(gval >100){
int flont_speed = 80+(gval-70)/10+b;
if(flont_speed>95) flont_speed = 95;
......@@ -33,9 +33,9 @@ void tank0207_mode_lift_back(unsigned char gval) {
} else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED, 70);
}else if (gval <= 90) {
pwmWrite(PWM_PIN_SPEED, 71);
pwmWrite(PWM_PIN_SPEED, 69);
}else if (gval <= 100) {
pwmWrite(PWM_PIN_SPEED, 71);
pwmWrite(PWM_PIN_SPEED, 69);
} else if(gval >100){
int back_speed = 71 - (gval-70)/10-b;
if(back_speed<55) back_speed =55;
......@@ -52,9 +52,9 @@ void tank0207_mode_right_flont(unsigned char gval) {
else if (gval <= 60) {
pwmWrite(PWM_PIN_CHANGE, 80);
}else if (gval <= 90) {
pwmWrite(PWM_PIN_CHANGE, 79);
pwmWrite(PWM_PIN_CHANGE, 69);
}else if (gval <= 100) {
pwmWrite(PWM_PIN_CHANGE, 79);
pwmWrite(PWM_PIN_CHANGE, 69);
}else if(gval >100){
int flont_speed = 80+(gval-70)/10+b;
if(flont_speed>95) flont_speed = 95;
......@@ -162,15 +162,15 @@ void tank0207_change(unsigned char *buf) {
}
else if(tank0207_front_t ==1&&tank0207_steering_t==1){
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){
tank0207_mode_lift_flont(tank0207_steering_val+tank0206_count);
tank0207_mode_lift_flont(tank0207_front_val);
tank0207_mode_right_flont(0);
}else if(tank0207_front_t ==2&&tank0207_steering_t==1){
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){
tank0207_mode_lift_back(tank0207_steering_val+tank0206_count);
tank0207_mode_lift_back(tank0207_front_val);
tank0207_mode_right_back(0);
}
......
......@@ -580,7 +580,7 @@ void tank0204_pwm_value(int pin,int value){
//device_shoting_check(27,100);
if(getshot_detection_index()==true){
softPwmWrite(27, 100);
setshot_detection_index(true);
setshot_detection_index(false);
tankshot_detection_backcount(NULL,3);
set_backshotstatus(true);
my_zlog_info("冷却完成,射击开始");
......@@ -594,7 +594,7 @@ void tank0204_pwm_value(int pin,int value){
my_zlog_info("pwm:5,1");
}else {
if(pin==26&&get_backshotstatus()!=true) {
devicegpio_pwmreuse(pin,value,100);
devicegpio_pwmreuse(pin,value,60);
softPwmWrite(pin, 60);
}
if(pin!=26)softPwmWrite(pin, 60);
......@@ -621,7 +621,7 @@ void tank0204_pwm_value(int pin,int value){
}else{
if(pin!=27) {
if(pin==26&&get_backshotstatus()!=true){
softPwmWrite(pin, 0);
softPwmWrite(pin, 0);
devicegpio_pwmreuse(pin,value,0);
}
if(pin!=26)softPwmWrite(pin, 0);
......
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