Smart_Car_System:基于 ARM Linux 与 LVGL 的车载中控系统项目

可用于在 GEC6818 开发板上搭建触控车载中控原型。项目基于 ARM Linux 与 LVGL 8.3,集成摄像头、相册、天气、音乐、讯飞语音 AI 问答、视频通话、流量充值、救援短信和座椅控制,并支持巴法云远程控制。【此简介由AI生成】

分支1Tags0

车载中控系统(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

脚本执行流程:

  1. 清理并重建 build/ 目录
  2. cmake + make -j8 交叉编译,生成可执行文件 run-V5
  3. scp 部署到开发板 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 处理)

八、注意事项

  1. 字体文件:SIMHEI.TTF 必须放在程序运行目录(./SIMHEI.TTF),否则中文显示为空白;
  2. 图片资源:各界面图片需放在 /workspace/ 目录,LVGL 通过 "A:" 前缀(LV_FS_STDIO_PATH)加载;
  3. madplay:需确保系统 PATH 中能找到 madplay 命令;
  4. AI 交互:需保证开发板、虚拟机、电脑三者网络互通,且讯飞语音程序、DeepSeek Agent 服务已启动;
  5. 交叉编译:修改源码后需重新执行 64bit_make.sh 编译并部署,main.c、各模块 .c、头文件均需同步编译。

项目介绍

可用于在 GEC6818 开发板上搭建触控车载中控原型。项目基于 ARM Linux 与 LVGL 8.3,集成摄像头、相册、天气、音乐、讯飞语音 AI 问答、视频通话、流量充值、救援短信和座椅控制,并支持巴法云远程控制。【此简介由AI生成】

定制我的领域