Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
car-controlserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wenzhongjian
car-controlserver
Commits
80e4a340
Commit
80e4a340
authored
Dec 17, 2025
by
957dd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化了大车和小车
parent
c08ca4d0
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
46 additions
and
179 deletions
+46
-179
main
build/main
+0
-0
car0101_control.c
drivers/devicecontrol/car0101_control.c
+32
-115
car0102_control.c
drivers/devicecontrol/car0102_control.c
+2
-52
tank0207_control.c
drivers/devicecontrol/tank0207_control.c
+10
-10
gpio_control.c
drivers/gpio/gpio_control.c
+2
-2
No files found.
build/main
View file @
80e4a340
No preview for this file type
drivers/devicecontrol/car0101_control.c
View file @
80e4a340
...
@@ -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
);
}
}
}
}
...
...
drivers/devicecontrol/car0102_control.c
View file @
80e4a340
...
@@ -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
(
13
5
);
car0102_calculate_L_R
(
4
5
);
}
}
// 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);
// }
}
}
//车速度和转向引脚数值处理函数
//车速度和转向引脚数值处理函数
...
...
drivers/devicecontrol/tank0207_control.c
View file @
80e4a340
...
@@ -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
,
7
9
);
pwmWrite
(
PWM_PIN_CHANGE
,
6
9
);
}
else
if
(
gval
<=
100
)
{
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
7
9
);
pwmWrite
(
PWM_PIN_CHANGE
,
6
9
);
}
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
);
}
}
...
...
drivers/gpio/gpio_control.c
View file @
80e4a340
...
@@ -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
(
tru
e
);
setshot_detection_index
(
fals
e
);
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
,
10
0
);
devicegpio_pwmreuse
(
pin
,
value
,
6
0
);
softPwmWrite
(
pin
,
60
);
softPwmWrite
(
pin
,
60
);
}
}
if
(
pin
!=
26
)
softPwmWrite
(
pin
,
60
);
if
(
pin
!=
26
)
softPwmWrite
(
pin
,
60
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment