屏幕
480 × 480
Square
屏幕适配
通用
LVGL
8.x
兼容
测试平台
ESP32-P4
maintainer
最后更新
1 周前
速度表示例 截图 1当前显示
作者 picopixel
lvgl 仪表 arc 里程表 车辆 ui

概览

正在寻找免费的 LVGL 速度表示例?这个 PicoPixel 模板提供了一个可直接打开的 480 x 480 仪表盘,由标准 LVGL 友好的部件构成:基于 arc 的速度环、大号数字速度读数、里程文本、单位标签,以及紧凑的 PRND 驾驶状态标签。

该项目刻意保持简单,易于修改。你可以把它作为 ESP32 车辆仪表盘、e-bike 显示屏、滑板车仪表、RC 控制器、模拟器面板、工业电机仪表,或任何需要实时数值呈现为真实仪表感觉的嵌入式 UI 起点。

因为设计由标签、容器、字体和 LVGL arc 构成,而不是烘焙好的图片,所以它是一个实用基础,可导出干净的 LVGL C 代码,并把数值连接到你的传感器、CAN 总线、GPS、电机控制器或演示数据源。

包含内容

  • 480 x 480 仪表盘屏幕,适合方形画布,也容易适配圆形显示。
  • LVGL arc 仪表,使用 arc 控件作为主速度环,因此指示器可以从代码更新。
  • 大号数字速度标签,预览中显示为 135,形成强烈的仪表盘视觉焦点。
  • 单位标签,当前为 km/h,可改为 mph%RPMW 或任何其他测量单位。
  • 里程组,显示为 9138 km,可用于里程、单次行程距离、运行时间、电池续航或其他辅助指标。
  • PRND 驾驶标签,其中 D 通过圆形状态指示器高亮。
  • 深色嵌入式仪表盘风格,使用高对比度白色排版和红/粉色仪表强调色。
  • 无图片依赖,因此 UI 作为 LVGL 对象保持轻量且可编辑。
  • 三种内置字体样式,匹配截图中的 Plus Jakarta Sans 文本层级。
  • 一个可复用控件资源,在模板本地库中可见,可快速复用到其他 PicoPixel 项目中。

资源快照

该模板刻意精简。在资源面板中,本地库显示:

  • 图片: 0,仪表不是静态截图。
  • 颜色: 0,当前配色直接应用在设计中。
  • 字体: 3,使用多个字号的 Plus Jakarta Sans。
  • 控件: 1,一个可复用的速度表控件预览,可以拖入其他项目。

内置字体集按仪表中的视觉层级设置:

  • PlusJakartaSans ExtraLight 16,用于里程后缀等小型辅助文本。
  • PlusJakartaSans Light 20,用于 km/h 和驾驶状态文字等辅助标签。
  • PlusJakartaSans SemiBold 110,用于中央的大号速度值。

这意味着 LVGL 导出可以专注于可编辑基础元素:标签、容器、arc 和字体,而不携带不必要的图片资源。

面向 LVGL 的结构

截图展示的是小型、适合导出的层级,而不是依赖大量位图的设计稿。设计围绕一个屏幕、用于分组的容器、多个标签、里程组和主 arc 构建。

  • Screen 1 是 480 x 480 画布。
  • 根容器保存仪表布局,并让仪表盘保持居中。
  • 里程文本被分组,因此数字和 km 后缀可以一起移动。
  • 中央速度值是一个大标签,因此可以在运行时直接通过 lv_label_set_textlv_label_set_text_fmt 更新。
  • 主仪表是 LVGL arc,因此同一个视觉可以由 lv_arc_set_value 驱动。
  • PRND 行由标签构成,当前驾驶状态通过一个小圆形容器强调。

这正是 LVGL 速度表模板需要的结构:表盘可编辑,文字是实时的,导出的代码可以保持接近普通 LVGL 模式。

TIP

导出前,请在 PicoPixel 中重命名重要对象,例如 speed_arcspeed_value_labelunit_labelodo_labeldrive_state_label。清晰的名称会让生成的 LVGL C 更容易从固件中更新。

为什么它很适合 LVGL

这个示例不只是漂亮截图。它围绕 LVGL 在嵌入式硬件上擅长渲染的内容设计。

  • Arc 渲染是 LVGL 原生能力,因此速度环不需要大型透明图片。
  • 标签更新成本低,非常适合变化的速度、距离、电池续航或模式文字。
  • 视觉状态是明确的,因此固件可以独立更新 arc 值、中央标签、里程和驾驶选择。
  • 设计很紧凑,没有导入图片资源,只包含仪表盘外观所需字体。
  • 它会导出为标准 LVGL 8.x UI 代码,因此可以集成到 ESP-IDF、Arduino、PlatformIO、STM32、Zephyr 或其他 LVGL 项目。

自定义思路

把它作为免费的 LVGL 仪表起点,然后为你自己的产品或演示调整细节。

  • 将速度范围从道路速度刻度改为 0-1000-2400-8000 RPM、电池百分比、油门位置或温度。
  • 调整 arc 厚度、起始角、结束角和颜色,以匹配显示形状。
  • 将红/粉色强调色替换为品牌色、警告色或基于区间的颜色。
  • km/h 替换为 mphRPM%WVACF
  • 将里程行用于单次行程距离、运行时间、剩余续航、圈数或总能量。
  • 将 PRND 替换为 ECOSPORTPARKAUTOMANUAL 等自定义模式。
  • 添加小图标、电池条、警告指示器、转向灯状态,或第二个 RPM arc。
  • 使用 LVGL 定时器或动画回调来动画化数值变化,而不是让标签瞬间跳变。

连接实时数据

从 PicoPixel 导出后,把生成的 UI 文件保留在项目中,并从固件循环、事件处理器或 LVGL 定时器更新已命名对象。具体对象名称取决于你在导出前如何命名控件,但运行时模式如下:

c
static void dashboard_set_speed(int speed_kph, uint32_t odometer_km)
{
    lv_arc_set_value(ui_speed_arc, speed_kph);
    lv_label_set_text_fmt(ui_speed_value_label, "%d", speed_kph);
    lv_label_set_text_fmt(ui_odo_label, "%lu km", (unsigned long)odometer_km);
}

如果速度来自 GPS、CAN、UART、BLE、电机控制器或模拟数据,请把硬件相关解析留在 UI 代码之外。让 UI 函数接收干净的数值,并只负责 LVGL 更新。

导出到你的项目

在 PicoPixel 中打开模板,按需调整显示尺寸,重命名关键控件,然后把项目导出为 LVGL C 代码。生成的文件可以像其他 LVGL UI 一样加入现有嵌入式项目。

对于 ESP32 项目,常见流程是:

  1. 配置显示和触控/输入驱动。
  2. 将 PicoPixel UI 导出为 LVGL C。
  3. 将导出的文件加入你的 ESP-IDF、Arduino 或 PlatformIO 项目。
  4. 在 LVGL 和显示驱动准备好后调用 ui_init()
  5. 从遥测循环、事件队列或 lv_timer 更新速度表数值。

更完整的步骤请参阅 ESP32 LVGL UI 教程使用 PicoPixel 模板 指南。

适用场景

当你需要以下内容的快速视觉起点时,这个模板很适合:

  • LVGL 速度表演示
  • ESP32 仪表盘原型
  • 圆形显示车辆仪表
  • E-bike、滑板车、卡丁车或 RC 遥测屏幕
  • 工业仪表面板
  • 模拟器仪表盘
  • 电机速度或 RPM 显示
  • 电池续航和驾驶模式界面

如果你想先看看如何用普通控件构建 LVGL 仪表,再开始制作更复杂的仪表盘,它也是一个很好的学习文件。

快速开始

第一次使用 PicoPixel 项目?指南会带你了解如何打开、定制并将这个项目烧录到开发板。

安装指南

PicoPixelio /picopixel-files

在 GitHub 查看源码

分享
链接已复制!
报告 这个项目有什么问题吗?