可用于在 GEC6818 开发板上搭建触控车载中控原型。项目基于 ARM Linux 与 LVGL 8.3,集成摄像头、相册、天气、音乐、讯飞语音 AI 问答、视频通话、流量充值、救援短信和座椅控制,并支持巴法云远程控制。【此简介由AI生成】
当前访问频次受限,请登录后继续访问
车载中控系统(GEC6818 开发板)
基于 GEC6818 开发板(ARM Linux)的车载中控系统,采用 LVGL 8.3 图形库实现主菜单与各应用界面,集成摄像头采集、语音识别(讯飞 SDK)、AI 问答、音乐播放、天气查询、远程控制等功能。
一、项目概述
| 项目 | 说明 |
|---|---|
| 目标平台 | GEC6818 开发板(arm-linux-gcc 交叉编译) |
| 屏幕分辨率 | 800 × 480(ARGB8888,32 位色) |
| 显示驱动 | Linux framebuffer(/dev/fb0) |
| 触摸驱动 | evdev(/dev/input/event0) |
| 图形库 | LVGL v8.3(lv_port_linux-release-v8.3) |
| 字体渲染 | FreeType(中文字体 SIMHEI.TTF) |
| 图片解码 | libjpeg |
功能模块
主菜单(main_menu.c)包含 9 个应用入口,通过全局标志 sign 进行界面调度:
| sign | 界面 | 源文件 | 说明 |
|---|---|---|---|
| 0 | 主菜单 | main_menu.c |
时间/日期、天气、音乐小板块 + 9 个 App 图标 |
| 1 | 摄像头 | camera.c / jpeg_save.c |
V4L2 采集 + JPEG 直绘,支持录像/辅助线 |
| 2 | 相册 | picture.c |
照片/视频浏览(LVGL,分视频/照片两板块) |
| 3 | 微信通话 | wchat.c |
UDP 视频通话(支持画面翻转) |
| 4 | 天气 | wthtime_show.c |
实时天气 + 3 天预报(HTTP 接口) |
| 5 | AI 助手 | ai_chat.c |
语音问答(讯飞 + DeepSeek)+「小美小美」后台唤醒 |
| 6 | 音乐 | music.c |
音乐播放器(madplay,含列表/进度/封面) |
| 7 | 流量充值 | traffic.c / number_send.c |
套餐购买 + 短信验证码登录 + 支付 |
| 8 | 救援 | help.c |
紧急救援短信发送 |
| 9 | 汽车控制 | cont_car.c |
座椅加热/通风/温度/按摩控制 |
二、目录结构
素材/
├── V7/ # 开发板端主工程(车载中控)
│ ├── src/ # 源码(main.c + 各功能模块 .c)
│ ├── include/ # 头文件(各模块 .h + lv_conf.h + 字体/JPEG 库头)
│ ├── lvgl/ # LVGL 图形库源码
│ ├── lv_drivers/ # LVGL Linux 驱动(fbdev/evdev)
│ ├── libs/ # 预编译库(jpeg_all / freetype_all)
│ ├── build/ # 交叉编译产物
│ ├── CMakeLists.txt # 构建配置
│ └── 64bit_make.sh # 一键编译+烧录脚本
│
├── Linux_iat1227_f55d5f9b/ # 讯飞语音 SDK(运行在虚拟机/上位机)
│ └── samples/iat_online_record_sample/
│ └── iat_online_record_sample.c # 语音识别 + TCP 通信(AI 交互)
│
├── lv_port_linux-release-v8.3/ # LVGL Linux 移植参考工程
├── music_lib_ready/ # madplay 及依赖库
├── music/ # 音乐资源
├── opengif/ # 开机动画帧序列
├── 天气/ 天气大/ 天气小黑/ # 天气图标
└── *.jpg # 各界面背景图/图标资源
三、环境依赖
交叉编译工具链
arm-linux-gcc(GEC6818 官方工具链)
依赖库
| 库 | 用途 | 位置 |
|---|---|---|
| lvgl | 图形库 | V7/lvgl/(静态编译) |
| libjpeg | JPEG 解码 | V7/libs/jpeg_all/ |
| libfreetype | 中文字体渲染 | V7/libs/freetype_all/ |
| pthread | 多线程 | 系统库 |
运行环境资源
程序运行时需在 /workspace/ 目录下放置以下资源:
SIMHEI.TTF—— 中文字体文件- 各界面图片(
mune2.jpg、music_mune.jpg、App 图标等,通过"A:"文件系统前缀加载) - 音乐文件(
xiaoban.mp3、qingtian.mp3、yuebanxiaoyequ.mp3等) madplay—— 音乐播放命令(需在系统 PATH 中)
四、编译与部署
开发板端(V7)
执行 64bit_make.sh 一键编译并部署:
cd V7
./64bit_make.sh
脚本执行流程:
- 清理并重建
build/目录 cmake+make -j8交叉编译,生成可执行文件run-V5scp部署到开发板root@192.168.33.104:/workspace
也可手动编译:
cd V7
mkdir -p build && cd build
cmake .. -DCMAKE_C_COMPILER=arm-linux-gcc
make -j8
虚拟机/上位机端(讯飞语音)
cd Linux_iat1227_f55d5f9b
./x64_make.sh
生成的语音识别程序负责:麦克风录音 → 讯飞语音识别 → 通过 TCP 与开发板交互。
五、网络配置
设备 IP 规划
| 设备 | IP | 说明 |
|---|---|---|
| 开发板 | 192.168.33.104 |
车载中控 |
| 电脑(AI Agent) | 192.168.33.103 |
DeepSeek AI 服务 |
| 虚拟机(讯飞语音) | 192.168.33.102 |
语音识别 + TTS |
| UDP 视频接收端 | 192.168.33.101 |
微信通话对端 |
端口
| 端口 | 协议 | 用途 |
|---|---|---|
| 8080 | TCP | AI 交互(开发板 ↔ 虚拟机 ↔ Agent) |
| 8888 | UDP | 微信通话视频流 |
| 8344 | TCP | 巴法云远程控制 |
IP 配置位于
V7/include/ai_chat.h(AGENT_PORT / BOARD_IP_ADDR / AGENT_IP_ADDR / WORD_IP_ADDR)和V7/include/net.h(UDP/TCP 相关)。
六、核心功能说明
1. 主菜单(main_menu.c)
- 全屏背景图 + 时间(72px 特大)/日期显示;
- 天气信息实时显示(借用
wthtime_show.c的天气数据接口); - 音乐播放小板块(显示当前歌名 + 上一首/播放暂停/下一首,控制
music.c底层播放,每秒同步状态); - 9 个 App 图标按钮,点击切换对应界面。
2. 摄像头(camera.c / jpeg_save.c)
- V4L2 采集(
/dev/video7),JPEG 直绘到 LCD; - 支持录像(连续保存 JPG 帧)、辅助线开关;
- 左右侧触摸按键控制(开启录像 / 辅助线切换 / 关闭录像)。
3. 相册(picture.c)
- 分「视频」和「照片」两个板块(各占屏幕一半);
- 视频:浏览录像文件夹(时间戳格式),点击进入后播放/暂停帧序列(JPG 快速切换),播放到最后一帧自动停止;
- 照片:浏览散装
.jpg照片和文件夹,点击进入大图查看; - 图片按实际大小自适应显示(小于幕布居中,大于幕布等比缩小)。
4. 微信通话(wchat.c)
- 基于 UDP 的视频通话(
Udp_send/Udp_recv); - 支持画面翻转(放大接收/放大发送);
- 进入通话时开启 UDP 收发,退出时关闭。
5. 天气(wthtime_show.c)
- 通过 HTTP 接口查询实时天气(温度、天气现象)和未来 3 天逐日预报;
- 天气数据全局共享(
weather_get_data()供主界面显示)。
6. AI 语音助手(ai_chat.c)
- 通过 TCP 与虚拟机(讯飞语音识别)和电脑(DeepSeek Agent)通信;
- AI 界面内:点击"开始录音" → 语音问答(语音转文字 → DeepSeek 回复 → TTS 播报);
- 后台唤醒:打开唤醒开关后,退出 AI 界面仍后台监听,识别到唤醒词「小美小美」后执行语音指令:
- 「小美小美,打开音乐」→ 进入音乐界面
- 「小美小美,播放音乐」→ 直接播放音乐(不进入界面)
- 「小美小美,打开天气」→ 进入天气界面
- 「小美小美,打开相册」→ 进入相册界面
- 「小美小美,返回主页」→ 返回主菜单
7. 音乐播放(music.c)
- 使用
madplay后台播放,fork子进程管理; - 支持播放/暂停、上一首/下一首、音量调节(0%~100%)、播放模式(顺序/单曲循环);
- 歌曲信息展示(歌名/艺术家/流派,中文字体)+ 每首歌专属专辑封面(圆形裁剪);
- 歌曲列表(可滚动)+ 进度条 + 播放时间显示;
- 主界面音乐小板块可独立控制播放(不进入音乐界面)。
8. 流量充值(traffic.c / number_send.c)
- 流量套餐购买(三个板块)+ 环形流量进度条显示;
- 登录(扫码/验证码登录),短信验证码通过 ihuyi 短信平台发送(
send_msg()); - 支付方式选择(微信/支付宝二维码)+ 支付完成确认。
9. 救援(help.c)
- 紧急救援面板:输入救援号码 + 短信内容,通过短信平台发送求救短信;
- LVGL 键盘输入。
10. 汽车控制(cont_car.c)
- 四个功能板块:座椅加热 / 通风 / 温度控制 / 座椅按摩;
- 点击板块弹出功能面板:
- 通风:滑动进度条调整风量
- 温度控制:滑动进度条调整温度
- 座椅加热/按摩:开关状态 + 四个座位按钮
11. 远程控制(net.c)
- UDP:微信通话视频流收发(
Udp_send/Udp_recv); - TCP:巴法云平台订阅主题,接收远程指令(
msg=1~7)控制界面切换(Net_Tcp())。
七、关键技术要点
界面调度
主循环(main.c)通过 sign 标志调度界面,sign_tcp 处理远程/语音跳转请求。子界面退出时通过 *_exit() 函数清理 LVGL 资源,清理顺序需先于新界面创建,避免画面残留/叠加。
触摸输入分时复用
- LVGL 界面(主菜单/相册/天气/AI/音乐等)→ 启用 evdev 触摸;
- JPEG 直绘界面(摄像头/微信)→ 禁用 evdev,由独立 touchpad 线程独占。
中文字体
通过 FreeType 加载 SIMHEI.TTF,提供多档中文字号(font_han_tr 16px / font_han 24px / font_han_large 36px / font_han_wea 72px)。
线程模型
- 主线程:界面调度 + LVGL 渲染
- 网络接收/发送线程(UDP 视频)
- 触摸屏线程
- 摄像头采集线程
- 微信通话线程
- TCP 远程控制线程
- AI 模块线程(TCP server/client + AI 处理)
八、注意事项
- 字体文件:
SIMHEI.TTF必须放在程序运行目录(./SIMHEI.TTF),否则中文显示为空白; - 图片资源:各界面图片需放在
/workspace/目录,LVGL 通过"A:"前缀(LV_FS_STDIO_PATH)加载; - madplay:需确保系统
PATH中能找到madplay命令; - AI 交互:需保证开发板、虚拟机、电脑三者网络互通,且讯飞语音程序、DeepSeek Agent 服务已启动;
- 交叉编译:修改源码后需重新执行
64bit_make.sh编译并部署,main.c、各模块.c、头文件均需同步编译。