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
1d9f8a1e
Commit
1d9f8a1e
authored
Jun 03, 2025
by
学习的菜鸟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
解决了小车速度问题和改了坦克炮塔左右使用了pwm(未测试坦克)
parent
56aba81f
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
41 additions
and
33 deletions
+41
-33
main
build/main
+0
-0
tank.c
device_judg/device/tank.c
+2
-2
audioplay.c
src/audioplay.c
+11
-11
gpio_common.c
system/gpio/gpio_common.c
+11
-3
gpio_pwm_car0102.c
system/gpio/gpio_pwm_car0102.c
+13
-13
main.c
usr/main.c
+4
-4
No files found.
build/main
View file @
1d9f8a1e
No preview for this file type
device_judg/device/tank.c
View file @
1d9f8a1e
...
...
@@ -12,8 +12,8 @@ void tank_Init_0201() {
}
void
tank_Init_0202
()
{
int
values_gpio
[]
=
{
5
,
6
,
7
,
16
,
20
,
22
,
23
,
24
,
26
,
-
1
};
//除开发射25和接收10
int
values_gpio_pwm
[]
=
{
27
,
-
1
};
int
values_gpio
[]
=
{
6
,
16
,
20
,
22
,
23
,
24
,
26
,
-
1
};
//除开发射25和接收10
int
values_gpio_pwm
[]
=
{
5
,
7
,
27
,
-
1
};
init_gpioWPi
(
values_gpio
);
init_gpioPwm
(
values_gpio_pwm
);
pwm_init_speed
();
...
...
src/audioplay.c
View file @
1d9f8a1e
...
...
@@ -6,23 +6,23 @@
int
audio_status
=
3
;
char
urlbuf
[
512
];
char
keybuf
[
256
];
double
audio_volume
=
3
.
0
;
double
audio_volume
=
0
.
8
;
void
audioplay_mqtt_receive
(
cJSON
*
json
)
{
// 解析"audioLink"字段(修正了原始JSON中的拼写错误)
cJSON
*
audio_link
=
cJSON_GetObjectItemCaseSensitive
(
json
,
"audioLink"
);
if
(
cJSON_IsString
(
audio_link
)
&&
(
audio_link
->
valuestring
!=
NULL
))
{
my_zlog_debug
(
"音频链接: %s
\n
"
,
audio_link
->
valuestring
);
my_zlog_debug
(
"音频链接: %s"
,
audio_link
->
valuestring
);
char
*
url
=
audio_link
->
valuestring
;
snprintf
(
urlbuf
,
sizeof
(
urlbuf
),
"%s"
,
url
);
}
else
{
my_zlog_warn
(
"错误:无法解析音频链接字段
\n
"
);
my_zlog_warn
(
"错误:无法解析音频链接字段"
);
}
// 解析"key"字段
cJSON
*
key_char
=
cJSON_GetObjectItemCaseSensitive
(
json
,
"key"
);
if
(
cJSON_IsString
(
key_char
)
&&
(
key_char
->
valuestring
!=
NULL
))
{
my_zlog_debug
(
"音频链接: %s
\n
"
,
key_char
->
valuestring
);
my_zlog_debug
(
"音频链接: %s"
,
key_char
->
valuestring
);
char
*
key
=
key_char
->
valuestring
;
snprintf
(
keybuf
,
sizeof
(
keybuf
),
"%s"
,
key
);
}
else
{
...
...
@@ -32,19 +32,19 @@ void audioplay_mqtt_receive(cJSON *json) {
// 解析"status"字段
cJSON
*
audio_status_val
=
cJSON_GetObjectItemCaseSensitive
(
json
,
"status"
);
if
(
cJSON_IsNumber
(
audio_status_val
))
{
my_zlog_debug
(
"标志: %d
\n
"
,
audio_status_val
->
valueint
);
my_zlog_debug
(
"标志: %d"
,
audio_status_val
->
valueint
);
audio_status
=
audio_status_val
->
valueint
;
}
else
{
my_zlog_warn
(
"错误:无法解析标志字段
\n
"
);
my_zlog_warn
(
"错误:无法解析标志字段"
);
}
// 解析"volume"字段
cJSON
*
volume
=
cJSON_GetObjectItemCaseSensitive
(
json
,
"volume"
);
if
(
cJSON_IsNumber
(
volume
))
{
my_zlog_debug
(
"声量大小: %
d
\n
"
,
volume
->
valueint
);
audio_volume
=
volume
->
value
int
*
1
.
0
;
my_zlog_debug
(
"声量大小: %
1f"
,
volume
->
valuedouble
);
audio_volume
=
volume
->
value
double
+
0
.
0
;
}
else
{
my_zlog_warn
(
"错误:无法解析声量字段
\n
"
);
my_zlog_warn
(
"错误:无法解析声量字段"
);
}
}
...
...
@@ -56,7 +56,7 @@ void audioplay_send_mqtt() {
cJSON_AddStringToObject
(
root
,
"audioLink"
,
urlbuf
);
cJSON_AddStringToObject
(
root
,
"key"
,
keybuf
);
cJSON_AddNumberToObject
(
root
,
"status"
,
audio_status
);
cJSON_AddNumberToObject
(
root
,
"volume"
,
(
int
)
audio_volume
);
cJSON_AddNumberToObject
(
root
,
"volume"
,
audio_volume
);
// 将 JSON 对象转换为字符串
char
*
json_string
=
cJSON_PrintUnformatted
(
root
);
...
...
@@ -74,7 +74,7 @@ void audioplay_cycle(){
if
(
audio_status
==
0
){
char
*
urlmoddle
=
urlbuf
;
snprintf
(
command
,
sizeof
(
command
),
"sudo ffplay -nodisp -autoexit -loglevel quiet -af
\"
volume=%f
\"
\"
%s
\"
"
,
"sudo ffplay -nodisp -autoexit -loglevel quiet -af
\"
volume=%
1
f
\"
\"
%s
\"
"
,
audio_volume
,
urlmoddle
);
my_zlog_debug
(
"播放地址: %s
\n
"
,
urlbuf
);
...
...
system/gpio/gpio_common.c
View file @
1d9f8a1e
...
...
@@ -66,11 +66,19 @@ void pwm_value(int pin,int value) { //软件陪我们控制调速
}
int
shot_speed
=
(
int
)(
shot_speed_value
*
100
);
if
(
value
==
1
)
{
softPwmWrite
(
pin
,
shot_speed
);
my_zlog_debug
(
"pin:%d,%d"
,
pin
,
shot_speed
);
if
(
pin
==
27
){
softPwmWrite
(
pin
,
shot_speed
);
my_zlog_debug
(
"pin:%d,%d"
,
pin
,
shot_speed
);
}
else
{
if
(
AppExit_pin_pwm
==
202
)
softPwmWrite
(
pin
,
0
.
5
);
if
(
AppExit_pin_pwm
!=
202
)
softPwmWrite
(
pin
,
shot_speed
);
}
}
else
if
(
value
==
0
)
{
softPwmWrite
(
pin
,
0
);
my_zlog_debug
(
"pin:%d,
%d"
,
pin
,
shot_speed
);
my_zlog_debug
(
"pin:%d,
0"
,
pin
);
}
}
...
...
system/gpio/gpio_pwm_car0102.c
View file @
1d9f8a1e
...
...
@@ -27,27 +27,27 @@ void car0102_mode_1_flont(unsigned char gval) {
}
else
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
);
}
else
if
(
gval
<=
55
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
3
50
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
5
50
);
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
40
0
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
55
0
);
}
else
if
(
gval
<=
65
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
45
0
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
60
0
);
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
5
00
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
6
00
);
}
else
if
(
gval
<=
75
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
5
50
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
6
50
);
}
else
if
(
gval
<=
90
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
6
0
0
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
6
5
0
);
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
6
00
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
7
00
);
}
else
if
(
gval
<=
110
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
65
0
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
70
0
);
}
else
if
(
gval
<=
120
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
6
50
);
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
7
50
);
}
else
if
(
gval
<=
130
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
700
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
750
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
800
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_SPEED
,
1000
-
800
);
}
else
if
(
gval
<=
160
)
{
...
...
@@ -65,7 +65,7 @@ void car0102_mode_1_flont(unsigned char gval) {
void
car0102_mode_2_back
(
unsigned
char
gval
)
{
int
k
=
5
;
int
b
=
10
;
int
b
=
10
0
;
pin_value
(
26
,
0
);
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_SPEED
,
0
);
...
...
@@ -146,7 +146,7 @@ void car0102_mode_4_right(unsigned char gval) {
}
else
if
(
gval
<=
69
)
{
car0102_calculate_L_R
(
55
);
}
else
if
(
gval
<=
75
)
{
car0102_calculate_L_R
(
45
);
car0102_calculate_L_R
(
45
);
}
else
if
(
gval
<=
81
)
{
car0102_calculate_L_R
(
40
);
}
else
if
(
gval
<=
87
)
{
...
...
usr/main.c
View file @
1d9f8a1e
...
...
@@ -6,11 +6,11 @@ void audio_Init() {
int
adino_play_jude
=
system
(
"pactl load-module module-alsa-sink device=hw:2,0"
);
if
(
adino_jude
==
0
&&
adino_play_jude
==
0
)
{
my_zlog_debug
(
"命令执行成功!"
);
if
(
adino_jude
==
0
||
adino_play_jude
==
0
)
{
my_zlog_debug
(
"
至少一个
命令执行成功!"
);
}
else
{
my_zlog_warn
(
"麦命令执行失败,返回状态码: %d"
,
adino_jude
);
my_zlog_warn
(
"喇叭命令执行失败,返回状态码: %d"
,
adino_play_jude
);
if
(
adino_jude
==
0
)
my_zlog_warn
(
"麦命令执行失败,返回状态码: %d"
,
adino_jude
);
if
(
adino_play_jude
==
0
)
my_zlog_warn
(
"喇叭命令执行失败,返回状态码: %d"
,
adino_play_jude
);
}
}
...
...
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